Novedades de ASP.NET & .NET Core. Connect(); //2015

En el pasado evento de Connect() se presentaron numerosas novedades referentes a ASP.NET y .NET Core.

Se anunció el lanzamiento de la Release Candidate de la versión 5, disponible en Windows, OS X y Linux. Además, tendrá licencia Go Live, lo que quiere decir que se podrá utilizar dicha versión para desplegar aplicaciones en producción y recibir soporte técnico de Microsoft en caso de necesitar ayuda.

Las características más destacables de .NET Core en esta RC son las siguientes:

Feature complete

.NET Core y ASP.NET 5 se pueden considerar feature complete, lo que quiere decir que tiene implementadas prácticamente todas las características previstas para esta versión, tanto en Windows como Linux y OS X.

Además, se ha reducido la enorme brecha de rendimiento que existía al funcionar mucho más lenta la versión de Linux que la de Windows, logrando que tanto las implementaciones de Linux y OS X estén a la par en rendimiento que la versión de Windows.

Explicit DNX app hosting model

Cuando utilizábamos un host del entorno de ejecución (dnx), al ejecutar nuestra aplicación se llamaba a dicho host y se linkaba a nuestra aplicación de una manera automática.

No obstante, hay ocasiones en las que, al ejecutar la aplicación, queremos realizar acciones antes de llamar al host. Por ello ahora esa llamada la realizaremos de forma explícita mediante el siguiente código:

 public static void Main(string[] args)
 {
 // code here will run before the host.
 
 // this is the host call.
 WebApplication.Run<Startup>(args);
 }

Soporte para RyuJIT en Linux y OS X

RyuJIT ahora puede generar código máquina para chips de 64 bits en Linux y OS X.

Nombres de fichero largos

Se ha eliminado la restricción de 260 caracteres para nombres de fichero de .NET Core, con lo que se pueden utilizar nombres de fichero que superen dicha longitud. Aunque en Windows todavía haya limitación de caracteres, las APIs de .NET Core no pondrán ningún impedimento a la hora de manipular ficheros.

Cliente SQL Cross-platform

El cliente SQL ahora funciona con las librerías de .NET Core en vez de las nativas de Windows, por tanto, ahora también puede utilizarse en Linux y OS X.

Estado de CoreFX

CoreFX es el repositorio donde Microsoft va liberando progresivamente librerías fundamentales del .NET Core. A día de hoy han llegado a poner disponibles el 98% de las librerías de .NET Core.

En lo que respecta a ASP.NET, además de las novedades, se han lanzado nuevas herramientas de desarrollo que estarán disponibles con el Update 1 de Visual Studio 2015. La RC contiene cambios en el modelo de programación más que novedades, pero que deben tenerse en cuenta si hemos estado utilizando la versión beta de ASP.NET 5.

Novedades en la integración de ASP.NET 5 con Visual Studio:

Bootstrap Snippets

Si empezamos a editar páginas HTML o CSHTML con ASP.NET 5 nos aparecerá una notificación que nos recomendará la instalación de la extensión bootstrap snippets. Una vez instalado tendremos una colección de casi 40 snippets en el toolbox que nos ayudarán a crear widgets y layouts utilizando el framework CSS bootstrap.

Nueva interfaz para el gestor de paquetes Bower

Junto al gestor de paquetes NuGet, que nos permite administrar librerías del lado del servidor, ahora en Visual Studio 2015 se implementa el gestor de paquetes Bower para la administración de librerías del lado del cliente. La interfaz tendrá la misma apariencia que la de NuGet.

Además, para ayudar a que se adopte el uso de Bower, para aquellas librerías que existan en NuGet que sean específicamente del lado de cliente, se recomendará usar Bower en vez de NuGet.

MVC Scaffolding

En esta release se actualiza MVC Scaffolding para funcionar con ASP.NET 5.

Novedades del framework:

Static Void Main

Se ha introducido un punto de entrada para las aplicaciones web utilizado la sintaxis “static void main”. Cuando ahora utilicemos plantillas de ASP.NET 5, en el fichero Startup.cs aparecerá la línea:

 public static void Main(string[] args) => WebApplication.Run(args);

Esto indica claramente al entorno de ejecución (dnx) el punto de entrada de aplicación.

Cliente SQL Cross-platform

Con la RC, en las plantillas de ASP.NET 5 se incluirá una librería en el paquete EntityFramework.MicrosoftSqlServer. De esta manera podremos realizar queries a SQL Servers en Windows, Mac o Linux.

Directorio web por defecto

En las versiones beta de ASP.NET 5, el directorio base para el contenido estático se definía con la propiedad “webroot” dentro del fichero project.json. En la RC, esta propiedad se ha movido al fichero hosting.json. No obstante, si no existe fichero hosting.json, y existe un directorio wwwroot, tomará ese como raíz de nuestro contenido estático. En última instancia, si tampoco existe el directorio wwwroot, se tomará el directorio base del proyecto como raíz del contenido estático.

Librerías con nombres seguros

Se añaden nombres seguros a las librerías referenciadas por ASP.NET. Esto permitirá:

  • Realizar proyectos que requieran nombres seguros y que tengan dependencias de ASP.NET
  • Ayudar a la hora de aplicar parches en Windows a través de Windows Update, ya que se necesita incluir esas librerías en el GAC, y para que puedan estar en el GAC deben tener nombres seguros

Si deseas leer más a fondo acerca de las novedades presentadas puedes dirigirte a los siguientes links:

-          ASP.NET 5 and .NET Core RC1 in context (Plus all the Connect 2015 News)

-          Announcing .NET Core and ASP.NET 5 RC

-          Announcing ASP.NET 5 Release Candidate 1

 

Daniel Escribano García

Technical Evangelist Intern

@daesgar90