Compartilhar via


Compilar aplicativos com o .NET Native

O .NET Native é uma tecnologia de pré-compilação para criar e implantar aplicativos UWP. O .NET Native está incluído no Visual Studio 2015 e versões posteriores. Ele compila automaticamente a versão de lançamento de aplicativos UWP escritos em código gerenciado (C# ou Visual Basic) para código nativo.

Normalmente, os aplicativos .NET são compilados para IL (linguagem intermediária). Em tempo de execução, o compilador JIT (just-in-time) converte o IL para o código nativo. Por outro lado, o .NET Native compila aplicativos UWP diretamente para código nativo. Para desenvolvedores, isso significa:

  • Seus aplicativos apresentam o desempenho do código nativo. Normalmente, o desempenho será superior ao código que é compilado primeiro para IL e, em seguida, compilado para código nativo pelo compilador JIT.

  • Você pode continuar a programar no C# ou no Visual Basic.

  • Você pode continuar a aproveitar os recursos fornecidos pelo .NET Framework, incluindo sua biblioteca de classes, gerenciamento automático de memória e coleta de lixo e tratamento de exceções.

Para usuários de seus 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.

  • Baixos custos de implantação e atualização.

  • Uso otimizado de memória do aplicativo.

No entanto, o .NET Native envolve mais do que uma compilação para código nativo. Ele transforma a maneira como os aplicativos do .NET Framework são criados e executados. Em particular:

  • Durante a pré-compilação, as partes necessárias do .NET Framework são vinculadas estaticamente ao seu aplicativo. Isso permite que o aplicativo seja executado com bibliotecas locais de aplicativo do .NET Framework e o compilador execute a análise global para fornecer ganhos de desempenho. Como resultado, os aplicativos são iniciados consistentemente mais rapidamente mesmo após as atualizações do .NET Framework.

  • O runtime nativo do .NET é otimizado para pré-compilação estática e, na grande maioria dos casos, oferece desempenho superior. Ao mesmo tempo, ele mantém os principais recursos de reflexão que os desenvolvedores acham tão produtivos.

  • O .NET Native usa o mesmo back-end do compilador C++, que é otimizado para cenários de pré-compilação estáticos.

O .NET Native é capaz de trazer os benefícios de desempenho do C++ para desenvolvedores de código gerenciado porque usa as mesmas ferramentas ou ferramentas semelhantes ao C++ sob o capô, conforme mostrado nesta tabela.

Componente .NET Nativo C++
Bibliotecas .NET Framework + Windows Runtime Win32 + Windows Runtime
Compilador Compilador de otimização UTC Compilador de otimização UTC
Implantado Binários prontamente executáveis Binários prontos para execução (ASM)
Tempo de execução MRT.dll (tempo de execução mínimo da CLR) CRT.dll (Tempo de Execução C)

Para aplicativos UWP, você carrega binários de Compilação de Código Nativo do .NET em pacotes de aplicativos (arquivos .msix ou .appx) na Microsoft Store.