taller mvc.net 5
TRANSCRIPT
TALLER MVC.NET 5
Cristian Cárdenas AlarcónTwitter @ccardensaFacebook.com/ccardensaBlog https://cristiancardenas.cl
Programadores Chile
Favor apagar Smartphones, beepers y el Nokia 3310 que anda por ahí…
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
AGENDA
Parte I: Fundamentos de MVC.NET
Parte II: Modelos, Vistas y Controladores
Parte III: Entity Framework 6
Parte IV: Filtros y Seguridad
Cierre: ASP.NET 5 & MVC.NET 6
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
https://github.com/ccardensa/TallerMVC5
Comenzamos…
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Bloque - Fundamentos de MVC.NET
10:00 a 11:30 hrs.
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Fundamentos de MVC.NET Versiones de MVC.NET
MVC 1.0 - Lanzamiento
MVC 2.0 – Mejoras del Framework
MVC 3.0 – Vistas Razor, Unobtrusive Javascript
MVC 4.0 – Web Api, Asyncrono Controller, Azure
MVC 5.0 – Identity, Atributo de ruta, filter overrides
MVC 6.0 - ???
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Fundamentos de MVC.NET A lo que vinimos, ¿Qué es MVC.NET?
MVC es un patrón de arquitectura el cual mantiene los ámbitos más importantes separados, los inicios de mvc datan de los años 70, la primera implementación informal fue en Smalltalk un lenguaje de programación reflexivo, recién en 1988 se consolido como patrón.
En marzo del 2009 se lanzo la primera versión oficial de MVC.NET 1.0, luego en 2012 se incluyo Razor y Web Api en MVC.NET, además fue incluido como Open Source bajo la licencia apache 2.0
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Fundamentos de MVC.NET Ventajas de MVC.NET
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Separación de aspecto, esto quiere decir que la aplicación se divide en partes discretas que están enlazadas entre si, pero no fuertemente enlazadas como Web Forms
Mayor control sobre el HTML representado
MVC.NET facilita el desarrollo basado en pruebas
Fundamentos de MVC.NET Ventajas de MVC.NET
Adiós a los eventos
No más ViewState
Fin al Postback
El ciclo de vida de la pagina es mucho más simple
Podemos modificar a nuestro antojo las rutas (url)
Integración de Ajax de forma natural
Favorece la implementación de Inyección de dependencia e inversión de control
Mayor control sobre el HTML
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Fundamentos de MVC.NET Ventajas de MVC.NET
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Viewstate normal de una aplicación Web Forms
Fundamentos de MVC.NET Ventajas de MVC.NET
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Viewstate anormal de una aplicación Web Forms, estos tipos consumen memoria excesiva
Fundamentos de MVC.NET Ciclo de Vida
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Routing
Controller
MvcHandler
Filtros
Model Binding
Actions Methods
HTTP Request
HTTP Response
Pipeline
HttpApplicationProcessing
Result Execution(View,etc.)
Fundamentos de MVC.NET Lo que debemos hacer antes de codear
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Planificación de Layers
Diseño de distribución de componentes
Diseño y estrategia de Cache
La BBDD existe o la debemos crear desde cero
¿La aplicación es publica o privada?
Lo primero que debemos hacer antes de comenzar a codear es analizar que tipo de aplicación necesitamos, que tecnologías adicionales vamos a utilizar y cual es el alcance del proyecto que realizaremos, además debemos tener en cuenta la creación de la solución y plantearnos lo siguiente:
Community Coffe Break10:00 a 11:30 hrs.
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Bloque - Modelos, Vistas y Controladores
12:00 a 14:00 hrs.
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Fundamentos de MVC.NET Preparando nuestro primer proyecto
Vamos a abrir
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Fundamentos de MVC.NET Modelos, Vistas y Controladores
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Modelos
Los objetos de modelo son partes de la aplicación que implementa la lógica del dominio de datos, generalmente el modelo recupera y almacena datos de una BBDD.
Vista
La vista es una vista… -si… grandes pensadores-, no obstante las vistas de MVC.NET se pueden enlazar a un modelo o a un DTO, este proceso se llama Binding, estas vistas utilizan Razor como motor de render, el cual nos permite tener mucho control sobre el HTML.
Fundamentos de MVC.NET Modelos, Vistas y Controladores
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Controlador:
Los controladores son los componentes que controlan la interacción del usuario, trabajan con el modelo y por último seleccionan una vista para representar la interfaz de usuario
En una aplicación MVC, la vista solo muestra información; el controlador administra y responde a los datos proporcionados por el usuario y su interacción. Por ejemplo, el controlador administra los valores de la cadena de consulta y pasa estos valores al modelo, que a su vez podría usarlos para consultar la base de datos.
Fundamentos de MVC.NET Formulario
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Ahora vamos a comenzar a realizar la codificación de nuestro formulario con un ciclo de vida sin Ajax
Fundamentos de MVC.NET Formulario Ajax
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Ahora vamos a comenzar a realizar la codificación de nuestro formulario con un ciclo de vida con Ajax
Community Pizza Lunch14:00 a 14:30hrs.
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Bloque - Entity Framework 6
14.30 a 17:00hrs.
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Fundamentos de MVC.NET Entity Framework
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Entity Framework es un conjunto de tecnologías de ADO.NET que permiten el desarrollo de aplicaciones de software orientadas a datos.
EF trae consigo LINQ to Entity, este lenguaje nos ayuda a realizar consultas a la BBDD desde C#, esto nos permite crear aplicaciones sin la necesidad de agregar procedimientos almacenados.
Pero cual es la mayor ventaja de este ORM (mapeo de objeto relacional)
Fundamentos de MVC.NET Entity Framework
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Ventajas:
Facilidad de uso
Abstracción de la BBDD utilizada
Seguridad en la capa de acceso a datos
Se pueden asignar multiples modelos conceptuales a un esquema
La compatibilidad con Language Integrated Query (LINQ)
Podemos cambiar de motor de base de datos con un bajo impacto
Bloque - Filtros y Seguridad
17:00 a 19:00hrs.
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Fundamentos de MVC.NET Filtros y Seguridad
Filtros de autenticación.Filtros de autorizaciónFiltros de excepción
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Bloque – Bonus Track
17:00 a 19:00hrs.
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Buenas PracticasCódigo Limpio o Clean Code
Habrán escuchado hablar sobre clean code como parte de las buenas practicas, bueno “Clean Code” es la capacidad de escribir código ordenado y estructurado de tal manera que resulta muy fácil leer por otro ser humano.
Evitemos la refactorización futura, si señores evitemos gastar tiempo futuro y escribamos el código claramente desde el principio.
“Esto al final del día es como mejorar la técnica de lectura y escritura, te entrega nuevos súperpoderes de los cuales presumir”
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Buenas PracticasRefactorización, la salvación del código limpio
La Refactorización es 100% pura voluntad, me atrevo a decir esto porque cuando vemos un código mal escrito ¿Nos damos la molestia de mejorarlo?, seamos honestos… eso sucede el 0.1% de las veces que vemos un código mal escrito.
Pero no todo es malo, digamos que el sistema laboral, la presión de sacar el proyecto a tiempo o por simple flojera, OK tenemos una excusa, ¿pero que sucede si hacemos lo contrario?, pasa de todo, aunque no lo vean tus manos, al realizar una refactorización puedes mejorar el rendimiento, disminuir las horas de mantención e incluso ayudar a tus compañeros a entender rápidamente el código al momento de tener que tocar esa sinfonía de código escrita por ti o por algún mono con navajas.
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
MVC.NET 6Novedades
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Tag Helpers
Los Tag Helpers nos permitirán tener aun mayor control sobre nuestro HTML, no obstante aun se podrán utilizar los HTML.Helpers
MVC.NET 6Novedades
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
Inyección de Dependencia
Ahora tendremos un contenedor IoC por defecto, lo cual nos permitirá agregar nuestras dependencias y disminuir las configuraciones a realizar en nuestros proyectos MVC.NET
MVC.NET 6Novedades
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
El Global.asax pasara a ser un StartUp
Logging por defecto, vendrá integrando en el framework, hoy en día se deben implementar por separado
Web API Controller
Project.json reemplazará a nuestro querido archivo web.config XML
Las vistas parciales desaparen y son reemplazadas por ViewComponents
Fin…
Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl