Recently, I conducted a study on which UI technology would be the best choice for the applications my client is going to create in the next few years. My client is a team of .NET developers, which means that you can move in two main directions: development using standard web technologies or Silverlight. When it is necessary to recommend one technology versus another, then ideally the choice should be based on something more than several opinions. We have created a list of candidate technologies. After that we created a list of criteria related to the category. All criteria were assigned some weight, and we evaluated each of them for all candidate technologies.
In this article, I would like to go only by categories of criteria and discuss our conclusions. I will share a detailed data table so that you can explore the results yourself. Depending on your needs or your opinion, you can change the weight and score, and see how this affects the result. I deleted several criteria that were specific to my client, but this did not cause a huge impact on the result. For this article, I also reduced the number of candidate technologies to ASP.NET MVC 3 in combination with the jQuery family (jQuery Core, jQuery UI and jQuery Mobile) and Silverlight.
Here is an incomplete list of categories and some criteria (a detailed list is in the Excel document, a link to which you will find in the end of the article)
- User interaction (user interface perfection, accessibility, intuitiveness / ease of use, accessibility from various devices, accessibility from various platforms)
- Infrastructure (ease / flexibility of deployment, controllability)
- Security (from XSS , CSRF )
- Performance (server resource consumption, client resource consumption, asynchrony, user interface responsiveness, initial load time)
- Code / Architecture (completeness, verification logic reuse, simplicity, support costs, flexibility, potential, testability, i18n, feedback loop, technology entry threshold, potential efficiency, fast prototyping, readable URLs, extensibility)
- People (number of required skills, required share of user attention, documentation, public support, commercial support)
- Strategy (perspective, compliance with standards, differences, support, vision)
- License (do we have access to the code?)
- Price
- Tools (IDE support, availability of additional tools, availability of free components from third-party developers, availability of paid components from third-party developers)
Depending on your needs or the needs of your company, some of these criteria may not apply to you. Perhaps there are other criteria that you consider important, but missed on this list. However, I think this is a fairly comprehensive list that covers most of the factors you should pay attention to when making this decision.
')
The following graph illustrates the evaluation of both technologies by category:

I am sure there are quite a few things that surprised you on this chart. The first thing you might think is: “Why was Silverlight rated so poorly in the User Interaction category?” The answer is quite simple: if your users do not work with Windows or OS X, then they cannot use Silverlight. No luck and users with disabilities, as their support in Silverlight is not developed. If you take into account these factors, it does not matter much that with Silverlight, you can create incredibly luxurious applications. In addition, most people get bored with excessive animation rather quickly, so it’s best not to overdo it. With this in mind, jQuery UI and HTML5 can better meet your needs.
The next area where Silverlight was rated very poorly is Strategy. The fact of non-compliance with standards obviously delivers a crushing blow, but there are other shortcomings. First of all, mobile platforms deliver another crushing blow. Android and iOS do not support Silverlight. We know that this technology will never work on iOS, and while it does not work on iOS, Android has no reason to support Silverlight, simply because this technology does not play any important role. Microsoft has not even announced the creation of a plug-in for support in Windows Phone 7 browsers, and no one knows if we will wait for it. This means that Silverlight web applications are not accessible from any portable device, with the exception of those that support the full version of Windows and make up a small market share. Secondly, despite its initial slogan “Illuminating the Internet”, it turns out that Microsoft plans only 3 actively promoted scenarios: developing internal business applications, streaming video and creating applications for Windows Phone 7. Although creating internal business applications and is what we will be doing in the next few years, we still plan to create public applications that are accessible to a large circle of users. Working with Silverlight for internal applications and HTML (5) for open-source applications does not look economical, since we will have to train our developers in both directions. And it will not make much sense, since HTML (5) is great for internal business applications.
But, as you can see, there are areas in which Silverlight is rated better than ASP.NET MVC 3 + jQuery. For example, in the Tools category, you cannot deny the fact that Visual Studio and Blend satisfy most of the developer’s needs. At least you will spend most of your development and debugging time in your already familiar IDE, while working with standard web technologies you will need to spend some time using Firebug or Google Chrome developer tools instead of to do almost all the work in Visual Studio. And that brings me to the discussion of the People category. The biggest advantage of Silverlight over standards-based web development is that all you need to know is C # and XAML. For standards-based development, you need to know HTML, CSS, JavaScript, and the language in which your server application is written, in this case, it is also C #. And this may affect your ability to find new developers, so in some way, Silverlight has an advantage here.
Although, I want to point out that in the long run, you better work with people who are ready to leave the comfort zone than with those who cling to what they already know. From a security point of view, Silverlight technology is also rated better, since you don’t have to deal with such common problems as XSS, CSRF and other vulnerabilities common to web development.
Thus, we have 3 categories in which Silverlight is rated better than ASP.NET MVC 3 + JQuery, but this is not enough to reduce the gap. Based on the weight we assigned to each criterion, the highest possible score is 732 points. ASP.NET MVC3 and jQuery scored 568 points. Silverlight scored 304 points. Obviously, the results will differ depending on what you consider important. That is why we consulted with an analyst from a large company specializing in research and consulting in the field of IT technologies. The analyst fully agreed with our findings and data, and confirmed that his company recommends the transition to HTML5 for all its customers. He even went further, and said that Silverlight is difficult to recommend, except if your applications are not aimed at supporting mobile platforms and are purely internal and you have already invested money in this technology. So far, I cannot provide a link to this opinion, but a document on this will be ready in the near future, and I would rather give a link when it is released (if the document is public) or at least I refer to it.
I urge all those who are faced with the same problem of technology selection, to use and modify to fit their needs the table attached below. You can add new criteria, change weight and rating, etc., to see what is best for your situation. You can download the table
from here .
Backup link MS Excel 2007 (
html_vs_silverlight.xlsx )
Backup link MS Excel 2003 (
html_vs_silverlight_xl2003.xls )
Dmitry_Zhariy says:
Read this text in English!
Try to read the text of this article in English for the sake of improving your skills and goodness.
The following link leads to a bilingual (mixed, English and Russian) version of this article. Read the text in English and use the Russian translation below, if you suddenly lose the meaning of the English text.
[EN / RU] About why we will use HTML (5) instead of SilverlightMany thanks to all who left feedback about the bilingual text
in a previous post.