Compilazione di app con .NET NativeCompiling Apps with .NET Native

.NET Native.NET Native è una tecnologia di precompilazione per la compilazione e distribuzione di App di Windows è inclusa con Visual Studio 2015 e versioni successive. is a precompilation technology for building and deploying Windows apps that is included with Visual Studio 2015 and later versions. che compila automaticamente la versione finale delle app scritte in codice gestito (C# o Visual Basic) e destina .NET Framework e Windows 10 al codice nativo.It automatically compiles the release version of apps that are written in managed code (C# or Visual Basic) and that target the .NET Framework and Windows 10 to native code.

In genere, le applicazioni che usano .NET Framework vengono compilate in Microsoft Intermediate Language (IL).Typically, apps that target the .NET Framework are compiled to intermediate language (IL). In fase di esecuzione, il compilatore just-in-time (JIT) traduce IL in codice nativo.At run time, the just-in-time (JIT) compiler translates the IL to native code. Al contrario, .NET Native.NET Native consente di compilare applicazioni Windows direttamente in codice nativo.In contrast, .NET Native.NET Native compiles Windows apps directly to native code. Per gli sviluppatori, questo significa che:For developers, this means:

  • Le app offrono le prestazioni del codice nativo.Your apps feature the performance of native code. In genere, le prestazioni sono superiori al codice che viene innanzitutto compilato a livello di integrità e quindi compilato in codice nativo dal compilatore JIT.Usually, performance will be superior to code that is first compiled to IL and then compiled to native code by the JIT compiler.

  • È possibile continuare a programmare in c# o Visual Basic.You can continue to program in C# or Visual Basic.

  • È possibile continuare a sfruttare le risorse fornite da .NET Framework, tra cui la libreria di classi, gestione della memoria e Garbage Collection automatiche e la gestione delle eccezioni.You can continue to take advantage of the resources provided by the .NET Framework, including its class library, automatic memory management and garbage collection, and exception handling.

Per gli utenti delle applicazioni, .NET Native.NET Native offre i seguenti vantaggi:For users of your apps, .NET Native.NET Native offers these advantages:

  • Tempi di esecuzione per la maggior parte delle applicazioni e degli scenari.Faster execution times for the majority of apps and scenarios.

  • Tempi di avvio per la maggior parte delle applicazioni e degli scenari.Faster startup times for the majority of apps and scenarios.

  • Bassi costi di distribuzione e aggiornamento.Low deployment and update costs.

  • Utilizzo della memoria app ottimizzato.Optimized app memory usage.

Importante

Per la maggior parte delle applicazioni e degli scenari, .NET Native offre tempi di avvio molto più rapide e prestazioni superiori rispetto a un'app compilata a livello di integrità o a un'immagine NGEN.For the vast majority of apps and scenarios, .NET Native offers significantly faster startup times and superior performance when compared to an app compiled to IL or to an NGEN image. Tuttavia, i risultati possono variare.However, your results may vary. Per garantire che i miglioramenti delle prestazioni di .NET Native è stato oggetto di applicazione, è necessario confrontare le prestazioni con quello della versione dell'app non - .NET Native.To ensure that your app has benefited from the performance enhancements of .NET Native, you should compare its performance with that of the non-.NET Native version of your app. Per ulteriori informazioni, vedere Cenni preliminari sulle sessioni di prestazioni.For more information, see Performance Session Overview.

Ma .NET Native.NET Native prevede molto più di una semplice compilazione in codice nativo:But .NET Native.NET Native involves more than a compilation to native code. trasforma il modo in cui le applicazioni di .NET Framework vengono compilate ed eseguite.It transforms the way that .NET Framework apps are built and executed. In particolare:In particular:

  • Durante la precompilazione, le parti necessarie di .NET Framework vengono collegate staticamente nell'applicazione.During precompilation, required portions of the .NET Framework are statically linked into your app. Ciò consente di eseguire l'applicazione con le librerie app-local di .NET Framework e di effettuare l'analisi globale per offrire prestazioni ottimali del compilatore.This allows the app to run with app-local libraries of the .NET Framework, and the compiler to perform global analysis to deliver performance wins. Di conseguenza, l'avvio delle applicazioni sarà più rapido e coerente dopo l'aggiornamento di .NET Framework.As a result, apps launch consistently faster even after .NET Framework updates.

  • Il .NET Native.NET Native runtime è ottimizzato per la precompilazione statica e nella maggior parte dei casi offre prestazioni superiori.The .NET Native.NET Native runtime is optimized for static precompilation and in the vast majority of cases offers superior performance. Allo stesso tempo, mantiene le funzionalità di reflection di base che gli sviluppatori troveranno estremamente produttive.At the same time, it retains the core reflection features that developers find so productive.

  • .NET Native.NET Native usa lo stesso back-end del compilatore C++, che è ottimizzato per scenari di precompilazione statici. uses the same back end as the C++ compiler, which is optimized for static precompilation scenarios.

.NET Native.NET Native può offrire i vantaggi delle prestazioni di C++ agli sviluppatori di codice gestito perché usa strumenti identici o simili come C++ dietro le quinte, come illustrato in questa tabella. is able to bring the performance benefits of C++ to managed code developers because it uses the same or similar tools as C++ under the hood, as shown in this table.

.NET Native.NET Native C++C++
LibrerieLibraries .NET Framework + Windows RuntimeThe .NET Framework + Windows Runtime Win32 + Windows RuntimeWin32 + Windows Runtime
CompilatoreCompiler Compilatore di ottimizzazione UTCUTC optimizing compiler Compilatore di ottimizzazione UTCUTC optimizing compiler
DistribuitoDeployed File binari Ready to runReady-to-run binaries File binari Ready to run (ASM)Ready-to-run binaries (ASM)
RuntimeRuntime MRT.dll (Runtime CLR minimo)MRT.dll (Minimal CLR Runtime) CRT.dll (C Runtime)CRT.dll (C Runtime)

Per le app Windows per Windows 10, caricare i file binari per la compilazione con .NET Native in pacchetti di applicazioni (file APPX) in Windows Store.For Windows apps for Windows 10, you upload .NET Native Code Compilation binaries in app packages (.appx files) to the Windows Store.

In questa sezioneIn This Section

Per altre informazioni sullo sviluppo di applicazioni con la compilazione con .NET Native, vedere i seguenti argomenti:For more information about developing apps with .NET Native Code Compilation, see these topics: