Compilar aplicativos com o .NET Nativo
O .NET Native é uma tecnologia de pré-compilação para criar e implantar aplicativos UWP. Ele está incluído no Visual Studio 2015 e nas versões posteriores. Ele compila automaticamente em código nativo a versão de lançamento dos aplicativos UWP escritos em código gerenciado (C# ou Visual Basic).
Geralmente, os aplicativos .NET são compilados em IL (linguagem intermediária). No tempo de execução, uma compilação JIT (just-in-time) converte o IL em código nativo. Já o .NET Native compila os aplicativos UWP diretamente em código nativo. Para desenvolvedores, isso significa que:
Seus aplicativos apresentam o desempenho do código nativo. Geralmente, o desempenho será superior para um código compilado primeiro em IL e depois compilado em código nativo pelo compilador JIT.
Você pode continuar a programar em C# ou em Visual Basic.
Você pode continuar aproveitando os recursos fornecidos pelo .NET Framework, como a biblioteca de classes, o gerenciamento de memória e a coleta de lixo automáticos e o tratamento de exceções.
Para os usuários dos aplicativos, o .NET Native oferece estas vantagens:
Tempos de execução mais rápidos para a maioria dos aplicativos e cenários.
Tempos de inicialização mais rápidos para a maioria dos aplicativos e cenários.
Custos baixos de implantação e atualização.
Uso otimizado de memória do aplicativo.
No entanto, o .NET Native envolve mais do que apenas a compilação em código nativo. Ele transforma a maneira que os aplicativos .NET Framework são criados e executados. Especialmente:
Durante a pré-compilação, as partes necessárias do .NET Framework são vinculadas estaticamente ao aplicativo. Isso permite que o aplicativo seja executado com as bibliotecas de aplicativo locais do .NET Framework e que o compilador realize análises globais para proporcionar vantagens de desempenho. Como resultado, os aplicativos são inicializados consistentemente mais rápido mesmo depois de atualizações do .NET Framework.
O runtime do .NET Native é otimizado para pré-compilação estática e, na grande maioria dos casos, oferece um desempenho superior. Ao mesmo tempo, ele mantém os recursos de reflexão principais que os desenvolvedores acham tão produtivos.
O .NET Native usa o mesmo back-end que o compilador do C++, que é otimizado para cenários de pré-compilação estática.
O .NET Native consegue oferecer os benefícios de desempenho do C++ para os desenvolvedores de código gerenciado, pois usa as mesmas ferramentas que o C++ ou outras semelhantes nos bastidores, conforme é mostrado nesta tabela.
Componente | .NET Nativo | C++ |
---|---|---|
Bibliotecas | .NET Framework + Windows Runtime | Win32 + Windows Runtime |
Compilador | Compilador de otimização de UTC | Compilador de otimização de UTC |
Implantado | Binários prontos para execução | Binários prontos para execução (ASM) |
Runtime | MRT.dll (runtime de CLR mínimo) | CRT.dll (runtime C) |
Para os aplicativos UWP, você carrega os binários de compilação de código do .NET Native em pacotes de aplicativos (arquivos .msix ou .appx) na Microsoft Store.