Microsoft: .NET 9.0, önizlemede yeni bir AI kitaplığı getiriyor
.NET 9.0'ın üretime hazır sürümü artık indirme sayfasında ücretsiz olarak mevcuttur. .NET 9.0 için geliştiricilerin Visual Studio 2022 geliştirme ortamının en az sürüm 17.12'ye ihtiyacı vardır ve bu sürüm de üretime hazır olarak kabul edilir.
Duyuru
Kasım 2023'te yayımlanan sürüm 8.0, toplam 36 ay boyunca uzun vadeli destek (LTS) almış ve bu nedenle Kasım 2026'ya kadar güncelleştirmeleri almaya devam edecek olsa da, Microsoft, dönem destek standartları olarak .NET 9.0 için güncelleştirmeler ve teknik destek sunuyor ( STS'dir). Yalnızca 18 aylık bir süre için, yani Mayıs 2026'ya kadar.
Entity Framework Core 9.0 ayrıca .NET 8.0'da da çalışır
.NET 9.0'ın yapısı .NET 8.0 ile aynıdır (bkz. Şekil 1): ortak bir yazılım geliştirme kitine (SDK), ortak bir temel sınıf kitaplığına, C#, F# ve Visual Basic .NET'e dayalı olarak çalışan çok sayıda uygulama türü (Neredeyse) tüm uygulama türlerinde kullanılabilen Entity Framework Core nesne ilişkisel eşleştiricisidir. Son sürümün aksine, mevcut Entity Framework Core sürüm 9.0 yalnızca geçerli .NET sürüm 9.0 ile değil aynı zamanda önceki sürüm .NET 8.0 ile de çalışır. Uygulama türüne ve işletim sistemine bağlı olarak iki farklı çalışma zamanı gizlice çalışmaya devam eder: .NET Core Runtime ve Mono Runtime.
.NET 9.0'ın yapısı (Şekil 1)
(Resim: Dr. Holger Schwichtenberg)
Bir kez daha çok sayıda dikkate değer değişiklik
Önceki .NET sürümlerinden .NET 9.0'a geçiş yapanların yalnızca proje dosyasında veya merkezi yapı yapılandırma dosyasında Directory.Build.props hedef çerçevesini ayarlaması gerekmez. <TargetFramework>net9.0</TargetFramework> değişir, ancak aynı zamanda çok sayıda önemli değişikliği de hesaba katar. Microsoft, tablolarda .NET 8.0'daki değişiklikleri belgeliyor.
(Resim: Dmytro Vikarchuk/Shutterstock))
iX ve dpunkt.verlag tarafından 19 Kasım 2024'te düzenlenecek BetterCode() .NET 9.0 çevrimiçi konferansında, www.IT-Visions.de adresindeki .NET uzmanları pratik örnekler kullanarak .NET 9.0'ın son sürümünü sunacaklar. Bunlar arasında .NET 9.0 SDK, C# 13.0, ASP.NET Core 9.0, Blazor 9.0, Windows Forms 9.0, WPF 9.0, WinUI, .NET MAUI 9.0'daki yenilikler ve yapay zekanın .NET uygulamalarına entegrasyonu yer alıyor. Programda altı ders, bir tartışma ve altı atölye çalışması yer alıyor.
Biletler konferans web sitesindeki gişeden temin edilebilir.
Ciddi bir değişiklik sınıfın ortadan kaldırılmasıdır BinaryFormatter. Bunun nedeni, bu tür serileştirmelerdeki güvenlik açıklarının 2012'den beri bilinmesidir (Black Hat Konferansı 2012). Microsoft, şirketin XML, Mesaj Paketi ve ProtoBuf gibi diğer serileştirme formatlarına geçişi önerdiği kendi BinaryFormatter Geçiş Kılavuzunu yayımladı. Program kodlarını diğer serileştirme biçimlerine geçirmek istemeyen geliştiriciler, System.Runtime.Serialization.Formatters NuGet paketini dahil edebilir ve ikili serileştirmeyi kullanmaya devam edebilir. Ayrıca proje dosyasında da ayarlamanız gerekir:
<PropertyGroup>
<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
</PropertyGroup>
Entity Framework Core ve C# için önemli değişikliklerin ayrı listeleri vardır:
.NET 9.0 daha hızlı çalışır
Microsoft, (.NET'in en son sürümlerinde olduğu gibi) yine .NET 9.0'da çeşitli performans iyileştirmelerini bünyesine kattı, örneğin:
- daha hızlı çalışma zamanı hataları
- Genel yöntemler için geliştirilmiş yerleştirme
- JIT döngü optimizasyonu
- Profil Kılavuzlu Optimizasyonda (PGO) Optimizasyon
- Sunucu modunda çöp toplayıcıdaki bellek gereksinimleri önemli ölçüde azaldı
- Birçok .NET temel sınıfı için çalışma zamanı ve bellek ayırma iyileştirmeleri
Microsoft, minimum düzeyde ASP.NET Core Web API'leri ile elde edilen depolama alanı tasarruflarından özellikle gurur duymaktadır (bkz. Şekil 2).
ASP.NET Core Minimal Web API'lerinde performans ve depolama iyileştirmeleri (Şekil 2)
(Resim: Microsoft DevBlog)
Pek çok yeni özellik
.NET 9.0'da tüm alanlarda birçok yeni özellik bulunmaktadır: C# programlama dili, temel sınıf kitaplığı, Entity Framework Core ile nesne ilişkisel eşleme, System.Text.Json ile JSON serileştirmesi, ASP web çerçeveleri NET Core ve Blazor as. .NET MAUI platformlar arası kullanıcı arayüzünün yanı sıra. Eski Windows Windows Forms masaüstü çerçevesinde de bireysel iyileştirmeler yapıldı.
Haberler Developer, Önizleme ve Sürüm Adayı sürümlerine dayalı olarak .NET 9.0'daki yenilikler hakkında şunları bildirdi:
Önceki yazılarda bahsedilen özelliklerle karşılaştırıldığında RTM (Release to Manufacturing) sürümünde aşağıdaki noktalar eklenmiştir:
- System.Text.Json artık zorunlu oluşturucu parametreleri ve tür meta veri konumunda esneklik içeriyor ($type), çoklu JSON belgelerini okuma ve numaralandırma üye adlarının serileştirilmesini özelleştirme. Bir de yöntem var DeepEquals() sınıfta JsonElement.
- Uzun süredir devam eden Windows Forms kontrolü FolderBrowserDialog .NET 9.0'da birden fazla dosya seçimine izin verir.
- THE ControlWindows Forms'daki tüm denetimlerin ve formun kendisinin miras aldığı Denetim'in bir yöntemi vardır InvokeAsync() asenkron görevlerin kolay yürütülmesi için.
- .NET Çapraz Platform Uygulama Kullanıcı Arayüzü (.NET MAUI), daha hızlı derlenmiş veri bağlamaları sağlar ve ayrıca NativeAOT derlemesiyle de çalışır.
- MAUI kontrolü <TimePicker> onun bir tanesi var TimeSelected-Seçilen saat değiştiğinde etkinleşen olay.
Yeni AI kitaplığı Microsoft.Extensions.AI
.NET 9.0'ın piyasaya sürülmesiyle aynı zamanda Microsoft, .NET için yeni bir AI kitaplığının duyurusunu yaptı. Yeni Microsoft.Extensions.AI NuGet paketi, .NET geliştiricilerinin OpenAI, Azure AI, Ollama ve GitHub gibi çeşitli AI hizmetlerinin kullanımını basitleştirmesine yardımcı olur. Topluluk kendi modelleriyle katkıda bulunabilir (bkz. Şekil 3).
.NET için yeni AI kütüphanesi (Şekil 3)
(Resim: Microsoft DevBlog)
Geliştiriciler, belirli bir AI hizmeti için belirli bir kitaplığı kullanan belirli bir satıcıya taahhütte bulunmamalıdır. Microsoft, AI kitaplığı yazarlarının Microsoft.Extensions.AI.Abstractions paketinde tanımlanan IChatClient ve IEmbeddingGenerator gibi arabirimler sunmalarını teşvik eder. Microsoft.Extensions.AI kitaplığı ve Microsoft.Extensions.AI.AzureAIInference, Microsoft.Extensions.AI.OpenAI ve Microsoft.Extensions.AI.Ollama gibi Microsoft paketleri zaten bu arayüzler için uygulamalar sunmaktadır.
Microsoft, GitHub'da çok sayıda örnek sunmaktadır.
(mdo)