ASP.NET MVC is the Microsoft implementation of Model View Controller design pattern for their web platform. It provides a clean separation of concerns, promotes decoupling between code and UI and supports test driven development practices which are hard to follow in a UI driven environment such as web forms. Developers often find themselves in the position of justifying why using or upgrading to a modern web framework like ASP.NET MVC is a good business decision. There are various advantages to using the MVC framework including but not limited to ease of maintenance, enhanced security, improved performance and scalability. Following are few salient features with brief description to addresses the ROI part of adapting MVC. Based on my experience of migrating a large scale website from ASP.NET to ASP.NET MVC framework, it gives developers a powerful, pattern-compliant way of building dynamic websites which enables a 'clean separation of concerns' and gives full control over markup for agile development.
- Quicker Turn Around for Enhancement Requests: Business loves it and by a cleaner separation of code and contents, a web team can entertain the request of content changes in a much faster manner. This include copy changes, image swaps, multivariate testing, ad-tracking pixels and affiliate marketing. As part of your organization's Content Management System (CMS) strategy, you can have content managers modify the “views” effectively enabling them to make marketing verbiage and page layout changes without touching code. This is usually a challenging task in a UI-code coupled environment such as ASP.NET webforms.
- Enhanced Security: Using the built in features supported in .NET 4.0, ASP.NET MVC provides security against malicious cross site request forgery and scripting attacks using specialized encoding and Anti-Forgery Request tokens. Information and web application security teams promotes these features to be used as standard web development practices.
- Performance & Scalability: Yes, no more viewstate! With lighter HTML markup and cleaner separation of concerns, ASP.NET MVC decreases the page load time, promotes load balancer based caching and inherently follows the design of stateless nature of web. Microsoft has provided no official comparison statistics but developer community and professional working experience with MVC shows that MVC is much faster than classic ASP.NET.
- Compliance: MVC provides very high degree of control over markup emitted to the client browser therefore ADA Compliance and other web standards (XHTML, HTML 5 etc) are much easier to adapt.
- Test Driven Development: As a web framework following MVC design pattern, ASP.NET MVC promotes the usage of test driven development; a technique which has proven to reduce the number of bugs early on and helps in regression testing. Therefore, it effectively reduces development, QA and regression testing time for most changes with the help of automated unit tests. The framework also decouples the components which a single webpage may use, making it possible to test individual components in isolation.
- Reusability: With isolation of views, we can now leverage the existing applications to build new websites. For example, developers can work on new “views” that are specific for the mobile browser experience without developing an entirely new web application. This eliminates code duplication which would be hard to achieve with ASP.NET webforms.