In this article I will explain what is MVC? What
are the main advantages and disadvantages of asp.net MVC framework?
MVC
is a framework for building web applications using a MVC (Model-View-Controller) design:
- The
Model represents the application core (for instance a list of database
records).
- The
View displays the data (the database records).
- The
Controller handles the input (to the database records).
Model:
It is the part of the application that handles the logic for the
application data. Often model objects retrieve data (and store data) from a
database.
Model objects are the parts of
the application that implement the logic for the application's data domain.
Often, model objects retrieve and store model state in a database.
Example: a Product object
might retrieve information from a database, operate on it, and then write
updated information back to a Products table in a SQL Server database.
View: It is the parts of the application that
handles the display of the data. Most often the views are created from the
model data.
Views are the components that
display the application's user interface (UI). Typically, this UI is created
from the model data.
An example would be an edit view of a Products table that displays
text boxes, drop-down lists, and check boxes based on the current state of a Product object.
Controller: It is the part of the application that
handles user interaction. Typically controllers read data from a view, control
user input, and send input data to the model.
Controllers are the components
that handle user interaction, work with the model, and ultimately select a view
to render that displays UI. In an MVC application, the view only displays
information; the controller handles and responds to user input and interaction.
For example, the controller handles query-string values, and passes these
values to the model, which in turn might use these values to query the database.
ASP.NET MVC gives you a
powerful, patterns-based way to build dynamic websites that enables a clean
separation of concerns and that gives you full control over markup for
enjoyable, agile development. ASP.NET MVC includes many features that enable
fast, TDD-friendly development for creating sophisticated applications that use
the latest web standards.
Advantages of ASP.NET
MVC:
·
Separation of concerns (SoC) •
From a technical standpoint, the organization of code within MVC is very clean,
organized and granular, making it easier (hopefully) for a web application to
scale in terms of functionality. Promotes great design from a development
standpoint.
·
Easier integration with client side
tools (rich user interface tools) • More than
ever, web applications are increasingly becoming as rich as the applications
you see on your desktops. With MVC, it gives you the ability to integrate with
such toolkits (such as jQuery) with greater ease and more seamless than in Web
Forms.
·
Search Engine Optimization (SEO)
Friendly / Stateless • URL's are more friendly to search engines (i.e.
mywebapplication.com/users/ 1 - retrieve user with an ID of 1 vs
mywebapplication/users/getuser.aspx (id passed in session)). Similarly, since
MVC is stateless, this removes the headache of users who spawn multiple web
browsers from the same window (session collisions). Along those same lines, MVC
adheres to the stateless web protocol rather than 'battling' against it.
·
Works well with developers who need
high degree of control • Many controls in
ASP.NET web forms automatically generate much of the raw HTML you see when an
page is rendered. This can cause headaches for developers. With MVC, it lends
itself better towards having complete control with what is rendered and there
are no surprises. Even more important, is that the HTML forms typically are much
smaller than the Web forms which can equate to a performance boost - something
to seriously consider.
·
Test Driven Development (TDD) •
With MVC, you can more easily create tests for the web side of things. An
additional layer of testing will provide yet another layer of defines against
unexpected behaviour.
The main advantages of ASP.net MVC are:
1.
Enables the full control over the rendered HTML.
2.
Provides clean separation of concerns(SoC).
3.
Enables Test Driven Development (TDD).
4.
Easy integration with JavaScript frameworks.
5.
Following the design of stateless nature of the
web.
6.
RESTful urls that enables SEO.
7.
No ViewState and PostBack events
Disadvantages
of ASP.net MVC 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 break 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.
No comments:
Post a Comment