SlideShare ist ein Scribd-Unternehmen logo
1 von 32
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
ASP .NET MVC6
Eduard Tomàs
Compulsive Developer at Plain Concepts
etomas@plainconcepts.com
@eiximenis
http://blogs.plainconcepts.com/aspnetspain/
http://geeks.ms/blogs/etomas
MVC6 – Novedades
• 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”
• 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
• 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
• 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
Demo
Páginas de error y diagnóstico
• 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
• 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
Demo
View Components
• 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
Demo
Tag Helpers
• 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
• 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
Demo
Creación de un TagHelper
• 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
Demo
Ejecución selectiva de TagHelpers
• 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
• 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
Demo
Controladores “duales”
• 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
Demo
Controladores POCO
• 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
• 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
Demo
Localización de controladores
Learn more!
• ASP.NET Docs
• http://asp.net/en/latest
• ASP.NET MVC
• http://asp.net/vnext/mvc
• Github
• http://github.com/aspnet
Questions?
ASP .NET 5

Weitere ähnliche Inhalte

Was ist angesagt?

React, Flux y React native
React, Flux y React nativeReact, Flux y React native
React, Flux y React nativeEduard Tomàs
 
ASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVCASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVCriojadotnet
 
Asp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep DiveAsp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep DiveEduard Tomàs
 
ASP.NET MVC (2011)
ASP.NET MVC (2011)ASP.NET MVC (2011)
ASP.NET MVC (2011)wildtango
 
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Rodolfo Finochietti
 
Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Oscar Gensollen
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netAlberto Diaz Martin
 
Security in MVC Core by Hugo Biarge
Security in MVC Core by Hugo BiargeSecurity in MVC Core by Hugo Biarge
Security in MVC Core by Hugo BiargePlain Concepts
 
Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010
Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010
Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010Desarrollos NEA
 
Plainconcepts .Net Core Event - Real Time Applications
Plainconcepts .Net Core Event - Real Time ApplicationsPlainconcepts .Net Core Event - Real Time Applications
Plainconcepts .Net Core Event - Real Time ApplicationsCarlos Landeras Martínez
 
Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!
Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!
Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!Iván López Martín
 
ASP.NET 5 en Linux y Mac OS X: herramientas e integración
ASP.NET 5 en Linux y Mac OS X: herramientas e integraciónASP.NET 5 en Linux y Mac OS X: herramientas e integración
ASP.NET 5 en Linux y Mac OS X: herramientas e integraciónLuis Ruiz Pavón
 

Was ist angesagt? (19)

React, Flux y React native
React, Flux y React nativeReact, Flux y React native
React, Flux y React native
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
ASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVCASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVC
 
Asp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep DiveAsp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep Dive
 
ASP.NET MVC (2011)
ASP.NET MVC (2011)ASP.NET MVC (2011)
ASP.NET MVC (2011)
 
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
 
Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.net
 
ASP.NET MVC Core
ASP.NET MVC CoreASP.NET MVC Core
ASP.NET MVC Core
 
Spring boot et. al. para el impaciente
Spring boot et. al. para el impacienteSpring boot et. al. para el impaciente
Spring boot et. al. para el impaciente
 
ASP.NET MVC Workshop Día 1
ASP.NET MVC Workshop Día 1ASP.NET MVC Workshop Día 1
ASP.NET MVC Workshop Día 1
 
Security in MVC Core by Hugo Biarge
Security in MVC Core by Hugo BiargeSecurity in MVC Core by Hugo Biarge
Security in MVC Core by Hugo Biarge
 
Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010
Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010
Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010
 
Mvc4 Intro
Mvc4 IntroMvc4 Intro
Mvc4 Intro
 
Azure API Management
Azure API ManagementAzure API Management
Azure API Management
 
Plainconcepts .Net Core Event - Real Time Applications
Plainconcepts .Net Core Event - Real Time ApplicationsPlainconcepts .Net Core Event - Real Time Applications
Plainconcepts .Net Core Event - Real Time Applications
 
Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!
Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!
Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!
 
Angular 6
Angular 6Angular 6
Angular 6
 
ASP.NET 5 en Linux y Mac OS X: herramientas e integración
ASP.NET 5 en Linux y Mac OS X: herramientas e integraciónASP.NET 5 en Linux y Mac OS X: herramientas e integración
ASP.NET 5 en Linux y Mac OS X: herramientas e integración
 

Ähnlich wie Novedades de ASP.NET MVC6

Ähnlich wie Novedades de ASP.NET MVC6 (20)

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
 
Spring Mvc Final
Spring Mvc FinalSpring Mvc Final
Spring Mvc Final
 
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
 
Introducción a Cake PHP Framework
Introducción a Cake PHP FrameworkIntroducción a Cake PHP Framework
Introducción a Cake PHP Framework
 
Iniciación Con CakePHP
Iniciación Con CakePHPIniciación Con CakePHP
Iniciación Con CakePHP
 
Introducción a ASP.NET MVC
Introducción a ASP.NET MVCIntroducción a ASP.NET MVC
Introducción a ASP.NET MVC
 
Trabajando con MySQL y PostgreSQL dentro de azure
Trabajando con MySQL y PostgreSQL dentro de azureTrabajando con MySQL y PostgreSQL dentro de azure
Trabajando con MySQL y PostgreSQL dentro de azure
 
Strust
StrustStrust
Strust
 
Mvc
MvcMvc
Mvc
 
Manualcake
ManualcakeManualcake
Manualcake
 
Vaadin 8 en BBR Spa
Vaadin 8 en BBR SpaVaadin 8 en BBR Spa
Vaadin 8 en BBR Spa
 
ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3
 
Introducción a Asp.Net Mvc
Introducción a Asp.Net MvcIntroducción a Asp.Net Mvc
Introducción a Asp.Net Mvc
 
Ruby On Rails Intro
Ruby On Rails IntroRuby On Rails Intro
Ruby On Rails Intro
 
Framework Catalyst
Framework CatalystFramework Catalyst
Framework Catalyst
 
Mvc
MvcMvc
Mvc
 
Rails intro
Rails introRails intro
Rails intro
 
[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)
 
Introducción a ASPNET vNext
Introducción a ASPNET vNextIntroducción a ASPNET vNext
Introducción a ASPNET vNext
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 

Mehr von Eduard Tomàs

Kubernetes: Do's, don'ts and why's
Kubernetes: Do's, don'ts and why'sKubernetes: Do's, don'ts and why's
Kubernetes: Do's, don'ts and why'sEduard Tomàs
 
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDAKCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDAEduard Tomàs
 
Escalando workloads serverless en Kubernetes con Keda
Escalando workloads serverless en Kubernetes con KedaEscalando workloads serverless en Kubernetes con Keda
Escalando workloads serverless en Kubernetes con KedaEduard Tomàs
 
C#9 - Más C# que nunca
C#9 - Más C# que nuncaC#9 - Más C# que nunca
C#9 - Más C# que nuncaEduard Tomàs
 
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDA
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDACollabDays 2020 Barcelona - Serverless Kubernetes with KEDA
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDAEduard Tomàs
 
Keda o como convertir Kubernetess en Serverless
Keda o como convertir Kubernetess en ServerlessKeda o como convertir Kubernetess en Serverless
Keda o como convertir Kubernetess en ServerlessEduard Tomàs
 
.NET Memoria y Rendimiento
.NET Memoria y Rendimiento.NET Memoria y Rendimiento
.NET Memoria y RendimientoEduard Tomàs
 
Containers en .NET (Dot Net 2018 - Spain)
Containers en .NET (Dot Net 2018 - Spain)Containers en .NET (Dot Net 2018 - Spain)
Containers en .NET (Dot Net 2018 - Spain)Eduard Tomàs
 
Esos contenedores, ¡a producción! (Commit Conf 2018)
Esos contenedores, ¡a producción! (Commit Conf 2018)Esos contenedores, ¡a producción! (Commit Conf 2018)
Esos contenedores, ¡a producción! (Commit Conf 2018)Eduard Tomàs
 
Codemotion 2015 - Bienvenido de nuevo c++
Codemotion 2015 - Bienvenido de nuevo c++Codemotion 2015 - Bienvenido de nuevo c++
Codemotion 2015 - Bienvenido de nuevo c++Eduard Tomàs
 
El "peor" lenguaje del mundo
El "peor" lenguaje del mundoEl "peor" lenguaje del mundo
El "peor" lenguaje del mundoEduard Tomàs
 
Containerize a netcore application with aks
 Containerize a netcore application with aks Containerize a netcore application with aks
Containerize a netcore application with aksEduard Tomàs
 
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)Eduard Tomàs
 
Aplicaciones de consola fáciles? Más quisieramos
Aplicaciones de consola fáciles? Más quisieramosAplicaciones de consola fáciles? Más quisieramos
Aplicaciones de consola fáciles? Más quisieramosEduard Tomàs
 
Serverless with Azure Functions and CosmosDb
Serverless with Azure Functions and CosmosDbServerless with Azure Functions and CosmosDb
Serverless with Azure Functions and CosmosDbEduard Tomàs
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menosEduard Tomàs
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?Eduard Tomàs
 
React native - Unleash the power of your device
React native - Unleash the power of your deviceReact native - Unleash the power of your device
React native - Unleash the power of your deviceEduard Tomàs
 
JavaScript in 2016 (Codemotion Rome)
JavaScript in 2016 (Codemotion Rome)JavaScript in 2016 (Codemotion Rome)
JavaScript in 2016 (Codemotion Rome)Eduard Tomàs
 

