WinDev@bu.edu

1-800-BU-TRAIN x255
1-978-649-9731 x255
Fax: 978-649-2162
Copyright © 2004
Boston University
Corporate Education Center

Windows Forms

Ian Griffiths

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.

   Back to Top   

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!

   Back to Top   

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.

   Back to Top   

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.

   Back to Top   

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.

   Back to Top   



Site Map



A Gift from Microsoft
to all attendees