SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
TALLER MVC.NET 5
Cristian Cárdenas Alarcón
Twitter @ccardensa
Facebook.com/ccardensa
Blog 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
HttpApplication
Processing
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 Break
10: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 Lunch
14: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ón
Filtros 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 Practicas
Có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 Practicas
Refactorizació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 6
Novedades
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 6
Novedades
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 6
Novedades
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

Más contenido relacionado

Similar a Taller mvc.net 5

Desarrollo web con html5 + css3 + j script + asp mvc4 (vstudio 2012)
Desarrollo web con html5 + css3 + j script + asp mvc4 (vstudio 2012)Desarrollo web con html5 + css3 + j script + asp mvc4 (vstudio 2012)
Desarrollo web con html5 + css3 + j script + asp mvc4 (vstudio 2012)
Pedrito Abiel
 
Aplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membershipAplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membership
Jose B Flores P
 
Arquitectura del software
Arquitectura del softwareArquitectura del software
Arquitectura del software
Johns Chacon
 

Similar a Taller mvc.net 5 (20)

Mvc
MvcMvc
Mvc
 
Clase 10 mvc
Clase 10 mvcClase 10 mvc
Clase 10 mvc
 
Spring Mvc Final
Spring Mvc FinalSpring Mvc Final
Spring Mvc Final
 
MVC
MVCMVC
MVC
 
S01-s1-MVC.pptx
S01-s1-MVC.pptxS01-s1-MVC.pptx
S01-s1-MVC.pptx
 
MVC
MVCMVC
MVC
 
RoadShow-Azure-PartnersMicrosoft-Nov-2010-Caso de éxito de Softeng Portal Bul...
RoadShow-Azure-PartnersMicrosoft-Nov-2010-Caso de éxito de Softeng Portal Bul...RoadShow-Azure-PartnersMicrosoft-Nov-2010-Caso de éxito de Softeng Portal Bul...
RoadShow-Azure-PartnersMicrosoft-Nov-2010-Caso de éxito de Softeng Portal Bul...
 
Struts en Java
Struts en JavaStruts en Java
Struts en Java
 
Webinar oracle adf12c… descubre todo su potencial
Webinar oracle adf12c… descubre todo su potencialWebinar oracle adf12c… descubre todo su potencial
Webinar oracle adf12c… descubre todo su potencial
 
Desarrollo web con html5 + css3 + j script + asp mvc4 (vstudio 2012)
Desarrollo web con html5 + css3 + j script + asp mvc4 (vstudio 2012)Desarrollo web con html5 + css3 + j script + asp mvc4 (vstudio 2012)
Desarrollo web con html5 + css3 + j script + asp mvc4 (vstudio 2012)
 
Lp II clase02 - Modelo Vista Controlador
Lp II   clase02 - Modelo Vista ControladorLp II   clase02 - Modelo Vista Controlador
Lp II clase02 - Modelo Vista Controlador
 
Aplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membershipAplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membership
 
Web matrix session2
Web matrix session2Web matrix session2
Web matrix session2
 
ASP.NET MVC Core
ASP.NET MVC CoreASP.NET MVC Core
ASP.NET MVC Core
 
ASP.NET MVC Core by Eduard Tomàs
ASP.NET MVC Core by Eduard TomàsASP.NET MVC Core by Eduard Tomàs
ASP.NET MVC Core by Eduard Tomàs
 
Modelo vista controlador
Modelo vista controladorModelo vista controlador
Modelo vista controlador
 
[Code Camp 2009] ASP.NET MVC a full (Matías Juan Rubí + Jonathan Solarz)
[Code Camp 2009] ASP.NET MVC a full (Matías Juan Rubí + Jonathan Solarz)[Code Camp 2009] ASP.NET MVC a full (Matías Juan Rubí + Jonathan Solarz)
[Code Camp 2009] ASP.NET MVC a full (Matías Juan Rubí + Jonathan Solarz)
 
Framework
FrameworkFramework
Framework
 
Framework
FrameworkFramework
Framework
 
Arquitectura del software
Arquitectura del softwareArquitectura del software
Arquitectura del software
 

Último

ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
gustavoiashalom
 
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
nicolascastaneda8
 

Último (20)

ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operaciones
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestaciones
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdf
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdfAnálisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
 
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfTIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
 
UNIDAD II 2.pdf ingenieria civil lima upn
UNIDAD  II 2.pdf ingenieria civil lima upnUNIDAD  II 2.pdf ingenieria civil lima upn
UNIDAD II 2.pdf ingenieria civil lima upn
 
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERUQUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
 
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosFicha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 
Gestion de proyectos para el control y seguimiento
Gestion de proyectos para el control  y seguimientoGestion de proyectos para el control  y seguimiento
Gestion de proyectos para el control y seguimiento
 
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
Ejemplos aplicados de flip flops para la ingenieria
Ejemplos aplicados de flip flops para la ingenieriaEjemplos aplicados de flip flops para la ingenieria
Ejemplos aplicados de flip flops para la ingenieria
 
Sesion 6 _ Curso Integrador II_TSZVQJ.pdf
Sesion 6 _ Curso Integrador II_TSZVQJ.pdfSesion 6 _ Curso Integrador II_TSZVQJ.pdf
Sesion 6 _ Curso Integrador II_TSZVQJ.pdf
 
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
 

Taller mvc.net 5

  • 1. TALLER MVC.NET 5 Cristian Cárdenas Alarcón Twitter @ccardensa Facebook.com/ccardensa Blog https://cristiancardenas.cl Programadores Chile
  • 2. Favor apagar Smartphones, beepers y el Nokia 3310 que anda por ahí… Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
  • 3. 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
  • 4. Comenzamos… Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
  • 5. Bloque - Fundamentos de MVC.NET 10:00 a 11:30 hrs. Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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 HttpApplication Processing Result Execution (View,etc.)
  • 13. 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:
  • 14. Community Coffe Break 10:00 a 11:30 hrs. Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
  • 15. Bloque - Modelos,Vistas y Controladores 12:00 a 14:00 hrs. Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
  • 16. Fundamentos de MVC.NET Preparando nuestro primer proyecto Vamos a abrir Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
  • 17. 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.
  • 18. 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.
  • 19. 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
  • 20. 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
  • 21. Community Pizza Lunch 14:00 a 14:30hrs. Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
  • 22. Bloque - Entity Framework 6 14.30 a 17:00hrs. Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
  • 23. 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)
  • 24. 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
  • 25. Bloque - Filtros y Seguridad 17:00 a 19:00hrs. Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
  • 26. Fundamentos de MVC.NET Filtros y Seguridad Filtros de autenticación. Filtros de autorización Filtros de excepción Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
  • 27. Bloque – Bonus Track 17:00 a 19:00hrs. Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl
  • 28. Buenas Practicas Có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
  • 29. Buenas Practicas Refactorizació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
  • 30. MVC.NET 6 Novedades 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
  • 31. MVC.NET 6 Novedades 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
  • 32. MVC.NET 6 Novedades 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
  • 33. Fin… Cristian Cárdenas Alarcón – Twitter @ccardensa - Blog https://cristiancardenas.cl