Presentación de taller de programadores Chile, este taller es de mvc.net con tecnologías Microsoft , este taller es practico /teórico, y nos proporcionará las herramientas necesarias para poder crear aplicaciones con esta tecnología
Los invito a todos a revisar esta ppt e introducirse a este mundo del desarrollo con herramientas Microsoft.
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
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
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