Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

ASP.NET Core 1.1: ¿Qué hay de nuevo?

banner-net-core-750x300-2

La semana pasada se presentó la primera revisión de ASP.NET Core durante el evento Connect(). Se trata de la primera actualización de la nueva tecnología multiplataforma que lanzó Microsoft este verano.

Nota: si no conoces la tecnología .NET Core y quieres saber qué te aporta o qué diferencias tiene con .NET "tradicional", deberías leer antes El panorama de .NET en 2016: ¿plataforma completa o .NET Core?. También te pueden interesar: ¿Por qué ASP.NET Core? y Principales novedades conceptuales de ASP.NET Core.

Gracias al uso de versionado semántico, podemos saber de antemano que esta nueva versión añade características adicionales y mejoras compatibles hacia atrás, por lo que no deberemos preocuparnos por romper algo si actualizamos una aplicación de 1.0 a 1.1 (¡al menos en teoría, claro! ;))

Esta revisión ofrece pequeños añadidos, y grandes mejoras en rendimiento. De momento no tenemos disponible tampoco la versión definitiva del "tooling" para desarrollo, para las que todavía habrá que esperar al menos hasta el primer trimestre del año que viene.

A continuación resumimos qué se incluye en esta actualización.

La relación completa de novedades puedes encontrarlas en el blog oficial y en el documento de notas de la versión, pero destacaremos las siguientes:

  • Más middlewares, que se añaden a los que ya había en la 1.0:
    • Cacheado de respuestas: algo parecido a lo que conseguíamos en ASP.NET "clásico" mediante el filtro [OutputCache] pero implementado en forma de middleware. Con él es posible cachear en la memoria del servidor las respuestas de ciertas peticiones, para poder responder más rápidamente en las siguientes que lleguen, cuando sabemos que no va a cambiar nada en un buen rato. Tienes un ejemplo de cómo usarlas en GitHub.
    • Compresión de respuesta: lo más habitual es que esta tarea la realice el servidor Web que se pone delante de Kestrel (Apache, IIS, NGINX…), este middleware comprime las respuestas HTTP de nuestra aplicación mediante GZIP.  Tienes un ejemplo de uso aquí.
    • Reescritura de URLs: que permiten reescribir y redirigir peticiones según especificaciones proporcionadas en formatos comunes, como los usados por los módulos de rewriting de IIS,  el .htaccess de Apache, o incluso creadas con código C#. Puedes ver un ejemplo de uso en GitHub.
  • Un nuevo host basado en Web Listeners de Windows: aunque sabemos que Kestrel es el servidor "oficial" de aplicaciones ASP.NET Core, sus características multiplataforma hacen que no sea posible disponer en él de funciones propias de Windows, como la autenticación integrada, compartición de pertos, HTTPS con SNI, y algunas otras. Este servidor se distribuye también como paquete Nuget, y se incluye en el proyecto de la misma forma que Kestrel, como observamos en el siguiente ejemplo.
  • Importantes mejoras rendimiento, situando el tándem ASP.NET Core/Kestrel sobre Linux en el grupo de los 10 frameworks más rápidos de TechEmpower (eso sí, en pruebas limitadas a responder mensajes "Hello, world!"), reportando un rendimiento 760 veces mejor que hace un año. Es decir, que solo por el hecho de actualizar tu actual aplicación con .NET Core 1.0 a esta nueva versión 1.1 ya obtienes un buen empujón de rendimiento.
  • Nuevas características en MVC:
    • Middlewares como filtros MVC: que aunque pueda resultar algo extraño al principio, tiene su sentido porque filtros y middlewares son conceptualmente similares. Mediante esta nueva capacidad, podremos utilizar el filtro [MiddlewareFilter] para añadir middlewares antes de la ejecución de acciones o controladores a los que se apliquen. De esta forma, funcionalidades que están disponibles en forma de middleware podremos aplicarlas como si de filtros se tratasen.
    • Proveedor de TempData basado en cookies: la implementación en la propia plataforma de una necesidad bastante frecuente como es la posibilidad de almacenar datos temporales en una cookie del cliente, en lugar de hacerlo en la memoria del servidor.
    • Uso de tag helpers para invocar View Components: esta funcionalidad mezcla la agilidad y la expresividad de codificación de los tag helpers con la potencia de los view componentes para ofrecer un código en la vista más elegante y fácil de leer. Es decir, que podremos sustituir llamadas a @Component.InvokeAsync() por tag helpers que consigan el mismo efecto de forma declarativa.
    • Precompilación de vistas Razor: mediante la orden de línea de comandos dotnet razor-precompile, de forma que el resultado de esta compilación pueda ser distribuido con la aplicación en lugar de esperar a que sean compiladas en tiempo de ejecución.
  • Y también se han introducido mejoras para Azure, como un proveedor de logging específico, un proveedor de configuración para Azure Key Vaults o repositorios para Data Protection Keys en Redis y Azure Storage.

Actualización

image

Actualizar un proyecto que tengamos con .NET Core 1.1 a esta nueva versión 1.1 es de lo más sencillo y bastará con seguir 3 pasos:

  • Instalar el SDK de .NET Core 1.1disponible en la página de descargas de .NET Core (o las herramientas para la versión de Visual Studio que utilices).
  • Tras ello, en los proyectos que usen .NET Core, será necesario actualizar las referencias en el archivo de configuración (todavía project.json) a "netcoreapp1.1" y versión "1.1.0".
  • Y, por fin, actualizar a la última versión los paquetes Nuget de ASP.NET Core que estemos utilizando.

Ya tenemos nuestro curso de ASP.NET Core actualizado con las novedades de esta versión.

José María Aguilar José María atesora una amplísima experiencia trabajando en el mundo del desarrollo de software (programador, analista, responsable de informática, consultor, director técnico), principalmente con tecnologías Microsoft. Actualmente trabaja como consultor y desarrollador independiente, ofreciendo servicios tecnológicos a empresas e instituciones.
Es un reconocido experto en desarrollo web en todo el mundo, y es autor del libro de Microsoft Press "SignalR Programming in Microsoft ASP.NET".
Escribe regularmente artículos sobre ASP.NET MVC y otros temas relacionados con el desarrollo de software en su blog.
Puedes seguirlo en Twitter en @jmaguilar. Ver todos los posts de José María Aguilar

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.