asp.net-mvcEmpezando con asp.net-mvc


Observaciones

El patrón arquitectónico Modelo-Vista-Controlador (MVC) separa una aplicación en tres componentes principales: el modelo, la vista y el controlador. El marco MVC de ASP.NET proporciona una alternativa al patrón de formularios web de ASP.NET para crear aplicaciones web. El marco de ASP.NET MVC es un marco de presentación ligero y altamente comprobable que (al igual que con las aplicaciones basadas en Web Forms) se integra con las características existentes de ASP.NET, como las páginas maestras y la autenticación basada en membresía. El marco MVC se define en el ensamblado System.Web.Mvc.

El marco MVC incluye los siguientes componentes:

  • Modelos Los objetos modelo son las partes de la aplicación que implementan la lógica para el dominio de datos de la aplicación. A menudo, los objetos del modelo recuperan y almacenan el estado del modelo en una base de datos. Por ejemplo, un objeto Producto podría recuperar información de una base de datos, operar en ella y luego escribir información actualizada en una tabla de Productos en una base de datos de SQL Server. En aplicaciones pequeñas, el modelo es a menudo una separación conceptual en lugar de una física. Por ejemplo, si la aplicación solo lee un conjunto de datos y lo envía a la vista, la aplicación no tiene una capa de modelo físico y clases asociadas. En ese caso, el conjunto de datos asume el rol de un objeto modelo.
  • Vistas . Las vistas son los componentes que muestran la interfaz de usuario (UI) de la aplicación. Normalmente, esta IU se crea a partir de los datos del modelo. Un ejemplo sería una vista de edición de una tabla de Productos que muestra cuadros de texto, listas desplegables y cuadros de verificación según el estado actual de un objeto Producto.
  • Controladores Los controladores son los componentes que controlan la interacción del usuario, trabajan con el modelo y, en última instancia, seleccionan una vista para representar que muestra la interfaz de usuario. En una aplicación MVC, la vista solo muestra información; El controlador maneja y responde a la entrada e interacción del usuario. Por ejemplo, el controlador maneja los valores de cadena de consulta y pasa estos valores al modelo, que a su vez podría usar estos valores para consultar la base de datos.

Versiones

Versión Versión .NET Fecha de lanzamiento
MVC 1.0 .NET 3.5 2009-03-13
MVC 2.0 .NET 3.5 / 4.0 2010-03-10
MVC 3.0 .NET 4.0 2011-01-13
MVC 4.0 .NET 4.0 / 4.5 2012-08-15
MVC 5.0 .NET 4.5 2013-10-17
MVC 5.1 .NET 4.5 2014-01-17
MVC 5.2 .NET 4.5 2014-08-28
MVC 6.0 .NET 4.5 2015-11-18
Core MVC 1.0 .NET 4.5 2016-07-12
Core MVC 1.1 .NET 4.5 2016-11-18

Hola MVC!

ASP.NET MVC es un framework de aplicaciones web de código abierto. MVC en sí es un patrón de diseño que se basa en tres componentes principales: model-view-controller .

Modelo : los modelos reflejan los objetos de su negocio y son un medio para pasar datos entre controladores y vistas.

Vista : las vistas son las páginas que representan y muestran los datos del modelo al usuario. Las vistas de ASP.NET MVC se escriben normalmente utilizando la sintaxis de Razor.

Controlador : los controladores manejan las solicitudes HTTP entrantes de un cliente y, por lo general, devuelven uno o más modelos a una vista apropiada.

Las características de ASP.NET MVC:

  1. Ideal para desarrollar aplicaciones complejas pero ligeras.
  2. Proporciona un marco extensible y conectable que se puede reemplazar y personalizar fácilmente. Por ejemplo, si no desea utilizar el motor de visualización Razor o ASPX integrado, puede utilizar cualquier otro motor de visualización de terceros o incluso personalizar los existentes.
  3. Utiliza el diseño basado en componentes de la aplicación al dividirla lógicamente en los componentes Modelo, Vista y Controlador. Esto permite a los desarrolladores gestionar la complejidad de los proyectos a gran escala y trabajar en componentes individuales.
  4. La estructura MVC mejora el desarrollo basado en pruebas y la capacidad de prueba de la aplicación, ya que todos los componentes pueden diseñarse en función de la interfaz y probarse utilizando objetos simulados. Por lo tanto, ASP.NET MVC Framework es ideal para proyectos con un gran equipo de desarrolladores web.
  5. Admite todas las funciones vastas de ASP.NET, como Autorización y autenticación, Páginas maestras, Enlace de datos, Controles de usuario, Membresías, Enrutamiento de ASP.NET, etc.
  6. No utiliza el concepto de estado de vista (que está presente en ASP.NET). Esto ayuda en la creación de aplicaciones que son ligeras y dan control total a los desarrolladores.

Aplicación MVC simple

Vamos a crear una aplicación MVC simple que muestra detalles personales. Crea un nuevo proyecto MVC usando Visual Studio. Agregue un nuevo modelo llamado Person a la carpeta de modelos como sigue:

public class Person
{
    public string Surname { get; set; }
    public string FirstName { get; set; }
    public string Patronymic { get; set; }
    public DateTime BirthDate { get; set; }
}
 

Agregar un nuevo controlador a la carpeta Controladores:

public class HomeController : Controller
{
    //Action Method
    public ActionResult Index()
    {
        // Initialize model
        Person person = new Person
        {
            Surname = "Person_SURNAME",
            FirstName = "Person_FIRSTNAME",
            Patronymic = "Person_PATRONYMIC",
            BirthDate = new DateTime(1990, 1, 1)
        };

        // Send model to View for displaying to user
        return View(person);
    }
}
 

Finalmente, agregue Ver a / Vistas / Inicio / carpeta llamada Index.cshtml :

@* Model for this view is Person *@
@model Hello_MVC.Models.Person

<h2>Hello @Model.FirstName !</h2>

<div>
    <h5>Details:</h5>
    <div>
        @Html.LabelFor(m => m.Surname)
        @Html.DisplayFor(m => m.Surname)
    </div>
    <div>
        @Html.LabelFor(m => m.FirstName)
        @Html.DisplayFor(m => m.FirstName)
    </div>
    <div>
        @Html.LabelFor(m => m.Patronymic)
        @Html.DisplayFor(m => m.Patronymic)
    </div>
    <div>
        @Html.LabelFor(m => m.BirthDate)
        @Html.DisplayFor(m => m.BirthDate)
    </div>
</div>