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.
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.