Mengkompilasi aplikasi dengan .NET Native

.NET Native adalah teknologi prakompilasi untuk membangun dan menyebarkan aplikasi UWP. .NET Native disertakan dengan Visual Studio 2015 dan versi yang lebih baru. Ini secara otomatis mengkompilasi versi rilis aplikasi UWP yang ditulis dalam kode terkelola (C# atau Visual Basic) ke kode asli.

Biasanya, aplikasi .NET dikompilasi ke bahasa perantara (IL). Pada waktu proses, pengkompilasi just-in-time (JIT) menerjemahkan IL ke kode asli. Sebaliknya, .NET Native mengkompilasi aplikasi UWP langsung ke kode asli. Untuk pengembang, ini berarti:

  • Aplikasi Anda menampilkan performa kode asli. Biasanya, performa akan lebih unggul daripada kode yang pertama kali dikompilasi ke IL dan kemudian dikompilasi ke kode asli oleh pengkompilasi JIT.

  • Anda dapat melanjutkan program di C# atau Visual Basic.

  • Anda dapat terus memanfaatkan sumber daya yang disediakan oleh .NET Framework, termasuk pustaka kelasnya, manajemen memori otomatis dan pengumpulan sampah, dan penanganan pengecualian.

Untuk pengguna aplikasi Anda, .NET Native menawarkan keuntungan berikut:

  • Waktu eksekusi yang lebih cepat untuk sebagian besar aplikasi dan skenario.

  • Waktu mulai yang lebih cepat untuk sebagian besar aplikasi dan skenario.

  • Biaya penyebaran dan pembaruan yang rendah.

  • Penggunaan memori aplikasi yang dioptimalkan.

Tetapi .NET Native melibatkan lebih dari kompilasi ke kode asli. Ini mengubah cara aplikasi .NET Framework dibangun dan dijalankan. Secara khusus:

  • Selama prakomproduksi, bagian yang diperlukan dari .NET Framework secara statis ditautkan ke dalam aplikasi Anda. Ini memungkinkan aplikasi berjalan dengan pustaka .NET Framework lokal aplikasi, dan pengkompilasi untuk melakukan analisis global untuk memberikan kemenangan performa. Akibatnya, aplikasi diluncurkan secara konsisten lebih cepat bahkan setelah .NET Framework diperbarui.

  • Runtime .NET Native dioptimalkan untuk prakompeksi statis dan dalam sebagian besar kasus menawarkan performa yang unggul. Pada saat yang sama, ia mempertahankan fitur refleksi inti yang menurut pengembang sangat produktif.

  • .NET Native menggunakan back end yang sama dengan kompilator C++, yang dioptimalkan untuk skenario prakompilasi statis.

.NET Native dapat membawa manfaat performa C++ ke pengembang kode terkelola karena menggunakan alat yang sama atau serupa dengan C++ di bawah tenda, seperti yang ditunjukkan dalam tabel ini.

Komponen .NET Native C++
Pustaka .NET Framework + Windows Runtime Win32 + Windows Runtime
Kompilator UTC mengoptimalkan pengkompilasi UTC mengoptimalkan pengkompilasi
Disebarkan Biner siap dijalankan Biner siap dijalankan (ASM)
Runtime MRT.dll (Runtime CLR Minimal) CRT.dll (Runtime C)

Untuk aplikasi UWP, Anda mengunggah biner Kompilasi Kode Asli .NET dalam paket aplikasi (file .msix atau .appx) ke Microsoft Store.