Why ASP.net MVC? Version History of MVC Features of MVC Things to remember while creating MVC Application MVC Architectural Pattern Web Forms vs. MVC Advantages of ASP.NET MVC Best practices while using ASP.Net MVC

Why ASP.net MVC?

Although web forms were very successful, Microsoft thought of developing ASP.net MVC. The main issue with ASP.net webForms is performance. In a web application, there are four main aspects which define performance:-

Response time issues Problem of Unit Testing HTML customization Reusability of the code-behind class

ASP.net MVC excels on the above parameters.

Version History of MVC

ASP.NET MVC1

Released on Mar 13, 2009 It runs on.NET 3.5 Visual Studio 2008 MVC Pattern architecture with WebForm Engine Main Features includes Html & Unit testing, Ajax Helpers, Routing, etc.

ASP.NET MVC2

This version released on March 10, 2010 Runs on .NET 3.5,4.0 and with Microsoft Visual Studio 2008 Include Feature like Templated helpers, Ul helpers with automatic scaffolding & customizable templates It supports for DataAnnotations Attributes to apply model validation on client and server sides

ASP.NET MVC3

It was released on Jan 13, 2011 Runs on .NET 4.0 and with Microsoft Visual Studio 2010 Use of NuGet to deliver software and allows you to manage dependencies across the platform Better JavaScript support with, jQuery Validation, and JSON binding It offers features like the Razor view engine; enhanced Data Annotations attributes for model validation on both client and server sides

ASP.NET MVC4

This version was released on Aug 2012 It runs on .NET 4.0, 4.5 and with Visual Studio 2010 & Visual Studio 2012 Enhancements to default project templates Offers features like Mobile project template using jQuery Mobile, Task support for Asynchronous Controllers, bundling, minification, etc.

ASP.NET MVC5

Released on 17 October 2013 Runs on .NET 4.5, 4.5.1 and with Visual Studio 2012 & Visual OneASP.NET Supports attribute routing in MVC

Features of MVC

Easy and frictionless testability Full control over your HTML, JavaScript , and URLs Leverage existing ASP.Net Features A new presentation option for ASP.Net A simpler way to program Asp.Net Clear separation of logic: Model, View, Controller Test-Driven Development Support for parallel development

Things to remember while creating MVC Application

Here are a few useful things in this ASP.NET MVC tutorial which you need to remember for creating MVC application:

You need to remember that ASP .net MVC is NOT a replacement of ASP.Net web forms based applications The approach of MVC app development must be decided based on the application requirements and features provided by ASP .net MVC to suit the specific development needs. Application development process with ASP .NET MVC is more complex compared with web forms based applications. Application maintainability always be higher with separation of application tasks.

MVC architectural Pattern

MVC architectural Pattern MVC is a software architecture pattern which follows the separation of concerns method. In this model .Net applications are divided into three interconnected parts which are called Model, View, and Controller. The goal of the MVC pattern is that each of these parts can be developed, tested in relative isolation and also combined to create a very robust application. Let see all of them in detail:

Models

Model objects are parts of the application which implement the logic for the application’s data domain. It retrieves and stores model state in a database. For example, product object might retrieve information from a database, operate on it. Then write information back to products table in the SQL server.

Views

Views are the components which are used to display the application’s user interface (UI) also called viewmodel in MVC. It displays the .Net MVC application’s which is created from the model data. The common example would be an edit view of an Item table. It displays text boxes, pop-ups and checks boxes based on the current state of products & object.

Controller

Controllers handle user interaction, work with the model, and select a view to render that display Ul. In a .Net MVC app, the view only displays information, the controller manages and responds to user input & interaction using action filters in MVC. For example, the controller manages query-string values and passes those values to the model.

Web Forms vs. MVC

Advantages of ASP.NET MVC

Highly maintainable applications by default It allows you to replace any component of the application. Better support for Test Driven Development Complex applications are easy to manage because of divisions of Model, View, and Controllers. Offering robust routing mechanism with front controller pattern Offers better control over application behavior with the elimination of view state and server-based forms .Net MVC applications are supported by large teams of developers and Web designers It offers more control over the behaviors of the application. It also uses an optimized bandwidth for requests made to the server

Disadvantages of ASP.NET MVC

You can’t see design page preview like the .aspx page. You need to run the program every time to see it’s actual design. Understanding the flow of the application can be challenging It is quite complicated to implement, so it is not an ideal option for small level applications It is hard to learn MVC for ASP.NET, as it requires a great understanding of MVC pattern

Best practices while using ASP.Net MVC

Create a separate assembly for MODEL in case of large and complex code to avoid any unwanted situation o The model should include business logic, session maintenance, validation part, and data logic part. VIEW should not contain any business logic and session maintenance, use ViewData to access data in View Business logic and data access should never occur in ControllerViewData The controller should only be responsible for preparing and return a view, calling model, redirect to action, etc. Delete Demo code from the application when you create it Delete AccountController Use only specific view engine to create HTML markup from your view as it is the combination of HTML and the programming code.

Summary

ASP.NET MVC is an open source web development framework from Microsoft that provides a Model View Controller architecture. ASP.net MVC offers an alternative to ASP.net web forms for building web applications. The main issue with ASP.net webForms is performance. ASP.net MVC offer Easy and frictionless testability with Full control over your HTML & URLs. You need to remember that ASP .net MVC is NOT a replacement of ASP.Net web forms based applications. The approach of MVC app development or ASP.NET MVC Life Cycle must be decided based on the application requirements and features provided by ASP .net MVC to suit the specific development needs. ASP.NET MVC offers Highly maintainable applications by default. With ASP.net you can’t see design page preview like the .aspx page. As a best practise, the model should include business logic, session maintenance, validation part, and data logic part.