Silverlight vs WPF vs WinForms
When thinking about future development plans you need to take technical as well as the market demands into account. We know that WinForms is no longer being actively developed by Microsoft and so the a long slow decline in sales of WinForms components can be expected. WPF is the new desktop story with little brother Silverlight being heavily pushed for RIA (Rich Internet Applications). Does that mean all WinForms development is now a waste of time? Should I stop developing WinForms components/controls immediately?
Far from it, just think of the existing WinForms installed base as well as the huge number of .NET developers that have achieved technical competence in that technology. Few companies can afford to rewrite applications in WPF just because it’s now flavor of the month. Besides, when it comes to line of business applications WinForms is perfectly acceptable. No doubt WPF will become more and more compelling for new projects but it has yet to become de facto for new desktop apps.
We can use the handy Good Trends service to check out the relative popularity of different keywords. If we assume there is some rough correlation between keyword searching and actual technology usage we get the following…

We can see the WPF trend moving steadily upwards as WinForms usage switches over. More interesting is the Silverlight trend. Despite being the new kid on the block we can see it’s already very popular and the upward trend is much steeper than for WPF. Of the two technologies it seems that Silverlight is where the interest and action is going to be.
Silverlight vs Flash
As Silverlight is judged to be in competition to Flash, whether Microsoft choose to admit it or not, it might be handy to compare them. Doing so gives us the following rather sobering graph…

Clearly Silverlight is not going to replace Flash in the immediate future. Then again any new technology for developing rich sites is always going to be in a minority for many years to come. I cannot imagine Facebook, MySpace, New York Times etc becoming Flash/Silverlight. I can see that any small startup is going to be tempted by the ease of outputting simple HTML pages rather than building an RIA as the first iteration. So maybe RIA is destined to be limited to business applications and niche areas.
Silverlight vs Adobe Flex
A fairer comparison might be Silverlight and the Adobe Flex environment as that truly represents the actual development competition. In that case things look a little brighter…

