ASP.NET MVC, HTML 5 vs SILVERLIGHT

It’s hard to recommend one over the other without knowing what your application is. As you said it is a new product, you can think of HTML 5 as people say Silverlight is going to be obsolete though Microsoft is not claimed anywhere.

Choosing UI Technology choice can be judged by many parameters as below,

· User Experience
· Infrastructure
· Security
· Performance
· Architecture
· People
· Strategic
· Cost
· License

Silverlight requires the client to download a small Plugin (just like Flash does as well) to enable all that rich-client capability and the ability to run managed code on the client. If you are in an environment where either distribution or downloading of the plugin is not possible then Silverlight is out as an option.From a programming point of view they are both different in that asp.net mvc is web development. You have web pages and classes that talk directly to a database to render html (or any markup really). Silverlight is more like desktop development, except you don’t have direct access to a database. ALL your data access has to go through a web service (ria services, wcf, whatever).

The biggest benefit that Silverlight has over standards-based web development is that you only need to know C# and XAML. With standards-based web development, you have to know HTML, CSS, JavaScript and the language of your server-side technology, in this case also C#. This might impact your ability to find new developers so Silverlight does have sort of an advantage there. But Silverlight content is not indexed by search engines, so you can deisgn a WHOLE SITE in Silverlight just in case of an intranet.

You still need a hosting application and Silverlight can be integrated into either ASP.NET web forms or ASP.NET MVC applications. And I don’t want to confuse anyone either because Silverlight is not an entire ‘web’ Framework onto its own and only works alone as individual controls. The Silverlight controls integrate into a web forms or MVC application as just another control and can co-exist with controls of either technology. However, since Silverlight can’t invoke the controller class in MVC, or directly postback to the server when using web forms, you will need to use services (WCF) to accomplish this task.

From a security point of view, Silverlight also scores better because you don’t really have to worry about common issues such as XSS, CSRF (Cross-site request forgery,also known as a one-click attack or session riding , is a type of malicious exploit of a website whereby unauthorized commands are transmitted from a user that the website trusts.) and other vulnerabilities that are common in web-development.

Microsoft has too many developers invested in Silverlight so its support will live on, but seeing Silverlight 6 or 7 may never occur.

Lastly, you can incorporate Silverlight controls on an ASP.NET page using the ‘object’ anchor tag. This still requires the Silverlight plugin to be installed on the client, but provides a nice flexibility option to create Silverlight controls (i.e. a Video Player) that sits on the ASP.NET page. If a user is missing the silverlight plugin, then they need to download and install it. In some cases they might not be able to. For example mobile devices like the iPhone and Android phones don’t have a silverlight plugin. You can view asp.net mvc pages on any operating system including mobile devices.

If you are planning for any tool, you have to pay time to understand the + and – of it. Do a feasibility analysis, a simple example would be if you want to use Silverlight google for “problem silverlight” or “features of silverlight” you’ll see lot of people commenting or advocating about silverlight. Then put your business requirement in place and check which falls under existing technology problem area and see if a proper solution is available.

Some prefer WPF client which connects to the server with a webservice (possibly a WCF service). The good thing about client applications is they are fast and they have less restriction in terms of using desktop resources, but the bad thing is different desktop may raise different types of exception based on there system configuration.

If you expect your applications to work on any platform, choose MVC. Silverlight is only going to work on platforms that support it. So that means no mobile. MVC has a great deal of support from both the dev community and Microsoft. In terms of MVC, the learning resources are excellent.

Silverlight

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

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. (Need to google!!)

Ref: http://thatextramile.be/blog/2011/03/why-were-going-with-html5-instead-of-silverlight/

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s