Windows Forms
Building and Deploying Rich Client Applications
There has been a great resurgence in the popularity of rich client
applications since the advent of .NET. Although web technologies
dominated the world of intranet applications for years, many companies are coming to realize the substantial benefits Windows Forms can offer for internal applications. The .NET Framework offers compelling new solutions for deployment, which used to be the bugbear of rich client applications and the ace card of the web application. With this hurdle removed, developers are able to exploit the benefits Windows Forms offers over the web: the superior UI capabilities available to classic Windows applications, and the simpler programming model available when the application runs locally instead of across the network. This year’s Windows Forms track explains how to exploit these benefits of Windows Forms today, and also previews the forthcoming new rich client features in Whidbey and Longhorn.
Track Highlights:
- Deployment today - href EXEs and the AppUpdater
- Deployment tomorrow - ClickOnce in Whidbey
- Windows Forms in a partial trust environment
- What's new for Windows Forms in Whidbey?
- Avalon - what's coming in Longhorn and how to prepare for it
SESSIONS FOR THE TRACK:
Monday, Oct 25
9:00am – 5:00pm
WF1 - A Day of Windows Forms
Ian Griffiths and Brian Randell
In this session, we will examine the core elements of building Windows Forms applications. We will start with the main programming elements of the Windows Forms API, show how events are handled, and investigate how the Visual Studio .NET design time environment helps build Windows Forms apps. We will illustrate the basic techniques for integrating with back end systems, and presenting the data they return. We will also show how to package up Windows Forms applications so that they can be deployed successfully.
Tuesday, Oct 26
9:00am – 10:30am
Keynote
10:45am – 12:15pm
WF2 - Asynchronous Windows Forms for Today and Tomorrow
Juval Lowy
Windows Forms applications often require some sort of asynchronous invocation option. However, Windows Forms poses a set of complicated design and implementation issues when it comes to asynchronous method invocation and multithreading due to the underlying Windows messages processing. Although .NET does provide a uniform asynchronous invocation mechanism you cannot apply it as-is in a Windows Forms application. To address this problem, the next version of .NET provides a new component designed to ease the task of developing asynchronous Windows Forms applications. The session starts by describing the current asynchronous programming model available to Windows Forms developers. Then not only does it describe the Whidbey solution, it also provides a .NET 1.1 implementation of it, so that you could take advantage of its superior programming model today and ease the transition into Windows Forms 2.0 in the future.
1:45pm – 3:15pm
WF3 - Data Bound Controls
Brian Randell
This session will show you the goodness that is data bound controls in Visual Studio .NET 2005. We'll look at what's new with existing controls, learn about new data controls like the GridView control, the DataContainer control while focusing on how you can build your own rich controls. In addition, we'll look at how you can combine data bound controls with rich synchronization with SQL Server 2005
3:30pm – 5:00pm
WF4 - .NET Windows Forms Tips and Tricks
Cathi Gero
This session demonstrates a variety of advanced techniques that you can leverage to build more powerful and robust Windows Forms applications. We'll cover how to take advantage of the user’s system tray to run your application. We will also explore how to create custom-drawn controls for a more robust user experience. Learn how to use extended providers to provide extra functionality for your controls. We will also explore ways to improve the look of your application by adding XP theming and non-rectangular windows as well as how to fade a form when closing. We will look at how you can use the System.Drawing classes to provide rich image capabilities such as image mapping and image transitioning. Next, learn techniques to improve the performance of your application by loading data on-demand. We will talk about how to use asynchronous techniques by working with Invoke to handle threading within Forms. Finally, learn ways to allow users to easily modify application settings by using the PropertyGrid control. If you create Windows applications using .NET, you'll certainly find some new tips and tricks in this session!
Wednesday, Oct 27
9:00am – 10:30am
WF5 - .NET security and the return of the rich client
Juval Lowy
Unbeknown to most, a quiet revolution is underway – the return of the rich client as the predominant, most productive, and cost-effective way of providing application front-end in an Enterprise environment. The shift's lynchpin is .NET's security model which is based on what the client application and its components are allowed to do. Coupled with web-services based access to the server and http-based deployment, you have all the benefits of traditional web front end with a rich client experience. The session starts with explaining the basics of .NET security models and then shows how to manage application security using the .NET configuration tool and how to design security policies for the client and the server, how to develop and deploy rich-client applications today and tomorrow, and shares best practiced and guidelines in designing and configuring code-access security.
10:45am – 12:15pm
WF6 - Custom user-drawn controls
Brian Randell
In this session you'll learn how to create a user-drawn control. You'll learn how to use System.Drawing, System.Windows.Forms and more to control the exact look and feel of your controls. You'll learn how handle user input, perform hit testing, expose your own events, and package your control for reuse.
1:45pm – 3:15pm
WF7 - Deploying and Maintaining Smart Client Apps Using No-Touch
Cathi Gero
Imagine all the benefits of the Web application deployment model brought to the Windows client application! With a focus on no-touch deployment, Visual Studio 2005 makes strides in all areas of application deployment. This session covers Visual Studio 2005 deployment capabilities for offline application support, rolling back to previous versions of an application, listing an application in the Start Menu and control panel, .NET Framework redistribution, and zone-based debugging.
3:30pm – 5:00pm
WF8 - Build Applications with Visual C# 2005 Express Edition
Brian Randell
At Tech Ed Europe 2004, Microsoft announced a new version of
Visual Studio designed for the beginning and non-professional
developers. Come learn what's in and out of Visual C# 2005 Express
Edition. Learn how to access data using the SQL Server 2005 Express
Edition included with the product.
"And learn how you can create starter kits that can be exposed from
Visual C# 2005 Express Edition.
Thursday, Oct 28
9:00am – 10:30am
WF9 - Creating Robust and Reliable Windows Forms Applications
Mark Pearce
The days when we could just throw a message box at the end-user saying "latency cache collided with outbound headers" are long gone. Nowadays you have to be increasingly sophisticated in your error-handling code if you want to keep your users happy and your applications rolling along reliably. This session looks at error handling and exception management specifically in the context of a Windows Form application. We'll dig deep into the following areas:
- The semantics of errors versus exceptions.
- The benefits and drawbacks of several different error-handling techniques.
- When things go wrong: How to help your end-users, the first-level support team, and the maintenance developers.
- When things go wrong: The registry switches that can enhance your end-users experience.
- How to deal with unhandled exceptions in a Windows Forms application, including coping with the CLR's somewhat quirky behavior.
- The best way of dealing with various rather tricky exception situations such as multi-threading.
- The power of comprehensive assertions in both development and production environments.
At the end of this session, you'll be equipped with a deep knowledge of how to increase the usability and reliability of your WinForms applications.
10:45am – 12:15pm
WF10 - Build and Deploy Windows Forms Applications with SQL Server
Brian Randell
Many developers create applications that need support of
either a local or remote SQL Server database. This session will show how
you can create an integrated setup application that can install your
database, and if necessary the Microsoft SQL Server 2000 Desktop Engine
(MSDE 2000), as part of an integrated setup routine. You'll also learn
how you can access database information from your application.
1:45pm – 3:15pm
WF11 - Use of Theming APIs in 1.x and 2.x
Matthew Adams
In this session, we will look at approaches-to and pitfalls-of the Windows XP theming APIs as they are presented to us in both the V1 and V2 incarnations of Windows Forms. We’ll look at the (huge!) differences between the two, and how you can create API wrappers using appropriate P/Invoke signatures to help you make the transition from one to the other. We’ll also take a look at some of the APIs that are still ‘missing’ in Whidbey, including how to get rendering information about the active visual style not provided through the basic UXTheme APIs.
3:30pm – 5:00pm
WF12 - Comprehensive Windows Forms Debugging
Mark Pearce
The Windows Forms framework provides a remarkably powerful environment for
building rich-client applications. But when you combine this rather dense
environment with the inherently unpredictable EndUser component, you
encounter a set of debugging issues that you won't find in most server-based
or thin-client applications. This session looks at debugging issues that are
specific to Windows Form applications, including:
- Debugging window painting and mouse/keyboard events
- Debugging WinForms controls
- Debugging WinForms design-time components
- Debugging smart client (NTD) apps
- Debugging IE-hosted WinForms controls
We'll also take an in-depth look at writing tracing code for a WinForms app,
and using ILDASM/ILASM and Reflector to debug third-party WinForms controls.
Finally, we'll see the benefits of using the Cordbg command-line debugger.
At the end of this session, you'll have a good understanding of how to debug
some of the nastiest Windows Forms problems.
Friday, Oct 29
9:00am – 10:30am
WF13 - Unit Testing Windows Forms Applications
Ian Griffiths
Unit testing is an important software development technique
for improving the quality of software. Test driven development (TDD) is
also become an increasingly popular technique. This session will present
the techniques behind unit testing and TDD with three unit testing
frameworks: NUnit, csUnit and mbUnit. User interfaces are particularly
difficult to write automated unit tests for, so this session will
explore a number of techniques for testing Windows Forms GUIs.
10:45am – 12:15pm
WF14 - New Windows Forms Features in VS.NET 2005
Ian Griffiths
The forthcoming ‘Whidbey’ version of the .NET Framework introduces many new features to Windows Forms. More sophisticated layout managers are available. The appearance of menus and toolbars is much improved. ActiveX document hosting is now supported, as is hosting of the web browser without resorting to interop. The support for Windows XP’s visual styles is much improved. In this session, we will see how to exploit these new features.
1:45pm – 3:15pm
WF15 - Strategies for consuming services at the client
Matthew Adams
This session will present some strategies for consuming services from the client. It will cover some over the major issues in relation to robustness, scalability, reliability and responsiveness. In particular, we will look at: 1) Basics of message/response semantics in an asynchronous messaging environment. (Think about message inflow, message outflow, client-side message brokers, UI in terms of independent state models), 2)Client-side validation strategies (Why? How?), 3) Client-side caching strategies (Why? How? Granularity. Cache message, cache content. Offline/Online, Memory/Disk/DB, Lifetimes), 4) Maintaining a responsive UI (What and what not of worker threads), and 5)Strategies for consuming XML messages (serialization, XPath, robustness, versioning)
3:30pm – 5:00pm
WF16 - Avalon: The Future of Windows
Ian Griffiths
The next version of Windows, codenamed ‘Longhorn’, introduces radical changes for GUI developers. The venerable foundations of HWNDs and WndProcs are showing their age, and make certain styles of user interface design difficult if not possible to achieve. Avalon introduces a new user interface model that breaks free from these restrictions. It also supports a declarative style of development, which can make many of the programming tasks involved in creating a user interface substantially simpler. In this session we will examine the new technology in Avalon, and see how best to prepare for it in the applications you are writing today.
|