C# Live! delivers a host of topics, presentations and
speakers who not only live and breathe Advanced .NET
Development, but whose expertise is focused on the practical
issue of shipping a software product. Join us in San
Francisco for senior-level solutions to your most complex — but
day-to-day — challenges.
.NET Application Code
Security
Gabriel Torok
March 25, 10:30 a.m.
If you design, build or test .NET applications and want
to protect them against theft or attack come to this session.
We will discuss the various software security mechanisms focusing
on .NET applications. Topics covered include license enforcement,
obfuscation, encryption, and authentication. This session will
also discuss common security vulnerabilities and provide tips
and best practices to help avoid these pitfalls.
Escaping FileNotFound Purgatory:
The Secrets of Assembly Binding
Tom
Barnaby
March 25, 11:45 a.m.
Although the .NET assembly mechanism has eliminated the infamous
torment known as DLL hell, another milder form of hell has
taken its place: the runtime’s assembly binding mechanisms.
However, armed with a complete knowledge of the assembly binding
heuristics, this form of hell can be controlled and even leveraged.
We'll start with the question: how does the CLR locate assemblies?
Then we'll examine probing for private assemblies, and using
application configuration files. Then we'll examine strong-named
assemblies, and runtime verification of strong-named assemblies.
We'll look at how to redirect clients using a .config file
and a publisher policy file, and wrap up with the codebase
element and the Assembly Binding Log Viewer.
Security and Deployment of Office
Solutions Built with Visual Studio .NET
Eric Lippert
March 25, 12:45 p.m. (Lunchtime
Session)
In this session you learn how to deploy and secure your solutions
built with Visual Studio Tools for Office. Learn how to deploy
code you have written in Visual Basic .NET and Visual C#
.NET to client machines or intranet locations and have that
code run behind Word 2003 documents and Excel 2003 spreadsheets.
Downloading arbitrary code can be dangerous, so the CLR by
default restricts what code is allowed to run. This session
introduces the underlying details of .NET security policy
and how you can leverage managed code safely and securely
in an Office 2003 solution. If you are planning on deploying
applications using Visual Studio Tools for Office, you can't
afford to miss this important session.
Metropolis: Trends in Information Technology
Pat
Helland
March 25, 2 p.m.
This talk will examine the changes that occurred in independent and largely disconnected cities as they were rapidly connected by railroads causing dramatic shifts in standardization, manufacturing, and retail. Parallels are drawn to the current changes in information technology as independent and largely disconnected IT shops have been rapidly connected by the internet causing dramatic shifts in standardization, structured data, and business process. This analogy offers some interesting insight into where we are going in information technology and a framework to understand the current trend towards service oriented architectures and Web services in our enterprise customers.
C# Operator Overloading, Implicit
Conversion & the Win32 API
Mark Miller
March 25, 3:15 p.m.
In this session we'll create sophisticated structs that employ
operator overloading and implicit conversion to radically
simplify code that works with legacy data types returned by
unmanaged code. Examples will focus on wrapping Win32 API
return types like HWnd and HResult, however these advanced
C# design techniques are useful whenever legacy data types
participate in managed applications. Using this technology
you can port a portion of an existing application to managed
code, and have the freedom to tackle legacy code bits at a
later time.
Putting Test-Driven Development
into Practice
Jimmy
Nilsson
March 25, 4:30 p.m.
Writing test cases is boring work and kills productivity,
right? I don’t agree! Give it a try by attending this session.
Here we will write a simple application by applying test-first
design (we'll also give a crash course in NUnit along the way).
Then we'll show you how the design evolves thanks to the tests
that are written up front and how the quality of the code written
is increased as we go. When we are done, we'll have a quality
test suite that we can apply over and over again, when we need
to extend our application.
Get
Ready for Whidbey: Best Practices for Creating Powerful but
Effective Classes, Properties and Methods in C#
Richard
Hale Shaw
March 25, 5:45 p.m.
How do you design good classes in C# — and how
can you take advantage of new features of the C# language
found in Whidbey? In this session we'll focus on building
robust, flexible classes in C#, and start with the essentials:
the criteria to choose between using struct (value type) vs.
class (reference type) when creating custom data types, and
when to override features of System.Object. We'll move to
rolling-your-own Serialization for a class, and implementing
the Dispose pattern, and move to new features of C# found
in Whidbey. When we're finished, you'll be ready to take advantage
of Whidbey-based features of C#, armed with Best Practices
for C# class design.
Bad COM to Good .NET: COM Interop
in the Real World
Martin L. Shoemaker
March 26, 10:30 a.m.
.NET makes COM Interop really easy. But Bad COM is common,
especially when a company with deep domain expertise but shallow
COM expertise tries to create COM components for their own specialized
needs. But for .NET/COM Interop, these bad habits become roadblocks.
We’ll look at some common solutions to Bad COM: C++ macro equivalents,
conversion components, unsafe code, fixed pointers, .NET custom marshalers,
and more. We’ll look at advantages, disadvantages, and reasons
to use each solution. We’ll also look at the second-best solution:
building a .NET wrapper library that goes beyond COM Interop, making
the wrapped component look like a well-designed, well-behaved set
of .NET components and interfaces.
Getting
Ready for Whidbey: Generics in C#
Richard
Hale Shaw
March 26, 11:45 a.m.
The Whidbey release of the .NET Framework will proffer
a feature available to all development languages, but of particular
interest to C# developers: Generics. Conceptually like C++
templates, Generics let you define types that omit specific
constituent type information, and let the user of the type
supply the omitted type information when the type is used.
But unlike C++ templates, Generics are instantiated at runtime
and not compile-time. In this session, we'll start with Generic
syntax in C#, and their constraints and implications in .NET.
Then we'll examine how you can use them to create generic
methods and delegates, and wrap up with a look at the implications
of Generics on Reflection, Collections, and how they can be
used in other technologies, such as Remoting.
Developing
Word and Excel Solutions with Visual Studio Tools for
Office – Tips & Tricks
Paul Cornell
March 26, 12:45 p.m. (Lunchtime
Session)
Go beyond the basics of Microsoft Visual Studio Tools for the Microsoft Office System, Version 2003 by learning tips and tricks to enable you to quickly build more robust business solutions in Microsoft Visual Basic .NET 2003 targeting Microsoft Office Word 2003 and Microsoft Office Excel 2003. In this session, you'll learn how to debug Visual Studio Tools for Office solutions, use built-in and user-defined helper functions to make your coding tasks easier, understand how to modify .NET Framework security policy using the .NET Framework 1.1 security tools, and deploy a code-signed solution using a Setup project in Microsoft Visual Studio .NET 2003.
Get Ready for Longhorn: Going
Indigo
Tom
Barnaby
March 26, 2 p.m.
Indigo is an upcoming product from Microsoft that promises
to finally encapsulate all of their distributed technologies
under one common programming model. To this end, the way you
develop and interact with Web services, .NET Remoting, Enterprise
Services, and MSMQ will change with Indigo. This presentation
will review Indigo’s motivation and capabilities, and demonstrate
with code what it is like to use it. Most importantly, you will
learn what current technologies and development practices will
move easily into the world of Indigo, and what won’t. Come
to this presentation to learn how to prepare for the future.
Using the CodeDom to Wrap,
Extend, Generate, Assemble, and Load New Code On-the-fly
Josh
Holmes
March 26, 3:15 p.m.
CodeDom is one of the areas of the framework that is
extremely powerful, but very few understand when and why they
need it. It gives the developer the ability to quickly and
easily emit code in various languages and compile that code
on the fly. Then, using reflection, execute that code. There
are a handful of times when you will absolutely need to use
it and other times when it would just make your life easier.
Some simple reasons would be if you needed to quickly generate
a typesafe collection, or rules based engines or (more often)
are writing tools that generate source code. In this talk,
we will be talking about the when, why and how of using CodeDom.
Getting Ready for Whidbey
and Longhorn: Top 10 Best Practices for C# and .NET
Featuring Tom
Barnaby, Josh
Holmes, Mark Miller, Jimmy
Nilsson, Martin L. Shoemaker, Gabriel Torok
Moderated by Richard
Hale Shaw
March 26, 4:30 p.m.
It's not just techniques that build an application:
it's how you apply them. How should you prepare for Whidbey
and Longhorn (and Avalon and Indigo)? What are the best tools
for .NET development? When should you package your components
into multiple assemblies? When should you apply strong names
— and when shouldn't you — and why? In this no-holds-barred
session, our expert speakers will give you their recommendations
for Best Practices, and they'll answer the questions you may
have based on their own development experiences with the .NET
Framework.
|