Black-Belt Programming for Shipping   Software
Bill Gates
Chairman and Chief Software Architect, Microsoft — March 24
Kai-Fu Lee
Corporate VP of Natural Interactive Services Division, Microsoft — March 24
Chris Anderson
Windows Client Platform Team, Microsoft —
March 25
Pat Helland
.NET Architecture Team, Microsoft — March 25
Bill Baker
General Manager, Business Intelligence, Microsoft SQL Server Business Group — March 26




Refer a Friend

San Francisco Weather
Avg March highs: 63°
Current conditions



 Sponsorship Opportunities
Exhibit at VSLive!

 Keynote Speakers
 Conference Speakers
 Speaker Interviews
 Speaker FAQ
 Free Book Chapter Download

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.


 



 FTPOnline  |  © 2004 Fawcette Technical Publications
    Sign up for regular e-mail updates
  VSLive! 2004  |  FTPOnline  |  Contact Us