Things are pretty even here and it could be some time before a clear leader emerges.
Conclusion
As a component vendor what strategy can be we take away from this? First of all I think there is still some mileage in WinForms for two reasons. First is the large installed base and existing knowledge base that means many projects will continue to use it for many years to come. Second is the advantage of being a small one man vendor. A legacy development base would still provide enough income to make a respectable living for a lone wolf like myself, although it only represents executive wash room costs for the big vendors. So I intend to be actively developing Krypton for some time yet. Indeed my next major burst of coding will be adding the much delayed docking windows capability.
Long term I still need to get involved in the Silverlight/WPF market. From the above analysis it seems that targeting Silverlight should be the priority. The fact WPF uses essentially the same framework means that with care the same code base could be used to create WPF versions of the same components. I will use my limited spare time to play around with Silverlight and think about ideas for components that would add value for RIA scenarios.
April 6th, 2009 at 5:16 pm
Hi Phil,
You’re right about WinForms. They will be used for years to come, because developers are more familiarized with this kind of applications; they are WAAAYY faster that WPF and there are plenty of 3rd party components on the market that make an application great. I know (not personally) vendors from my country that still code in VB6 just because the application was built that way. They have tries developing in VB.Net but they really don’t know what they’re doing. I don’t even imagine them or any software company from my country adopting WPF for desktop applications.
So developing other controls for the Krypton Suite, like Docking, Grid, Reporting (maybe :) ) would certainly attract more customers that need to polish their existing apps, to give them a nicer, friendlier look.
As for Silverlight… if you have the time to play with it, build common controls, skins and create a suite as great as the Krypton one, that would be awesome. As I’ve said before, Silverlight is for the future and will be the preferred technology for RIA.
April 6th, 2009 at 6:44 pm
I agree there is mileage still in WinForms – I coded in WPF for a few months and found it annoying. With Winforms you can knock up a semi-professional app really quickly. The same isn’t true of WPF, by default an app written in WPF looks really basic – you need a designer to make it shine really.
I think if you’re into MS tech then Silverlight is the better technology to invest your time in if your going to learn something new.
Regards
Lee
April 7th, 2009 at 8:09 am
I also agree that WinForm will be here for quite a while. MS has a track record of putting a lot of weight behind whatever they think will be the next big thing. WPF isn’t moving as fast as they thought, and this isn’t the first time their weight alone was not enough to force a market change. In my environment (large corporate development) WPF isn’t even on the radar. We discussed it 6 months ago when we started a big project and that part of the discussion was over in about 15 seconds. I would be very surprised if we develop WPF anything in the next year or two.
I believe Scott Hanselman said on a podcast that as a WinForm developer, you should expect 6-12 months before you could be proficient at WPF. That is a learning curve that most developers don’t have the time for, or do they have the patience. I really want to learn it personally but 6 months is a very long time.
I’m glad you compared Silverlight to Flex after the Silverlight – Flash comparison. Flash is an animation environment that also has some coding features. As it progresses through versions its programming support has definitely improved but I don’t believe it is anywhere near SL. The real power for SL is the ability for most C# and VB.NET developers to pickup the programming side with litle or no effort. The UI side of things will take more work, but compared to Flash it should be a breeze. I also don’t see a lot of big named sites running on SL. I view it less as a RIA and more as a remote execution environment for desktop level development. I think it will be used much more for small/medium sized “cool” applications on the open web, and intranet applications for big business.
April 7th, 2009 at 6:17 pm
If I had to make a decision today on a project, I would still go with Win32. I have yet to see a WPF application that performs well, and have you seen the text rendering in Silverlight?
Microsoft are going to offer a pretty complete Line of Business suite for Silverlight 3, and doubt if I’d look to third parties unless I encountered some severe limitations. The toolkit on the table is pretty complete, with several skins already available.
Have you looked for any jobs as a developer for WPF? In general most want ASP.NET in the majority with Winforms as well.
Equivalence with Office 14 will be something that keeps demand for Krypton up, with a windows 7 theme essential in the toolkit itself. those two things will keep developers coming back to Krypton IMHO.
April 8th, 2009 at 3:32 pm
I can sympathize with you since you have UI product mainly Ribbon COntrol. Since that control is available for free in WPF from Microsoft, you are jittery.
That’s understandable. I believe the same kind of arguements came up while moving from VB6 to .NET-Winforms, but people eventually did made a switch. It will be the same for WPF/Silverlight. “Either innovate or die a slow death” – that’s the mantra of Software right now.
All the people supporting here are also worried about their skills, that’s understandable too. Either you belive it or not, world is moving towards innovative UI and IPhone,Ipod and various touch enabled technology is a proof of that.
April 14th, 2009 at 11:08 pm
Hey Phil perhaps you can save that data and do the same thing next year ?
it will be interesting to see what happens over time.
Yeah I think for anyone with a half a clue will see that any switch from winforms to wpf will take time.
as I see it it will not even be till VS 2010 that we have an ide that *might be* ready to do xaml / wpf /silvelight based projects.
winforms has had what 9 years of .net to mature and for the forms designer to get “Fine Tuned” to make our work less of a pain.
and even then .net 1.0 had VB and MFC stuff to start with.
so really todays winforms have like what ?? 15 years of history?
and I recall that really it was VS 2005 where the forms designer really got to be super good.
I recall before that having more issues with things like re-sizing forms on the fly and getting controls to stay in the right places.
so yea WPF and SL are really V1 tech, let’s see what happens in 5 or 10 years.
and I am not a total fanboy, I really would like to grill some folks at MSFT about the way WPF and SL have differences in how things work.
I know some things have to be cut from SL. but the xaml should be as close as they could make it. and things like databinding should share a common model, not easy or simple but the more code can move between then the less problems with adopting them.
November 27th, 2010 at 6:39 am
Yes, Winforms will be around for many years to come but will always lack the rich UI even if you pass in a pointer to the Graphics class to change the look.
Winforms wasn’t made to be fast in term of rich GUI but WPF was. WPF does have a learning curve but I have found the migration after many years using Winforms worth it.