We are providing online training of realtime Live project on Asp.Net MVC with Angular and Web API. For more information click here. If you have any query then drop the messase in CONTACT FORM

Saturday, February 28, 2015

What are versions of MVC


What is MVC?

    MVC stands for Model-View-Controller. It is a software design pattern that was introduced in the 1970s. Also, the MVC pattern forces a separation of concerns, it means domain model and controller logic are decoupled from the user interface (view). As a result maintenance and testing of the application become simpler and easier.

    Explain the MVC design pattern?


    MVC design pattern splits an application into three main aspects: Model, View, and Controller.

    Model - The Model represents a set of classes that describe the business logic i.e. business model as well as data access operations i.e. data model. It also defines business rules for data means how the data can be changed and manipulated.

    View - The View represents the UI components like CSS, jQuery, Html, etc. It is only responsible for displaying the data that is received from the controller as a result. This also transforms the model(s) into UI.


    Controller - The Controller is responsible to process incoming requests. It receives input from users via the View, then processes the user's data with the help of Model and passing the results back to the View. Typically, it acts as the coordinator between the View and the Model.

    Today, this pattern is used by many popular frameworks like Ruby on Rails, Spring Framework, Apple iOS Development, and ASP.NET MVC.

    What is Domain Driven Design and Development?

    Domain-Driven Design (DDD) is a collection of principles and patterns that help developers to make design decisions to develop elegant systems for different domains. It is not a technology or methodology.

    The main components of DDD are Entity, Value Object, Aggregate, Service, and Repository.

    Entity- An object that has an identity- it is unique within the system, like Customer, Employee, etc.

    Value Object- An object that has no identity within the system like Rate, State, etc.

    Note- A value object can become an entity depending on the situation.

    Aggregate- An aggregate root is a special kind of entity that consumers refer to directly. All consumers of the aggregate root are called aggregate. The aggregate root guarantees the consistency of changes being made within the aggregate.

    Service- A service is a way of dealing with actions, operations, and activities within your application.

    Repository- A repository is responsible to store and to retrieve your data. It is not a concern of how and where data will persist. So, it can be SQL server, oracle, xml, text file or anything else. The repository is not a Data Access Layer but it refers to a location for storage, often for safety or preservation.

    What is the MVP pattern?

    This pattern is similar to the MVC pattern in which the controller has been replaced by the presenter. This design pattern splits an application into three main aspects: Model, View, and Presenter.

    Model - The Model represents a set of classes that describes the business logic and data. It also defines business rules for data means how the data can be changed and manipulated.

    View - The View represents the UI components like CSS, jQuery, Html, etc. It is only responsible for displaying the data that is received from the presenter as a result. This also transforms the model(s) into UI.

    Presenter - The Presenter is responsible for handling all UI events on behalf of the view. This receives input from users via the View, then process the user's data with the help of Model and passing the results back to the View. Unlike view and controller, view and presenter are completely decoupled from each other’s and communicate with each other by an interface.

    Also, presenter does not manage the incoming request traffic as controller.

    This pattern is commonly used with ASP.NET Web Forms applications which require to create automated unit tests for their code-behind pages. This is also used with windows forms.
    Key Points about MVP Pattern


    User interacts with the View.

    There is one-to-one relationship between View and Presenter means one View is mapped to only one Presenter.

    View has a reference to Presenter but View has not reference to Model.

    Provides two way communication between View and Presenter.

    What is MVVM pattern?


    MVVM stands for Model-View-View Model. This pattern supports two-way data binding between view and View model. This enables automatic propagation of changes, within the state of view model to the View. Typically, the view model uses the observer pattern to notify changes in the view model to model.

    Model - The Model represents a set of classes that describes the business logic and data. It also defines business rules for data means how the data can be changed and manipulated.

    View - The View represents the UI components like CSS, jQuery, html etc. It is only responsible for displaying the data that is received from the controller as the result. This also transforms the model(s) into UI.

    View Model - The View Model is responsible for exposing methods, commands, and other properties that helps to maintain the state of the view, manipulate the model as the result of actions on the view, and trigger events in the view itself.

    This pattern is commonly used by the WPF, Silverlight, Caliburn, nRoute etc.
    Key Points about MVVM Pattern


    User interacts with the View.


    There is many-to-one relationship between View and ViewModel means many View can be mapped to one ViewModel.

    View has a reference to ViewModel but View Model has no information about the View.
    Supports two-way data binding between View and ViewModel.


    What is ASP.NET MVC?

    ASP.NET MVC is an open source framework built on the top of Microsoft .NET Framework to develop web application that enables a clean separation of code. ASP.NET MVC framework is the most customizable and extensible platform shipped by Microsoft.

    What is the advantages of ASP.NET MVC?
    There are following advantages of ASP.NET MVC over Web Forms (ASP.NET):
    Separation of concern - MVC design pattern divides the ASP.NET MVC application into three main aspects Model, View and Controller which make it easier to manage the application complexity.

    TDD - The MVC framework brings better support to test-driven development.

    Extensible and pluggable - MVC framework components were designed to be pluggable and extensible and therefore can be replaced or customized easier then Web Forms.

    Full control over application behaviour - MVC framework doesn’t use View State or server based forms like Web Forms. This gives the application developer more control over the behaviors of the application and also reduces the bandwidth of requests to the server.

    ASP.NET features are supported - MVC framework is built on top of ASP.NET and therefore can use most of the features that ASP.NET include such as the providers architecture, authentication and authorization scenarios, membership and roles, caching, session and more.

    URL routing mechanism - MVC framework supports a powerful URL routing mechanism that helps to build a more comprehensible and searchable URLs in your application. This mechanism helps to the application to be more addressable from the eyes of search engines and clients and can help in search engine optimization.

    Explain evolution history of ASP.NET MVC?


    Here is the list of released version history of ASP.NET MVC Framework with theirs features.
    ASP.NET MVC1


    Runs on .NET 3.5 and with Visual Studio 2008 & Visual Studio 2008 SP1

    MVC Pattern architecture with WebForm Engine
    Html Helpers
    Ajax helpers
    Routing


    Unit Testing
    ASP.NET MVC2


    Released on Mar 10, 2010

    Runs on .NET 3.5, 4.0 and with Visual Studio 2008 & 2010

    Strongly typed HTML helpers means lambda expression based Html Helpers

    Templated Helpers

    UI helpers with automatic scaffolding & customizable templates

    Support for DataAnnotations Attributes to apply model validation on both client and server sides


    Overriding the HTTP Method Verb including GET, PUT, POST, and DELETE ? Areas for partitioning a large applications into modules


    Asynchronous controllers
    ASP.NET MVC3


    Released on Jan 13, 2011


    Runs on .NET 4.0 and with Visual Studio 2010


    The Razor view engine


    Enhanced Data Annotations attributes for model validation on both client and server sides


    Remote Validation

    Compare Attribute

    Session less Controller

    Child Action Output Caching

    Dependency Resolver

    Entity Framework Code First support

    Partial-page output caching

    ViewBag dynamic property for passing data from controller to view

    Global Action Filters


    Better JavaScript support with unobtrusive JavaScript, jQuery Validation, and JSON binding


    Use of NuGet to deliver software and manage dependencies throughout the platform
    ASP.NET MVC4


    Released on Aug 15, 2012

    Runs on .NET 4.0, 4.5 and with Visual Studio 2010SP1 & Visual Studio 2012

    ASP.NET WEB API

    Enhancements to default project templates

    Mobile project template using jQuery Mobile

    Display Modes

    Task support for Asynchronous Controllers

    Bundling and minification


    Support for the Windows Azure SDK
    ASP.NET MVC5

    Released on 17 October 2013

    Runs on .NET 4.5, 4.5.1 and with Visual Studio 2012 & Visual Studio 2013

    One ASP.NET

    ASP.NET Identity

    ASP.NET Scaffolding

    Authentication filters - run prior to authorization filters in the ASP.NET MVC pipeline

    Bootstrap in the MVC template
    ASP.NET WEB API2

No comments: