Saltar al contenido

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript... y lo que venga ;)

18 años online

el blog de José M. Aguilar

Inicio El autor Contactar

Artículos, tutoriales, trucos, curiosidades, reflexiones y links sobre programación web
ASP.NET Core, MVC, Blazor, SignalR, Entity Framework, C#, Azure, Javascript...

¡Microsoft MVP!
martes, 25 de octubre de 2016
ASP.NET Core MVCHace muuuchos muchos años ya hablé por aquí de lo extraño que resultaba que el framework MVC, que por aquellos entonces rondaba su segunda versión, no contase de serie con un mecanismo para generar automáticamente el atributo maxlength en los cuadros de texto, máxime cuando esta información solíamos incluirla en anotaciones de las clases del modelo con atributos como StringLength o MaxLength.

Y ha llovido bastante desde entonces, incluso el framework MVC se ha "reseteado" y ahora es ASP.NET Core MVC, pero seguimos sin disponer de esa posibilidad, que cubre un escenario muy frecuente al desarrollar aplicaciones con este framework.

En este post vamos a ver, paso a paso, cómo utilizar los maravillosos tag helpers para incluir este atributo de forma automática en los tags <input>  vinculados a propiedades del modelo cuyos metadatos indiquen un tamaño máximo para el campo.
lunes, 24 de octubre de 2016
Enlaces interesantesProbablemente sólo los más frikis veamos este número más redondo, bonito y conmemorable que el 100, pero sin duda lo es ;) El caso es que esta es la recopilación número 256, y para celebrarlo añadimos una nueva sección donde recogeremos de vez en cuando componentes o bibliotecas que pueden resultarnos útiles para nuestros desarrollos.

Como de costumbre, espero que os resulten interesantes :-)

.NET

martes, 18 de octubre de 2016
Curso de ASP.NET Core MVC

Me consta que muchos lo estabais esperando con impaciencia, así que me complace anunciaros que desde hace unos días tenéis disponible mi nuevo curso sobre ASP.NET Core MVC en CampusMVP.

Su creación sido un proceso realmente largo y laborioso porque, a diferencia de ediciones anteriores, los cambios que trae consigo el nuevo marco de trabajo han obligado a replantear desde el principio los contenidos, pero creo que el resultado ha valido la pena: un curso potente y completo en el que recorremos el marco de trabajo desde las bases que lo sustentan (ASP.NET Core) hasta la programación de aplicaciones y servicios con el framework ASP.NET Core MVC.

En este post intentaremos responder a las siguientes preguntas:
martes, 11 de octubre de 2016
ASP.NET CoreComo ocurría en ASP.NET MVC 5 y anteriores, en ASP.NET Core MVC también podemos utilizar la información almacenada en la tabla de rutas para generar URLs hacia nuestras acciones, evitando las frágiles dependencias que introducen en las aplicaciones las direcciones hard-coded.

El framework nos ofrece distintas fórmulas para generar direcciones, aunque la más básica es utilizar extensores de IUrlHelper como Action(), Link() o RouteUrl(). Tenemos instancias de dicho interfaz disponibles en la propiedad Url de controladores y vistas, pero también podemos reclamarlas directamente al sistema de inyección de dependencias en otros contextos. Asimismo, en las vistas podemos utilizar helpers específicos para generar hipervínculos, como el clásico Html.Action(), o el más reciente tag helper <a>.

lunes, 10 de octubre de 2016
Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)

.NET

martes, 4 de octubre de 2016
ASP.NET CoreEn ASP.NET Core, sabemos que la clase Startup es donde introducimos el código de inicialización de nuestras aplicaciones. En sus métodos Configure() y ConfigureServices() encontraremos aspectos de todo tipo, como los siguientes, por citar sólo algunos:
  • La configuración del sistema de settings
  • Definición de destinos de logs y niveles de trazas
  • Configuración de componentes de tratamiento de errores y sistemas de depuración y profiling adicionales
  • Configuración de servicios como caching o estado de sesión
  • Inserción y configuración de servicios y middlewares del framework, como los destinados al proceso de contenidos estáticos, internacionalización, CORS, u otros
  • Middlewares personalizados
  • Registro de servicios en el sistema de inyección de dependencias
  • Inicializaciones específicas de la aplicación, como seeds de bases de datos o configuración de mapeos entre objetos
  • Configuración de rutas de la aplicación
Y todo esto, además, salpicado por la lógica para distinguir entre los distintos tipos de entorno de ejecución (development, staging…), o incluso condicionales basados en el contenido de archivos de configuración.