With the relentless march of innovation, it is sometimes difficult to make strategic development decisions without creating legacy orphans.
One such problem is how best to use Winforms to develop smart client applications on the .Net platform.
The .Net platform is a popular platform for developing ASP applications but many companies are still shy of rich client technology after the “DLL hell” of the 1990s.
Over the last year or two, Microsoft has been pushing the Winforms library as a good way of developing rich client applications that are easy to deploy and don’t suffer from the DLL issues of native applications.
In the meantime, the Avalon project has been developing the Windows presentation framework. Together with the Windows communication framework and the .Net 2.0 runtime, this now makes it the WinFx platform.
According to Tony Goodhew, product manager at Microsoft, Avalon manages to unify the application model, the document model and the graphics model. Avalon with its XAML descriptor language is profoundly different from Winforms and this can cause a technology disconnect.
In order to ease the transition to Avalon, Microsoft has provided developers with two technologies. One technology allows Winforms to take in Avalon controls. Supposing you have an animated list-box, built using XAML, you can embed it into Winforms with a new container control that hosts Avalon controls. With judicious use of library references, this will allow you to conditionally take advantage of Avalon for any clients that have WinFx installed. Clients without WinFx can be serviced with standard Winforms controls.
In contrast, Microsoft is also providing a container within Avalon that will support Winforms or ActiveX controls to extend your development investment into the future.
Microsoft does suggest developers should divorce business logic from user interface code to minimise the effort required for reskinning an application for Windows Vista and the WinFx platform.
In order to help customers make the change, Microsoft has released Windows Vista beta, Windows Visual Studio 2005 beta and the WinFx SDK beta with VS2005 extensions.
With the release of Windows Vista, pencilled in for sometime in 2006, it would be worthwhile to bring any large Winforms projects up to speed with this technology as soon as possible.