ASP.NET MVC vs Silverlight or rather I should say “HTML5 vs Silverlight”, is already a heated topic of discussion. Every developer and architect has his/her own views. So, I thought to share mine too.
I will talk only in context of LOB applications here, as for public facing applications the decision is quite tilted towards HTML5 because you cannot expect every one else to have silverlight plugin (or for that matter any plugin). Although plugins provide great features but they come with a cost of insecurity & adoption issues by common users. So, I will try to focus on Line of Business applications here in this post.
For LOB apps development, selection between silverlight and HTML5 (with any framework such as ASP.NET MVC) is more like a strategic planning. Silverlight 5 provides rich user experience and if you already have silverlight experts inside your company then Silverlight could be a better choice. Having said this, there is one more clause associated with the validity of previous line, that is controlled environment. If application is target with a smaller user group of a particular LOB app inside your company then its easy to maintain plugin deployment for all users, but if your LOB app targets a very large number of users then plugin deployment could be a daunting task especially if you don’t have centralized application deployment mechanism.
There is one more very important point to consider is about the fate of silverlight. For a long long time, Microsoft has been quite silent about its development activities on silverlight framework. However, the following link has given some ray of hope to all silverlight developer across the world.
According to this, We might see SL6 by 2013 or 2014. But it is not sure until there is some official announcements made by Microsoft. But anyway, if you want to develop your application in SL5 and you & your users are satisfied with LOB app features, and you have SL developers with you for maintenance then You can definetly go ahead with SL development as Silverlight will be supported by Microsoft at least till 2021-22.
Now, if Silverlight can do all the job , why to even think of HTML5 ?
Well, HTML5 comes up with great abilities and the two most important benefits according to me are “No Plugins Required” & “Cross Platform execution”. So, if users inside your company are using various operating systems (WIN/Mac/Linux) , HTML5 is the option left for you. You will not have to deal with plugin deployment and maintenance anymore. With the increasing trend of smartphones, tablets and other mobile devices , value of HTML5 increase many fold. And If your app targets a variety of users, HTML5 can be a great help.
Next point is the ability of HTML5 in creating LOB apps. And In this regard ASP.NET MVC4 can definitely help. However, it is not mandated to exploit HTML5 with ASP.NET MVC4, you can use other frameworks too such as Knockout JS with MVVM for databinding. However, ASP.NET MVC4 provides great advantage if you are developing a larger LOB application. With ASP.NET MVC4 you can leverage the benefits of HTML5 and at the same time MVC framework helps to manage bigger projects down the line. You can also customize your applications quite easily as per different user devices (desktop, mobile, tablets) using ASP.NET MVC4 mobile layout mechanisms.
So, If you are in a technology selection phase and creating a pool of developers for HTML5+ASP.NET MVC4 development. You can go ahead with HTML5 + ASP.NET MVC4.
Another aspect is to mix both HTML5 and SL5 technologies together. If you want to leverage benefits of both technologies and this is also an option available to you. If you already have SL developers with you and few features of you LOB app can only be developed with SL framework, then you can easily make those SL components and hook them up with your HTML5 app.
So, in conclusion, both technologies have their own benefits and decision should be dependent upon your environment and context.