Foley on Microsoft

WPF vs. Silverlight

It's looking more and more like there's a battle between the Windows Presentation Foundation team and the Silverlight team -- and Silverlight is winning.

Before Bill Gates retired from his daily duties at Microsoft, management in Redmond frequently pitted internal teams against each other and let them duke it out. Often, that practice helped create better products -- but it left some understandably sore losers.

I thought that this practice had gone by the wayside over the past couple of years, but now I'm not quite so sure. I'm increasingly convinced that there's a battle happening between the Windows Presentation Foundation (WPF) team and the Silverlight team. Or maybe war isn't the right metaphor here. Maybe it's simply a case of Silverlight superseding WPF. In either case, Silverlight looks ready to triumph over and obliterate WPF.

Yes, I understand that Microsoft officially positions Silverlight -- formerly code-named "Windows Presentation Foundation Everywhere" -- as a complement to WPF. I'm also aware that WPF applications have more features than Silverlight apps have, although relatively few WPF apps really take advantage of the platform.

But Silverlight, not WPF, seems to be grabbing all the glory -- and not just because it's almost time for Microsoft's annual MIX conference for Web developers and designers (MIX10 is scheduled for later this month in Las Vegas).

One reason for Silverlight's popularity is its cross-platform nature. Unlike WPF, which is Windows-only, Silverlight runs on Windows, Mac OS X and Linux. The growing popularity of Web-based applications is spurring interest in Silverlight. And if the rumors are true, Silverlight is going to be indispensable for Windows Mobile 7 (WM7) developers, not only because Silverlight will be able to run on WM7, but also because it'll be the primary development environment for it.

Until recently, Microsoft officials guarded Windows APIs like crown jewels. If you were a developer writing any kind of application, Windows compatibility was extremely important. But that's not really the case any more, with Web and mobile applications rising to prominence. Think about Windows 7: Is there a killer app out there for it? Something that takes advantage of its touch, JumpLists and other capabilities? There's the recently introduced Seesmic Look client for Twitter, as well as Microsoft's Fishbowl Facebook sample app that debuted at the Professional Developers Conference in late 2009.

I'm betting that Office 2010 -- the client versions, at least -- will light up on Windows 7 when Office ships around mid-2010. But beyond that?

With Silverlight 4, which is due out by mid-2010, Microsoft is further reducing the number of reasons developers have to target WPF. Microsoft is adding enterprise-specific features and functionality, such as Common Object Model (COM) support, which will give coders access to hardware like scanners and security-card readers.

There is a problem with that strategy, however: COM will work with versions of Silverlight running on Firefox or Internet Explorer and on Windows only. Neither Mac OS X nor Linux supports COM. The 'Softies say they're exploring how they could add COM to Silverlight on the Mac, but there's no word on their progress so far.

So is it game over already? Silverlight is going to supplant WPF. And even if WPF does continue to exist -- given that Microsoft also is adding more Silverlight features back into it -- it might eventually be called Silverlight, one Microsoft official told me late last year.

However, the Windows team still has incredible power and pull inside Microsoft. In the past, anyone who tried to get Microsoft to follow a course that weakened developers' and customers' dependence on Windows in favor of the Web was shown the door. Maybe times have changed enough that it won't be a career-limiting move for 'Softies to suggest that forcing ISVs and customers to write to Windows APIs might be a thing of the past. However, the fact that Microsoft is continuing to push Windows, rather than Windows Mobile, as the preferred slate/tablet OS makes me think that WPF may have some life left in it yet.

What's your take? Is it game over for WPF? If so, is it game over for local and fat-client applications, too?

About the Author

Mary Jo Foley is editor of the ZDNet "All About Microsoft" blog and has been covering Microsoft for about two decades. She has a new book out, Microsoft 2.0 (John Wiley & Sons, May 2008), about what's next for Microsoft in the post-Gates era.

comments powered by Disqus

Reader Comments:

Tue, Feb 15, 2011 Taz

Erm Visual Studio 2010 front end is written in WPF....yup it's dead for sure.

Wed, Mar 24, 2010

I thought generally as the author did. However, where I work we opted for WPF over Silverlight 4. We are in the middle of a huge enterprise development effort comprised of many modules. We started with WPF and WCF (Windows services). With the release of Silverlight 4 looming we invested a LOT of time trying to move our future development efforts in that direction only to find one roadblock after another. We're very disappointed in how Silverlight 4 implements WCF. In fact, I hear that the MS team originally didn't even plan to use WCF with Silverlight 4 but relented to developer complaints. That lack of WCF commitment shows. We found Silverlight was absolutely PAINFUL to integrate into our existing WCF Windows services.

Sat, Mar 20, 2010

I'm still a fan of smart client. In this model, the power of the desktop or client machine is fully utilized. Writing applications for Windows is still more fun and productive than writing for the Web. I hope Microsoft will continue to polish WPF along with Silverlight. Or Integrate the two technologies someday instead of killing WPF. Long live WPF!

Thu, Mar 18, 2010 Jon Davis Scottsdale, Arizona

The problem with WPF wasn't that it was competing with Silverlight, it was that it was competing with Silverlight and Windows Forms (System.Windows.Forms). Windows Forms fills the Windows-based GUI needs for most business apps already. Then you start looking at multimedia, but XNA jumps in the way and shakes its butt in your face. So really for WPF to really take off, it needs a lot more RAD development support (to overcome Windows Forms), which fortunately it has been acquiring as of late. If they continue improving on it, WPF might stand a chance. But they only recently got proper drag-and-drop developer support, they have a long way to go before they surpass WinForms.

Tue, Mar 9, 2010 EVVJSK Indiana

Mobile computing (SmartPhones in particular) is going to be a SIGNIFICANT amount of growth in the next few years. India and China (both with populations of over 1 Billion people) not to mention U.S., Canada, Europe, etc... have residents that may have some level of Smartphone, but little else and want many of their applications to work on mobile platforms (obviously I am not talking about Office apps, but most other apps). Coming up with a strategy that supports running across multiple platforms is going to be important for anyone to succeed.

Thu, Mar 4, 2010 P. Douglas

So MS' competitors set the cross platform trend, and MS is obligated to follow? Why can't MS re-establish the trend towards PC applications? It is foolhardy to think that MS must blindly follow the cross platform trend, when doing so will gut its greatest money maker. Apple has shown that users prefer local Internet apps to browser based apps. All MS has to do is show leadership and pull developers towards Windows again, and I'm sure people will gravitate towards them over browser based apps.

Tue, Mar 2, 2010

My thoughts are yes - WPF has gone the way of LINQ. That said, it is hardly the stretch to push it as the fat client killer. Cloud computing will do that regardless of Silverlight or no Silverlight if that is, indeed, in the cards (I don't believe so personally). I believe this is where Microsoft is pinning their next generation cloud computing application development platform. That is why it is so critical to cross-platform and why they are putting so much emphasis on compatibility. They don't want left in the dust, so they are working around it to their best advantage.

Thu, Feb 25, 2010 P. Douglas

What I think Ballmer should do, is tell everyone at MS, that Windows is the main company platform, and that applications must be developed first and foremost to support Windows. Regarding Silverlight, several versions should be created, and the most functional ones must operate on Windows and other MS platforms only - not on the web. This of course is not unprecedented, as all MS server software runs on top of Windows Server only. What is the point of MS making Silverlight facilitate the development of applications on the web to the detriment of Windows - the company's bread and butter? Quite frankly who cares if MS' customers want to build sophisticated solutions in the browser? Why should MS help its customers build sophisticated solutions on top of a competing platform? That's not MS' job! It is all of MS' job to sell Windows and other MS technologies as a much better platform than the browser, and if Apple can do it with the iPhone, then so can everyone at MS can do it with Windows.

Add Your Comment Now:

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Please type the letters/numbers you see above

Redmond Tech Watch

Sign up for our newsletter.

I agree to this site's Privacy Policy.