You can tell a lot about the future of a UI toolkit by how the third party control vendors are treating it. Since their revenue is based around correctly predicting what developers are going to be using in the near future, they spend a lot of time and effort researching the topic. In this report, we’ll be looking at DevExpress and their treatment of WinForms and Silverlight.
On the surface, we would expect the same treatment for both. For years, Microsoft hasn’t offered anything more than critical security fixes for either. Yet DevExpress choose two radically different routes for their control suites.
Windows Forms
Though WinForms itself hasn’t seen a major update since .NET 2.0 was released, DevExpress is still seeing it as being popular enough to offer new features. In version 14.2, their WinForms Layout Control will be offering a new design-time templating feature.
Why use design-time templates? The scenario envisioned by DevExpress is that you need forms that are very similar, but not identical, to work you’ve done in the past. This is a scenario the normal methods of reuse aren’t good at. Julian Bucknall of DevExpress continues,
1. UserControls. This is certainly a viable solution if you have exactly the same UI that you want to reuse. If not, then it’s more work than it’s worth.
2. Code generation. This works pretty well (I’ve done this before in my dim and distant past, for example), apart from one drawback: you don’t get to see your UI at design-time.
3. Visual Inheritance. Man, if you go this route, good luck. This just smacks of over-engineering to me; I think I’ll stick with UserControls.
To create a design time template, one simply needs to select a set of controls in the WinForms editor and choose Create Template from the right-click menu. This stores the template as an XML file, which can then be used to quickly lay out controls in other projects. Once a template is pasted into a form, it can be customized just as if they controls were laid out manually.
Silverlight
Julian Bucknall also wrote the Silverlight position announcement for DevExpress. In it he writes,
Last month, when Microsoft were open-sourcing .NET Core 2015, talking about Visual Studio 2015 and ASP.NET vNext, and providing early bits for testing, there was a blog post detailing a roadmap for WPF, but, tellingly, there was nothing about Silverlight. For all intents and purposes then, we are left with the impression that Silverlight is in maintenance mode.
From my viewpoint, I’d say this: the overall strategy of the web application market is moving away from the requirement for browser add-ons. It’s HTML5 and JavaScript and client-side controls and web services and simple deployment and the cloud. Not that Silverlight can’t do any of the latter things, but it’s no longer what the market is steering towards. Application frameworks like Silverlight and Adobe Flash have had their day: HTML5 and JavaScript are rapidly becoming the de-facto web application framework. This is especially so when you consider the burgeoning market for responsive/adaptive web apps that target tablets and phones: there’s no Silverlight there. We are clearly seeing this trend in our own sales statistics too: throughout 2014 it’s been obvious to us that customers want to write web apps but don’t want to write Silverlight ones.
After talking about the promising future of XAML in general, he continues,
Based on this analysis, we made the decision to put our Silverlight controls into maintenance mode as well – in fact, we have already forked the code. We will not be providing any new functionality for our Silverlight controls but will provide maintenance updates to fix any issues as and when necessary. We have already stopped selling DevExpress Silverlight as a separate product (either as a new subscription or as a maintenance subscription) and it is now only available as part of DXperience or Universal.