Mehr von Eduard Tomàs (20)

Kubernetes: Do's, don'ts and why's
Kubernetes: Do's, don'ts and why'sKubernetes: Do's, don'ts and why's
Kubernetes: Do's, don'ts and why's
 
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDAKCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
 
Escalando workloads serverless en Kubernetes con Keda
Escalando workloads serverless en Kubernetes con KedaEscalando workloads serverless en Kubernetes con Keda
Escalando workloads serverless en Kubernetes con Keda
 
C#9 - Más C# que nunca
C#9 - Más C# que nuncaC#9 - Más C# que nunca
C#9 - Más C# que nunca
 
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDA
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDACollabDays 2020 Barcelona - Serverless Kubernetes with KEDA
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDA
 
Keda o como convertir Kubernetess en Serverless
Keda o como convertir Kubernetess en ServerlessKeda o como convertir Kubernetess en Serverless
Keda o como convertir Kubernetess en Serverless
 
.NET Memoria y Rendimiento
.NET Memoria y Rendimiento.NET Memoria y Rendimiento
.NET Memoria y Rendimiento
 
Containers en .NET (Dot Net 2018 - Spain)
Containers en .NET (Dot Net 2018 - Spain)Containers en .NET (Dot Net 2018 - Spain)
Containers en .NET (Dot Net 2018 - Spain)
 
Esos contenedores, ¡a producción! (Commit Conf 2018)
Esos contenedores, ¡a producción! (Commit Conf 2018)Esos contenedores, ¡a producción! (Commit Conf 2018)
Esos contenedores, ¡a producción! (Commit Conf 2018)
 
Codemotion 2015 - Bienvenido de nuevo c++
Codemotion 2015 - Bienvenido de nuevo c++Codemotion 2015 - Bienvenido de nuevo c++
Codemotion 2015 - Bienvenido de nuevo c++
 
El "peor" lenguaje del mundo
El "peor" lenguaje del mundoEl "peor" lenguaje del mundo
El "peor" lenguaje del mundo
 
Containerize a netcore application with aks
 Containerize a netcore application with aks Containerize a netcore application with aks
Containerize a netcore application with aks
 
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)
 
Aplicaciones de consola fáciles? Más quisieramos
Aplicaciones de consola fáciles? Más quisieramosAplicaciones de consola fáciles? Más quisieramos
Aplicaciones de consola fáciles? Más quisieramos
 
Serverless with Azure Functions and CosmosDb
Serverless with Azure Functions and CosmosDbServerless with Azure Functions and CosmosDb
Serverless with Azure Functions and CosmosDb
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menos
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
 
Azure functions
Azure functionsAzure functions
Azure functions
 
React native - Unleash the power of your device
React native - Unleash the power of your deviceReact native - Unleash the power of your device
React native - Unleash the power of your device
 
JavaScript in 2016 (Codemotion Rome)
JavaScript in 2016 (Codemotion Rome)JavaScript in 2016 (Codemotion Rome)
JavaScript in 2016 (Codemotion Rome)
 

Kürzlich hochgeladen

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 

Kürzlich hochgeladen (15)

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

Novedades de ASP.NET MVC6

  • 1.
  • 2. 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
  • 4. Eduard Tomàs Compulsive Developer at Plain Concepts etomas@plainconcepts.com @eiximenis http://blogs.plainconcepts.com/aspnetspain/ http://geeks.ms/blogs/etomas
  • 6. • 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”
  • 7. • 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
  • 8. • 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
  • 9. • 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
  • 10. Demo Páginas de error y diagnóstico
  • 11. • 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
  • 12. • 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
  • 14. • 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
  • 16. • 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
  • 17. • 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
  • 18. Demo Creación de un TagHelper
  • 19. • 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
  • 21. • 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
  • 22. • 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
  • 24. • 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
  • 26. • 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
  • 27. • 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
  • 29. Learn more! • ASP.NET Docs • http://asp.net/en/latest • ASP.NET MVC • http://asp.net/vnext/mvc • Github • http://github.com/aspnet
  • 31.

Hinweis der Redaktion

  1. DemoPaginas.sln
  2. Explicación de lo que son los View Components, qué rol juegan y como se usan
  3. Mencionar la versión asíncrona de Invoke (InvokeAsync)
  4. Mostrar DemoVC.sln Mencionar la inyección de dependencias en ViewComponents
  5. Enseñar los TagHelpers de formulario DemoTagHelper.sln -> Vista Home/Contact
  6. DemoTagHelper.sln -> Repeater
  7. DemoDual.sln Comentar código y mencionar serialización json / xml
  8. DemoPoco.sln
  9. DemoControllersLocation.sln