The other day I watched a webcast by Brad Abrams, Group Program Manager for .NET framework, titled “Choosing the right Microsoft presentation technology, a.k.a. Smart Client Roadmap”… Below is a summary of Brad’s recommendations as of late 2006.
1. If you’re writing an internally used (non customer facing) application required to support business activities (often seen as cost of doing business), e.g.
- Data entry
- Master/detail relationship
- Lookup tables
- Interactive data visualization
In other words, you’re writing a line-of-business (LOB) application, then you should use .NET WinForms 2.0 smart client with click-once deployment or Windows Presentation Foundation (WPF)
2. If you’re writing a customer facing application, where it’s a revenue driver, a competitive differentiator, an application portraying your company’s brand (i.e. user experience matters), and you can rely on the Windows platform (i.e. no requirement to support multiple operating systems), then you’re creating a so called “Differentiated Smart Client Application with Rich Media” for the Windows platform. If this is your scenario, then Windows Presentation Foundation (WPF) is the technology you should strongly consider.
3. If you’re writing a customer facing application that is a branded competitive differentiator, but (unlike in case #2), you must support multiple platforms, multiple browsers because you need “reach” to drive revenue, then you’re working on a so-called Differentiated Ubiquitous (across platforms, across browsers) application. If you find yourself saying “yes, that’s my app”, then look into XAML on WPF/E.
4. If you need an ultimate ubiquity (nothing that ties you to Microsoft platform), e.g. portals, e-Commerce sites, other web sites, etc…. You need to create a standards-based web experience, then AJAX ASP.NET (Atlas) is your friend.
5. Finally, for gaming 3-D and intensive scientific applications the best solution today using Microsoft tools & technologies is Microsoft DirectX.
So, is WinForms Dead?
As you can see from the recommendations above, the answer is a clear ‘No!’. It's the premier environment for building line of business (LOB) applications today. Microsoft continues to invest in this technology with many innovations in 3.5 (Orcas) release. So, tt this time, WinForms is the choice platform for LOB.
Having said that, long term Windows Presentation Foundation (WPF) will be the way to go… It’ll be some time before Microsoft is ready to release the development tools to make WPF development experience easy, fun and productive, but there are some third party controls that plug into the Expressions Designer that are available today.