Smart Client Live! Sessions
Tuesday October 11
.NET Windows Forms Tips and Tricks
Ken Getz, MCW Technologies
10:30 a.m.
We’ll demonstrate several different techniques you can use when building Windows applications, including: creating owner-drawn controls, binding controls to just about anything, exposing protected information with inheritance, using Windows XP theming, modifying the DataGrid control, handling thread synchronization with Windows forms, and creating your own property grid. We’ll cover a lot of material, but the included samples (in both C# and VB.NET) will allow you to review the material once you’ve returned home.
Framework 2.0/C# 2.0: A Potpourri of New Features for Advanced Developers 
Richard Hale Shaw, Richard Hale Shaw Group
10:30 a.m.
.NET 2.0 is chock full of new features that Advanced Developers can take advantage of and run with: Debugging Visualizers for controlling how data is viewed and rendered in a Debugger, attributes to better control Serialization, custom iterators (in C# 2.0) and anonymous methods for creating custom collections with multiple forms of iteration, and new Trace Listeners just to name a few. We'll examine a wide-reaching number of these new features, how they work, and how you and start leveraging them right away. We'll also look at the new disjunctive security demands, the Friend Assembly mechanism, and other new services that you may have thought were specific to a given managed language but are in fact available to everyone.
Efficient Data Access with ADO.NET and SQL 
John Papa, ASPSoft
11:45 a.m.
Using an efficient data access strategy is essential in designing scalable and efficient enterprise solutions. We’ll review several data access techniques that can improve performance and/or ease maintenance in applications. We’ll discuss efficient ways to implement ADO.NET database connections, automatic closure of connections and using connection pooling. We’ll also review some performance and efficiency tips when executing stored procedures, using parameterized queries, and preventing SQL injection attacks.
Advanced Techniques of Using ClickOnce 
Cathi Gero, Prenia Corp.
11:45 a.m.
Learn how to take advantage of the advanced features of ClickOnce in version 2.0 of the .NET Framework. We’ll explore how to create applications that use on-demand downloads of assemblies for efficient use of resources. We’ll take an in-depth look of the ClickOnce classes to add robust features to your applications for a richer user experience found in many of today’s programs. Learn advanced security techniques for ClickOnce by using trust licenses to allow administrators to bypass user interactions to update applications. We’ll also look at how to use the new ClickOnce data folder to store and retrieve information pertaining to the user.
Keeping Secrets in .NET Applications 
Paul Sheriff, PDSA, Inc.
2 p.m.
Cryptography is one of those areas most developers think as a "dark art". See how easy it is to use cryptography to secure data such as credit card numbers, passwords, and connection strings. You’ll learn how to hash passwords using a Salt value to make it hard for hackers to crack and how to use the Symmetric algorithms to encrypt and decrypt connection strings. You’ll also learn how to use the Data Protection API which simplifies key management.
Client/Server Communication Options
Rocky Lhotka, Magenic Technologies
2 p.m.
Many of us need to choose a client/server communication technology for our current development. How do you choose between Web services, WSE, Enterprise Services, Remoting, DCOM, and MSMQ? What does Indigo mean to you, and how can you plan ahead to smooth the transition? You’ll learn the strengths and weaknesses of each option in terms of their use today, and their migration to Indigo in the future. If you are developing n-tier client/server systems this session is a must!
Test-Driven Development 
Keith Pleas, Guided Design
3:15 p.m.
This session shows developers how to implement test-driven development and a continuous build process. You’ll learn how to integrate test code, effectively re-factor applications, and how to build quality and robustness into your applications by making them verifiable and reliable.
Writing .NET Code in SQL Server 2005 
Peter DeBetta, Wintellect
3:15 p.m.
SQL Server 2005 now has the ability to use .NET languages when developing procedures, functions and other objects within the database. In this session, we’ll explore this new world of database development using .NET languages.
Cooking up a Great Smart Client UI
Mark Miller, Developer Express
4:30 p.m.
This session is all about the science behind a great user experience. We’ll leave the subjective in the dust as we set out to explore the how and why of a great UI. We’ll cover user models, entry points, orienteering, timing, and discoverability, and learn how to control color, contrast, opacity and motion to reduce visual noise, lower barriers to entry, enhance clarity, and otherwise make your smart client applications a pleasure to use.
Smart Data Clients 2.0 — What's New in Data-Controls and Data Binding?
Walt Ritscher, Scandiasoft
4:30 p.m.
Working with data is a necessity for every business applications.ADO.NET 2.0 is chock full of improvements and the Windows Form team has been steadily improving the data-binding pieces. We’ll start this data tour by looking at the new drag and drop data-binding features of Visual Studio. We see how easy it is to bind to databases, business object, and Web Services. Next we'll look at the enhanced data controls (DataContainer, GridView, DataConnector, DataNavigator). Each of these controls is completely new and loaded with lots of new enhancements. We'll walk you through a detailed exploration of these new data controls including: UI look and behavior, data-binding support, improved validation and formatting features, and better Null binding. Last on the agenda is a tour of the SQLClient changes — asynchronous data and data paging.
Wednesday October 12
Programming the Windows Communication Foundation
Payam Shodjai, Web Services Strategy, Microsoft
10:30 a.m.
WCF provides developers with a unified, attribute- and config-based programming model for building distributed applications with maximum productivity. In this session, you’ll learn how the WCF architecture was designed, how it works, and most importantly -- how you can leverage it to build service-oriented systems.
Building Composite Smart Clients
Ron Jacobs, Microsoft
10:30 a.m.
Large-scale smart client applications cannot be built as one giant executable. Composite smart clients offer a solution. Many independent modules can be seamlessly integrated into a complete user experience by using an application shell or portal that serves as the single entry point of the application and dynamically loads modules on demand. We'll discuss the general architecture of these composite applications, and present a simple example that is designed to centralize application functionality such as security and user cosmetics.
Building Secure Reliable Services with the Windows Communication Foundation
Payam Shodjai, Web Services Strategy, Microsoft
11:45 a.m.
Service-oriented applications usually run in environments that require secure, reliable, and/or transacted messaging. The WCF supports the full range of WS-* Web services protocols, which support these features in an interoperable way. In addition to supporting integrity, authorization, and authentication, WCF supports ordered, reliable sessions at the message and transport level as well as queue support, local/flowed transactions, and more. In this session, you’ll learn the WCF support for secure, reliable, transacted messaging.
Occasionally Connected Smart Clients
Sam Gentile, Independent .NET Consultant
11:45 a.m.
Many developers assume wireless will be everywhere enabling applications to communicate to centrally located servers regardless of where the user is. Any developer that has actually tried deploying connected applications knows that this is really just a dream of an alternate universe that simply frustrates users with reality. Users want their applications to just work and their data to be available even if the network isn't. In this session we'll cover the various options for developing Occasionally Connected Smart Clients that operate in an offline mode as well as online. Using the IssueVision Smart Client desktop reference application, we will demonstrate both how to detect offline mode and how to serialize data in this mode. Using Visual Studio 2005 (Whidbey), we'll cover how to use ClickOnce to deploy your smart client. We'll cover and demonstrate synching technologies available using SQL Mobile for the Windows Mobile devices and merge replication available for SQL Express as well as SQL Mobile. Finally, we will look at using SOA in the form of WSE and Indigo to loosely-couple your synchronization logic in the smart client and reconciliation server. Empower your users with Smart Client Applications that work where the user is, not where the network may be.
Debugging With Visual Studio 2005 
Scott Allen, Ode to Code
3:15 p.m.
Visual Studio 2005 introduces a number of new features to improve the debugging experience. In this session, we will cover not just the new features but the entire set of tools available to developers tracking down bugs. Demonstrations will include practical ASP.NET scenarios where we can take advantage of Visual Studio tools to resolve problems quickly.
Applied Generics: Building Re-Useable Types for Collections, Serialization and Remoting 
Richard Hale Shaw, Richard Hale Shaw Group
3:15 p.m.
Everyone knows that .NET 2.0 Generics let you build parameterized types and the most cited use case for Generics is type-safe collections. But you needn't bother defining your own type-safe collections in many cases: just use the new List<T> class, and derive from it or wrap it. More importantly, Generics can be applied to a number of scenarios to create even more powerful and flexible but now type-safe software, without the boxing and unboxing you'd incur storing Value type derivatives in Object references. For example, you can now create Generic types that can be specialized and serialized to storage; and you can invoke specializations of Generic types via .NET Remoting. We'll address applications of Generic types, and demonstrate potential pitfalls you may encounter along the way. We’ll use examples in C#, but where appropriate, VB.NET 2.0 examples will be used as well.
The Need for Speed 
Robert Patton, Optimum Technology
4:30 p.m.
No query can run fast enough. Instead of relying on tuning specific queries, learn how to write better queries! Come and learn how to get your data in the fastest and most efficient manner, how to build a better WHERE clause, how to write queries that are more likely to reuse execution plans and how to avoid many of the more common pitfalls. You'll leave knowing how to write your queries, making them and all other queries that execute simultaneously perform better. The tips and tricks you will take away will make your everyday tasks and code run more effectively.
Writing Less Code with Code Generation 
Roy Pereira, Harris Corporation
4:30 p.m.
Learn how to create your own flexible Code Generation Engine in C# that will improve consistency and maintainability across your applications. Create an architecture that supports generated code.
VIRTUAL TRACKS
Black Belt
Data Access
General Programming