Presentación de mi charla en la #dotNetSpain2016 sobre ASP.NET Core.
Temas tratados:
Model Binding
Routing
Tag Helpers
View Components
Configuración
Localización
14. #dotNetSpain2016
Mezcla del model binding existente en MVC5 y
WebApi 2
Usando x-www-form-urlencoded tenemos el binding
de MVC5
Usando otro content-type tenemos un binding
parecido al de WebApi 2
15. #dotNetSpain2016
Value Providers recogen datos de la petición
Model binders, enlazan los datos a los parámetros
Binding por defecto para parámetros, sean simples o
complejos
17. #dotNetSpain2016
No todas los IActionResult aplican content-negotation
Basado en formatters de salida (IOutputFormatter)
Atributo [Produces]
18. #dotNetSpain2016
Generan la salida en función del tipo de datos que
espera el cliente
Si no hay un formatter que pueda devolver el tipo de
datos, el fallback es JSON
services.AddMvc().Configure<MvcOptions>(options =>
{
options.OutputFormatters.Insert(0, new HttpNotAcceptableOutputFormatter());
}
19. #dotNetSpain2016
– JsonOutputFormatter
– XmlSerializerOutputFormatter – No registrado por
defecto
– XmlDataContractSerializerOutputFormatter
– TextPlainFormatter (cadenas a text/plain)
– HttpNoContentOutputFormatter (null a 204)
– HttpNotAcceptableOutputFormatter – (406 si no hay
formatter)
20. Talk is cheap
…show me the
code!
#dotNetSpain2016
”
” 1. Demos de binding
2. Custom model binder
27. #dotNetSpain2016
Elemento de ApplicationModel que especifica
requerimientos para que una acción sea válida.
Eso permite tener más de una acción bajo la misma
ruta y usar otros elementos de la petición para
seleccionar la acción final
Se aplican con atributos
28. Talk is cheap
…show me the
code!
#dotNetSpain2016
”
” 1. Convenciones
personalizadas
2. Constraints de acciones
31. #dotNetSpain2016
Clase que herede de ViewComponent
Declarar método IViewComponentResult
Invoke(…)
Crear la vista associada
Uso: @Component(“nombre”).Invoke(...)
33. #dotNetSpain2016
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
35. #dotNetSpain2016
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:
36. #dotNetSpain2016
Si un TagHelper es importado 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 usar @tagHelperPrefix “prefijo” para forzar
un prefijo para todos los TagHelpers.
38. #dotNetSpain2016
Nuevo middleware de localización
Soporta distintas fuentes (.resx, bbdd, ficheros texto)
Permite que el selector de cultura esté en headers
(Accept-Language), en URL (query string) o en cookie
41. No olvides realizar la encuesta
¡Gracias!
#dotNetSpain2016
Eduard Tomàs
Compulsive Developer
etomas@plainconcepts.com
@eiximenis
http://aka.ms/DOTNETT1S4
Notas del editor
Un primer vistazo a los proyectos web:
->Toda la estructura inicial de nuestros proyectos web
-> trabajo con cliente ( bower,gulp etc)
-> wwwroot
-> ASP.NET ENV
-> Algun ejemplo sobre este tema
Un primer vistazo a los proyectos web:
->Toda la estructura inicial de nuestros proyectos web
-> trabajo con cliente ( bower,gulp etc)
-> wwwroot
-> ASP.NET ENV
-> Algun ejemplo sobre este tema
Un primer vistazo a los proyectos web:
->Toda la estructura inicial de nuestros proyectos web
-> trabajo con cliente ( bower,gulp etc)
-> wwwroot
-> ASP.NET ENV
-> Algun ejemplo sobre este tema
Un primer vistazo a los proyectos web:
->Toda la estructura inicial de nuestros proyectos web
-> trabajo con cliente ( bower,gulp etc)
-> wwwroot
-> ASP.NET ENV
-> Algun ejemplo sobre este tema