.NET 7 Özellikleri - Native AOT Deployment
(dotnetstuffs.com)- .NET AOT nedir?
- Native AOT dağıtımı
.NET 7 artık konsol uygulamaları için Windows, Linux ve macOS'ta .NET çalışma zamanı olmadan yaklaşık 2 MB boyutunda küçük native kod üretebiliyor ve herhangi bir bağımlılık olmadan çalıştırılabiliyor.
5 yorum
.NET 7'de desteklenmeyen macOS, .NET 8 ile resmî olarak desteklenmeye başlıyor.
https://learn.microsoft.com/en-us/dotnet/…
Microsoft’un resmi belgelerine bakıldığında, bu özelliğin önceden yerel olarak derlemenin getirdiği temel kısıtların yanı sıra, geliştirme sürecinin henüz erken aşamasında olmasından kaynaklanan ek kısıtları da olduğu görülüyor. Henüz ASP.NET Core uygulamalarına uygulanamıyor, kütüphane düzeyinde desteğe ihtiyaç var ve hata ayıklama ile profillemede de hâlâ sınırlamalar mevcut. Ek olarak, CPU mimarisi olarak yalnızca x64 ve ARM64 desteklendiği için 32 bit Windows uygulamaları oluşturulamıyor. Dikkat çekici bir nokta da, bu özellik sayesinde .NET dışındaki uygulamalarda kullanılabilecek statik kütüphaneler oluşturulabilmesi.
MS, .NET 7’yi duyururken onu “bulut yerel uygulamalar için” bir platform olarak tanımladı. Bunun için uygulamaları Docker container olarak dağıtma özelliğini de ekledi. AOT desteği de muhtemelen bu tür containerlaştırılmış uygulamaların imaj boyutunu ve başlangıç süresini optimize etmeye yönelik bir araç olarak eklendi. Ancak ASP.NET Core desteği hâlâ üzerinde çalışılan bir konu olduğundan, bu özelliğin bulut yerel uygulamalarda gerçekten öne çıkması biraz daha zaman alacak gibi görünüyor.
Referanslar:
Nazik yanıtınız için teşekkür ederim.
Konsol uygulamaları önizleme aşamasını geçti ve artık gerçek uygulamalar geliştirilebilecek resmi sürüm aşamasında.
Belirttiğiniz gibi, henüz erken aşamada olduğu için ASP.NET Core, WPF, Windows Forms veya WinUI desteği yok.
Ayrıca Docker container olarak dağıtım yapmak isteyen ihtiyaçlara da uymuyor. Çünkü ASP.NET Core’u henüz desteklemiyor.
Yine belirttiğiniz gibi, native code olarak derlendiği için Reflector’un çoğu özelliği kullanılamıyor. Bu kısım, erken aşamada olmasından kaynaklanan bir kısıttan çok, IL code ile native code’un farklı özelliklerinden kaynaklanıyor gibi görünüyor.
Mevcut NativeAOT’un anlamı, Windows, Linux ve macOS’ta bağımlılığı olmayan saf native code’u konsol uygulaması seviyesinde oldukça başarılı şekilde dağıtabilmek gibi görünüyor.
macOS değil. Bağlantısını paylaştığım Microsoft Learn belgesine bakarsanız, şu anda bu özelliğin desteklediği platformların yalnızca Windows ve Linux olduğunu görürsünüz. macOS muhtemelen daha sonra eklenecektir.
Zamanla çözülecektir ama bence bu özelliğin hâlâ gerçek üretim ortamında kullanmasının zor olduğu durumlar daha fazla.
macOS'un henüz desteklenmediği doğrudur.