Novedades de ASP.NET MVC6

1.007 visualizaciones

Publicado el

Las novedades más importantes de MVC6 (ASP.NET5): Tag Helpers, View Components, controladores POCO y algunas más...

Publicado en: Tecnología
0 comentarios
2 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
1.007
En SlideShare
0
De insertados
0
Número de insertados
55
Acciones
Compartido
0
Descargas
22
Comentarios
0
Recomendaciones
2
Insertados 0
No insertados

No hay notas en la diapositiva.
  • DemoPaginas.sln
  • Explicación de lo que son los View Components, qué rol juegan y como se usan
  • Mencionar la versión asíncrona de Invoke (InvokeAsync)
  • Mostrar DemoVC.sln
    Mencionar la inyección de dependencias en ViewComponents
  • Enseñar los TagHelpers de formulario

    DemoTagHelper.sln -> Vista Home/Contact
  • DemoTagHelper.sln -> Repeater
  • DemoDual.sln

    Comentar código y mencionar serialización json / xml
  • DemoPoco.sln
  • DemoControllersLocation.sln
  • Novedades de ASP.NET MVC6

    1. 1. Agenda • ASP.NET 5 Introduction • Unai Zorrilla • Novedades de MVC 6 • Eduard Tomás • break • Migrando desde MVC 5 a MVC 6 • ASP.NET Cross Plattform http://aka.ms/EvASPNET5
    2. 2. ASP .NET MVC6
    3. 3. Eduard Tomàs Compulsive Developer at Plain Concepts etomas@plainconcepts.com @eiximenis http://blogs.plainconcepts.com/aspnetspain/ http://geeks.ms/blogs/etomas
    4. 4. MVC6 – Novedades
    5. 5. • MVC6 es una evolución de MVC5 • El modelo de desarrollo es el mismo: controladores, vistas, modelo • Los cambios más importantes vienen dados por las propias novedades de ASPNET5 (configuración, inyección dependencias, nuevo workflow de trabajo) • Lo que conoces del modelo de desarrollo de MVC5 no está obsoleto Antes de nada… lo qué sigue “igual”
    6. 6. • Agregar referencia a Microsoft.AspNet.MVC 6.0.0 • Configurar servicios MVC6 en Startup.ConfigureServices • Añadir MVC6 al pipeline de ASPNET5 en Startup.Configure Instanciación MVC6
    7. 7. • El paquete Microsoft.AspNet.Diagnostics proporciona la página de error • Debe configurarse en Startup con app.UseDeveloperExceptionPage() • Esta página proprciona mucho detalle de los errores. En escenarios fuera de desarrollo debe usarse UseExceptionHandler() Página de error
    8. 8. • El mismo paquete Microsoft.AspNet.Diagnostics proporciona una página de diagnóstico • Dicha página proporciona información de los paquetes cargados • Debe añadirse al pipeline con app.UseRuntimeInfoPage() • La URL por defecto es /runtimeinfo Página de diagnostico
    9. 9. Demo Páginas de error y diagnóstico
    10. 10. • Reemplazan a las vistas parciales de MVC5 — Puede verse un View Component como un “pequeño controlador” — El VC tiene una única responsabilidad: devolver la vista parcial • Separación de responsabilidades — No es necesario “hinchar” un controlador existente View Components
    11. 11. • Clase que herede de ViewComponent — Opcional: Atributo [ViewComponent] para especificar nombre • Declarar método IViewComponentResult Invoke(…) • Crear la vista asociada en /Views/Shared/<ViewComponent>/ • Uso: @Component(“nombre”).Invoke(...) ViewComponents
    12. 12. Demo View Components
    13. 13. • Permiten que una “etiqueta HTML” en una vista de Razor sea procesada en servidor • No son Web Controls • Sustituyen a los helpers clásicos de Razor • Permiten una mayor integración con herramientas Razor Tag Helpers
    14. 14. Demo Tag Helpers
    15. 15. • Heredar de TagHelper • Decorar con [HtmlTargetElement] indicando qué atributos y qué tag son respondidos por el TagHelper • Redefinir el método Process Creación de un TagHelper
    16. 16. • La directiva addTagHelper “clase, assembly” importa el TagHelper indicado del ensamblado correspondiente • VS2015 incluye en _ViewImports.cshtml el código para importar todos los TagHelpers de MVC6 en todas las vistas: — @addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers" Importar TagHelpers
    17. 17. Demo Creación de un TagHelper
    18. 18. • Si un TagHelper es importado para la vista actual se ejecutará en todas las etiquetas HTML que coincidan con la etiqueta declarada en [HtmlTargetElement] siempre y cuando contengan algunos de los atributos declarados • Podemos preceder el nombre del tag con ! para indicar a Razor que no queremos que se procese el TagHelper • Podemos usar @tagHelperPrefix “prefijo” para forzar un prefijo para todos los TagHelpers. Ejecución selectiva de TagHelpers
    19. 19. Demo Ejecución selectiva de TagHelpers
    20. 20. • Se soporta la directiva @inject para inyectar dependencias en vistas Razor — @inject MyType MyVariable • Ojo… Eso da mucho poder a las vistas, úsalo con cautela • Recuerda la separación de responsabilidades de MVC Inyección de dependencias en vistas
    21. 21. • WebApi se integra dentro de MVC • Desaparece “ApiController” • Un solo sistema de routing. • Un solo sistema de model binding • Una sola jerarquía de clases • Un solo framework Unificación de WebApi y MVC
    22. 22. Demo Controladores “duales”
    23. 23. • No es necesario que un controlador herede de la clase base Controller • Interesante en escenarios, donde por cualquier razón, los controladores deban heredar de otra clase Controladores POCO
    24. 24. Demo Controladores POCO
    25. 25. • Primero elige en qué ensamblados pueden estar los controladores. • El ensamblado debe tener al menos una referencia a: — “Microsoft.AspNet.Mvc” — “Microsoft.AspNet.Mvc.Core” — “Microsoft.AspNet.Mvc.ModelBinding” — “Microsoft.AspNet.Mvc.Razor” — “Microsoft.AspNet.Mvc.Razor.Host” — “Microsoft.AspNet.Mvc.TagHelpers” • Se puede modificar este comportamiento implementando IAssemblyProvider Como MVC6 descubre controladores
    26. 26. • Una clase es considerada un controlador, si estando en un ensamblado seleccionado: — Es pública i no abstracta — No es genérica — No es una nested class — Debe heredar de Controller o terminar su nombre en Controller — No debe estar decorada con [NonController] • Puede redefinirse este comportamiento proporcionando un ControllerTypeProvider propio Como MVC6 descubre controladores
    27. 27. Demo Localización de controladores
    28. 28. Learn more! • ASP.NET Docs • http://asp.net/en/latest • ASP.NET MVC • http://asp.net/vnext/mvc • Github • http://github.com/aspnet
    29. 29. Questions?
    30. 30. ASP .NET 5

    ×