Está en la página 1de 27

INTRODUCIÓN A ASP.

NET
MVC
Tabla de Contenido

 El Patrón MVC
 ASP.NET MVC
 Instalación y Creación de Proyectos ASP.NET MVC Project
 Rutas en ASP.NET MVC (Routing)
 Controladores y Acciones
 Vistas Razor
 Areas

2
El Patrón MVC

3
Interacción Web – ASP.NET MVC
El Patrón MVC

 Model–view–controller (MVC) es un patron de arquitectura de software


 Formulado originalmente a mediados de los 1970s por Trygve Reenskaug
como parte de Smalltalk
 Código reutilizable y separación de conceptos
 Originalmente desarrollado para escritorio y adaptado para aplicaciones de
internet

5
Modelo - Model

 Conjunto de clases que describen los datos que estamos trabajando


así como las reglas de negocios
 Reglas de como los datos pueden ser
cambiados y manipulados
 Podría contener reglas de validación de datos
 A menudo encapsula datos almacenados en una base de datos asi
como el código utilizado para manipular los datos
 Más comúnmente llamada Capa de Acceso a Datos en algunos casos
 Aparte de suministrar los objetos de datos, este no tiene un valor
significativo en el framework

6
Vistas - View

 Define como la interfaz de aplicación del usuario (UI) será visualizada


 Puede soportar vistas maestras (layouts) y vistas parciales (partial views o
controls)
 Web: HTML generado dinámicamente a partir de la plantilla

7
Controladores

 El Corazón de los componentes MVC


 Procesa el requerimiento con ayuda de vistas y modelos
 Un conjunto de clases que maneja
 Comunicación con el usuario
 Flujo general de la aplicación
 Lógica específica de la Aplicación
 Cada controlador tiene una o más “Acciones”

8
Pasos MVC

 Requerimiento entrante en rutado al Controlador

 Para web: HTTP request


 Controlador procesa el requerimiento y crea el Modelo de Presentación

 Controladores seleccionan el resultado apropiado (view)


 Modelo es pasado a la Vista
 Vista transforma el Modelo en el apropiado formato de salida (HTML)
 Respuesta es entregada (HTTP Response)

9
Patrón MVC para la Web

10
MVC Frameworks

 CakePHP (PHP)
 CodeIgniter (PHP)
 Spring (Java)
 Perl: Catalyst, Dancer
 Python: Django, Flask, Grok
 Ruby: Ruby on Rails, Camping, Nitro, Sinatra
 JavaScript: AngularJS, JavaScriptMVC, Spine
 ASP.NET MVC (.NET Framework)

11
ASP.NET MVC

12
Nucleo ASP.NET

Presentación

ASP.NET
Caching .NET Globalization

Pages Controls Master Pages Runtime


Profile Roles Membership

Routes Handlers Etc...

13
ASP.NET Web Forms

 Estable y Maduro, soportado por un montón de controles y utilitarios de


terceros
 Desarrollo Web basado en eventos
 Uso de Postbacks
 Viewstate
 Menos control sobre el HTML
 Difícil para realizar testing
 Desarrollo Rapido
ASP.NET MVC
 Se ejecuta sobre el tope de ASP.NET
 No es un reemplazo de WebForms
 Aprovecha al Máximo los beneficios de of ASP.NET
 Abraza la Web

 User/SEO amigables URLs, HTML 5, SPA


 Adopta Conceptos REST
 Utiliza el patrón MVC

 Convenciones y Direcciones
 Separación de Preocupaciones o Conceptos

15
ASP.NET MVC (2)

 Alto Control sobre el Marcado


 Testeable
 Libremente acoplado y extensible
 Convenciones sobre configuración
 Razor view engine
 Uno de los más grandes view engines
 Con intellisense, integrado in Visual Studio
 Reuso de habilidades actuales (C#, LINQ, HTML, etc.)
 Basado en Aplicación (no scripts como PHP)

16
La Historia de ASP.NET MVC

 ASP.NET MVC 1.0


 In February 2007, Scott Guthrie ("ScottGu") of Microsoft sketched out
the core of ASP.NET MVC
 Released on 13 March 2009

 ASP.NET MVC 2.0


 Released just one year later, on 10 March 2010

 ASP.NET MVC 3.0


 Released on 13 January 2011

 ASP.NET MVC 4.0


 Released on 15 August 2012

 ASP.NET MVC 5.0


 Released on 12 November 2014

17
Separación de Preocupaciones

 Cada component tiene su propia responsabilidad


 SRP – Single Responsibility Principle
 DRY – Don’t Repeat Yourself
 Facilmente Testeable
 TDD – Test-driven development
 Ayuda con el desarrollo concurrente
 Realizar tareas de concurrentemente
•Un Desarrollador trabaja en las vistas
•Otro Trabaja en controladores

18
Extensible

 Reemplazar cualquier componente del sistema


 Arquitectura basada en Interfaces
 Casi cualquier cosa puede ser reemplazada o extendida
 Model binders (request data to CLR objects)
 Action/result filters (e.g. OnActionExecuting)
 Custom action result types
 View engine (Razor, WebForms, NHaml, Spark)
 View helpers (HTML, AJAX, URL, etc.)
 Custom data providers (ADO.NET), etc.

19
URLs Limpias

 REST-like
 /products/update
 /blog/posts/2013/01/28/mvc-is-cool
 Amigable para Humanos
 /product.aspx?catId=123 or post.php?id=123
 Llega a ser /products/chocolate/
 Amigable para Rastreadores Web
 Search engine optimization (SEO)

20
Patron MVC en ASP.NET MVC

21
Petición ASP.NET MVC

22
Las Tecnologías

 Tecnologías que utiliza ASP.NET MVC


 C# (OOP, Unit Testing, async, etc.)
 HTML(5) and CSS
 JavaScript (jQuery, KendoUI, etc.)
 AJAX, Single-page apps
 Databases (MS SQL)
 ORM (Entity Framework and LINQ)
 Web and HTTP

23
Nuevo Proyecto ASP.NET MVC
Proyecto de Aplicación de Internet
Archivos Proyecto Aplicación Web
Archivos Estáticos (CSS, Images, etc.)

todos los Controladores y acciones

Archivos JavaScript (jQuery, Modernizr, knockout, etc.)

Plantillas de Vistas

_Layout.cshtml – pagina principal (plantilla principal)

Application_Start() – Punto de Entrada de la aplicación

Archivo de Configuración
26
Manejador de Paquetes NuGet

 Libre, manejador de paquetes open source


 Hace más facil la instalación y actualización de librerias y utilidades de
código abierto
 Parte de Visual Studio 2013
 Origen de paquetes configurable
 Tan simple como agregar una referencia
 Instalador de paquetes GUI-based
 Consola Manejadora de Paquetes

27

También podría gustarte