Here are the main advantages of building your applications using MVC framework.
- MVC Framework is built upon a proven MVC design-pattern. Hence, this is not a new born baby.
- One of the biggest problem in ASP.NET is HTML size of controls and view state. View state stores all the data rendered and final HTML gets too large. If you are on a slow internet connection, you will notice load time delays. This has been taken care in MVC framework. There is no view state concept in MVC framework.
- Client chaching is availalbe now with the help of Silverlight. By integrating Silverlight, we can take advantage of it. That makes applications load faster and some of the processing can be done in web browsers.Not only the client site but the server side execution is faster too. JQuery integration with MVC makes it even better and now we can write our code that runs in the browser and takes away load from the server.
- Support mutliple views
- Support unit testing as a part of Visual Studio 2008 and 2010
Some of the key challanges you may face when using MVC Framework are
- It is not easy to understand and code when you need some customization. If you are building based on a 100% mature database, they you are golden. But if you have frequent changes in your database, you may find it annoying to keep building application again and again. It may also breake several other parts of your application.
- If you are using Silverlight part of it, the data access is limited to Web Services/WCF/ADO.NET Data Services. You cannot make direct calls via ADO.NET or stored procedures to a database. Also, you may find it hard to learn LINQ as a new technology to access data.
Here are some further readings on this topic you may find useful.

Gowtham RajamanickamPosted Apr 8, 2016, 10:02 AM
good one..
Mahesh ChandPosted Jul 31, 2010, 12:27 PM
Yes I agree with Mike. Silverlight and MVC Framework are two different technologies. However, we can combine all .NET Framework 4 (ASP.NET + Silverlight + MVC + JQuery) APIs (say Web4) to build a complete website. It will be nice to compare Web4 APIs vs standard ASP.NET, ASP.NET+AJAX, and Flash, PHP. This is what we are going to with new C# Corner. We will build some peices (UI and controls) using Silverlight, have data centric part (add, update, delete, filter) use MVC, client side pages (articles, comments, ratings etc) use JQuery, and some quick update pages use AJAX. Cheers!
Mike GoldPosted Jul 30, 2010, 11:45 AM
I'm not sure you can compare these two. Silverlight can run inside of ASP.NET MVC just as easily as it can run inside of an html page. Saying that Silverlight has an advantage because it doesn't need to run inside of IIS is like saying Silverlight and Flash have an advantage over all platforms. ASP.NET MVC encompasses both the client and server side, where Silverlight is developed only for the client in the browser. So I don't really think its much of a CON against ASP.NET MVC. I think a better comparison would be to compare two client side tools like Flash and Silverlight and to compare two server side solutions such as ASP.NET classic and ASP.NET MVC. Or perhaps compare ASP.NET MVC against Jetty and Struts on Java. The security CON is also not really a CON because both ASP.NET and Silverlight can use the exact same security model. Silverlight through RIA and MVC through the config file. The data access con is a little misleading, because remember, in ASP.NET MVC on the controller you are on the server side already which is exactly where you want to be making the calls. In a Silverlight app you can just as easily make REST calls through the httpwebrequest and response classes into an ASP.NET MVC controller on the server. You wouldn't make a direct call, for example, from the browser client in ASP.NET MVC. You would make a rest call from the client (probably an ajax call) to the controller (on the server) which can then talk to ADO.NET or stored procs. On Caching: MVC has client side caching capability as well. In fact you can cache directly in the DOM in the browser, a common trick. You do lack the ability to persist in isolated storage, though, as you say. this is a nice feature in Silverlight However, that said, I think you make some good points about ViewState, multiply related views, and unit testing. Keep up the good work!