A little history
Microsoft technologies move in decades. Every 10 years or so Microsoft introduces a better way to write Windows applications. My programming experience goes back to Win32 APIs and MFC in the 90s and .NET in the 20th. (Yes, I know Java come before .NET and I actually work with that platform for a numbers of years, but let’s just leave Java out of this discussion.) So here we are in 2010, starting a new decade, is there a better way to write Windows apps?
Windows Forms for .NET dominate thick client applications in the last decade and Microsoft has said that they will continue to support Windows Forms for the foreseeable future. However, three technologies/application types that would put Windows Forms to bed are rich internet apps, cloud apps, and phone apps. The main problem with Windows Forms is that you cannot easily adapt those apps across different devices/app types and that is where XAML shines.
Extensible Application Markup Language (XAML) simplifies creating a UI in .NET. Both WPF and Silverlight use XAML, but the biggest promise for XAML is that XAML-based apps can easily be adapted to different devices. Microsoft has indicated that they want to control 3 screens: PC, TV and phone. Whether or not they will succeed that vision is another story, but I believe that XAML will be the delivery mechanism for these next generation apps.
I don’t see Win32, MFC and Windows Forms for .NET apps going away anytime soon. In fact, I don’t see them going away at all because that’s what Windows is built on. That said, XAML is the better way to write Windows apps for this coming decade. If you are a Windows developer and don’t get to work with XAML in your day job, you should learn it at night.