Compilación de aplicaciones con .NET Native

.NET Native es una tecnología de precompilación para crear e implementar aplicaciones para UWP. .NET Native se incluye con Visual Studio 2015 y versiones posteriores. Compila automáticamente la versión de lanzamiento de las aplicaciones para UWP escritas en código administrado (C# o Visual Basic) en código nativo.

Normalmente, las aplicaciones de .NET se compilan en lenguaje intermedio (IL). En tiempo de ejecución, el compilador Just-In-Time (JIT) convierte el IL en código nativo. Por el contrario, .NET Native compila las aplicaciones para UWP directamente en código nativo. Para los desarrolladores, esto significa:

  • Las aplicaciones presentan el rendimiento del código nativo. Normalmente, el rendimiento será superior al código que primero se compila en IL y, luego, se compila en código nativo mediante el compilador JIT.

  • Puede seguir programando en C# o Visual Basic.

  • Puede seguir aprovechando los recursos proporcionados por .NET Framework, incluida su biblioteca de clases, la administración de memoria y la recolección de elementos no utilizados automáticas, y el control de excepciones.

Para los usuarios de las aplicaciones, .NET Native ofrece las ventajas siguientes:

  • Tiempos de ejecución más rápidos para la mayoría de las aplicaciones y escenarios.

  • Tiempos de inicio más rápidos para la mayoría de las aplicaciones y escenarios.

  • Bajos costos de implementación y actualización.

  • Uso optimizado de la memoria de las aplicaciones.

Pero .NET Native implica más que una compilación en código nativo. Transforma la manera en que se compilan y ejecutan las aplicaciones de .NET Framework. En concreto:

  • Durante la precompilación, las partes necesarias de .NET Framework se vinculan estáticamente en la aplicación. Esto permite que la aplicación se ejecute con bibliotecas locales de aplicación de .NET Framework y que el compilador haga un análisis global para ofrecer un gran rendimiento. Como resultado, las aplicaciones se inician sistemáticamente más rápido después de las actualizaciones de.NET Framework.

  • El entorno en tiempo de ejecución de .NET Native está optimizado para la precompilación estática y, en la inmensa mayoría de los casos, ofrece un rendimiento superior. Al mismo tiempo, conserva las características de reflexión principales que los desarrolladores encuentran tan productivas.

  • .NET Native usa el mismo back-end que el compilador de C++, el cual está optimizado para escenarios de precompilación estáticos.

.NET Native puede aportar las ventajas de rendimiento de C++ a los desarrolladores de código administrado, ya que usa las mismas herramientas de C++ u otras similares, como se muestra en esta tabla.

Componente .NET Native C++
Bibliotecas .NET Framework + Windows Runtime Win32 + Windows en tiempo de ejecución
Compilador Compilador de optimización de UTC Compilador de optimización de UTC
Implementado Archivos binarios listos para ejecutarse Archivos binarios listos para ejecutarse (ASM)
Tiempo de ejecución MRT.dll (tiempo de ejecución de CLR mínimo) CRT.dll (tiempo de ejecución de C)

En el caso de las aplicaciones para UWP, los archivos binarios de compilación de código de .NET Native se cargan en paquetes de aplicación (archivos .msix o .appx) en Microsoft Store.