Fitur .NET 7 - Deployment Native AOT
(dotnetstuffs.com)- Apa itu .NET AOT?
- Deployment Native AOT
.NET 7 kini dapat menghasilkan kode native berukuran kecil sekitar 2 MB untuk aplikasi konsol di Windows, Linux, dan macOS tanpa .NET runtime, dan dapat dijalankan tanpa dependensi.
5 komentar
macOS yang belum didukung di .NET 7 akan resmi didukung di .NET 8.
https://learn.microsoft.com/en-us/dotnet/…
Kalau melihat dokumentasi resmi Microsoft, selain keterbatasan mendasar yang berasal dari kompilasi native di awal, fitur ini juga punya beberapa keterbatasan tambahan karena masih berada pada tahap awal pengembangan. Ini masih belum bisa diterapkan pada aplikasi ASP.NET Core, memerlukan dukungan di tingkat library, dan juga masih memiliki batasan dalam debugging maupun profiling. Sebagai tambahan, karena arsitektur CPU yang didukung hanya x64 dan ARM64, aplikasi untuk Windows 32-bit tidak bisa dibuat. Dan satu hal yang cukup menonjol adalah, melalui fitur ini kita bisa membuat static library yang dapat digunakan dari aplikasi non-.NET.
Saat MS mengumumkan .NET 7, mereka menyebutnya sebagai platform “untuk aplikasi cloud native”. Untuk itu, mereka juga menambahkan fitur untuk men-deploy aplikasi ke container Docker. Dukungan AOT tampaknya juga ditambahkan sebagai alat untuk mengoptimalkan ukuran image dan waktu startup aplikasi yang dikontainerkan seperti ini. Namun, karena dukungan untuk ASP.NET Core sendiri masih dalam pengerjaan, kemungkinan fitur ini benar-benar menunjukkan manfaat nyatanya pada aplikasi cloud native baru akan terjadi beberapa waktu lagi.
Referensi:
Terima kasih atas jawabannya yang ramah.
Aplikasi konsol sudah melewati tahap pratinjau dan berada pada tahap rilis resmi, sehingga aplikasi nyata dapat dikembangkan dengannya.
Seperti yang Anda sebutkan, karena masih pada tahap awal, dukungan untuk ASP.NET Core, WPF, Windows Form, atau WinUI masih belum tersedia.
Selain itu, ini juga tidak sesuai dengan kebutuhan untuk melakukan deployment sebagai container Docker. ASP.NET Core masih belum didukung.
Sama seperti yang Anda katakan, karena dikompilasi menjadi kode native, sebagian besar fitur Reflector tidak dapat digunakan. Bagian ini tampaknya bukan keterbatasan yang berasal dari tahap awal, melainkan karena perbedaan karakteristik antara kode IL dan kode native.
Makna NativeAOT saat ini tampaknya adalah bahwa kode native murni tanpa dependensi dapat di-deploy dengan sangat baik pada tingkat aplikasi konsol di Windows, Linux, dan macOS.
Bukan macOS. Kalau Anda melihat dokumen Microsoft Learn yang saya tautkan, Anda akan tahu bahwa saat ini platform yang didukung untuk fitur ini hanya Windows dan Linux. macOS mungkin akan ditambahkan nanti.
Seiring waktu masalah ini mungkin akan teratasi, tetapi saya rasa untuk saat ini masih cukup banyak kasus di mana fitur ini sulit digunakan di lingkungan produksi.
Memang benar bahwa macOS belum didukung.