Microsoft .NET 6, .NET 5 ile başlayan .NET birleştirmenin doruk noktasıdır. Platformlar arası .NET 6, .NET Core, .NET Framework ve Xamarin/Mono teknolojilerini tek bir .NET Framework’te birleştirerek SDK’yı birleştirir. ve masaüstü, mobil, web ve bulut uygulamaları için çalışma zamanı.
Microsoft, .NET 6’yı 9 Kasım 2021’de C# 10 ve Visual Studio 2022 ile birlikte genel kullanıma sundu. Genel olarak geliştirilmiş geliştirici deneyimine ek olarak .NET 6, önceki benzerlerine kıyasla önemli performans artışları getiriyor. Aslında, .NET 6 şimdiye kadarki en hızlı .NET’tir. Bu aynı zamanda bir Uzun Süreli Destek (LTS) sürümüdür; bu, Microsoft’un üç yıl boyunca .NET 6’yı destekleyeceği anlamına gelir.
.NET 6’nın yeni özelliklerini tam olarak kullanabilmeniz için önce anlamanız gerektiğini söylemeye gerek yok. Bu makalede, .NET 6’daki yenilikler ve bir C# 10 geliştiricisi olarak ilerlemenin ne anlama geldiği tartışılmaktadır. Yapabilirsiniz .NET 6.0’ın bir kopyasını indirin Windows, Linux ve macOS için.
.NET 6’nın hem Visual Studio 2022’de hem de Mac için Visual Studio 2022’de desteklendiğini unutmayın. Ancak .NET 6, Visual Studio 2019, Visual Studio for Mac 8 veya MSBuild 16 ile uyumlu değildir. .NET 6’yı kullanmak istiyorsanız Visual Studio 2022’ye yükseltmeniz gerekir. Visual Studio 2022’yi buradan indirin.
Birleşik ve genişletilmiş bir .NET platformu
.NET 6 masaüstü, mobil, web, bulut ve IoT uygulamaları için birleşik bir platform sağlar. Temel platform, çeşitli türlerdeki uygulamaları destekler ve kodun tüm uygulamalarda yeniden kullanılmasını kolaylaştırır. Bulutta, masaüstünde veya mobil cihazda yürütülen kodun hepsinin aynı şekilde davranmasını sağlamak için yeni özellikler ve geliştirmeler tanıtıldı.
En çekici geliştirmelerden biri, .NET Multi-platform App UI’dir (.NET MAUI). Artık masaüstü ve mobil işletim sistemlerinde modern bir istemci uygulaması deneyimi sağlayan kodu tek bir projede yazabilirsiniz. .NET MAUI, Mayıs ayında genel kullanıma sunuldu.
Ne .NET 5 ne de .NET 6’nın eski .NET Framework’ün yerine geçmediğini unutmayın. Microsoft’un Web Forms, Windows Communication Foundation (WCF) veya Windows Workflow Foundation’ı (WF) .NET Framework’ten .NET 5 veya .NET 6’ya taşıma planı yoktur. Ancak, aşağıda gösterildiği gibi bu teknolojilerin her biri için desteklenen alternatifler vardır. .
- Web Formları, ASP.NET Core Blazor veya Razor Pages ile değiştirilebilir.
- Windows Communication Foundation (WCF), gRPC ile değiştirilebilir.
- Windows Workflow Foundation (WF), açık kaynaklı CoreWF ile değiştirilebilir.
.NET 6’daki yenilikler
Şimdi .NET 6’daki yeni özelliklere ve iyileştirmelere bakalım.
Geliştirilmiş performans
Performans, özellikle dosya G/Ç için önemli ölçüde iyileştirilir, bu da yürütme süresinin, gecikme süresinin ve bellek kullanımının azalmasına neden olur. FileStream sınıfı, zaman uyumsuz dosya G/Ç performansını iyileştirmek için yeniden yazılmıştır. Windows’taki uygulama artık engelleme API’lerini kullanmıyor, bu da onu birkaç kat daha hızlı hale getiriyor.
Tam Zamanında (JIT) derleyicisi güncellendi. Çöp toplayıcıda da iyileştirmeler yapıldı. Guid ve string gibi sistem türleri önemli ölçüde iyileştirildi.
Profil yönlendirmeli optimizasyon
Profil yönlendirmeli iyileştirme (PGO), bir derleyici optimizasyon tekniğidir ve .NET 6’da tanıtılan ve JIT derleyicisinin en sık kullanılan türlere ve kodlara göre optimize edilmiş kod oluşturmasına olanak tanıyan yeni bir özelliktir.
Birleşik platform desteği
Microsoft’un .NET uygulamaları için birleşik bir platform oluşturma çalışması .NET 5 ile başladı. Buradaki fikir, herhangi bir cihazda ve herhangi bir işletim sisteminde çalışabilen uygulamalar geliştirmek için tek tip bir platform sağlamaktı. Böylece web tarayıcısı, masaüstü, bulut, IoT ve mobil cihazlardaki tüm .NET 6 uygulamaları aynı .NET kitaplıklarını kullanır.
Yeni API’ler tanıtıldı
HTTP/3, JSON, matematik ve daha fazlası için yeni API’ler eklendi.
Güvenlik iyileştirmeleri
ChaCha20Poly1305 şifreleme şeması desteği, OpenSSL ve “derinlemesine savunma” çalışma zamanı azaltmaları gibi güvenlikte önemli iyileştirmeler yapıldı.
C# 10 ve F# 6 iyileştirmeleri
C# 10’daki önemli gelişmeler, yeni lambda yeteneklerinin, kayıt yapılarının ve örtük kullanımın tanıtılmasını içerir. F# 6’da, ardışık düzen hata ayıklama ve Görev tabanlı zaman uyumsuzlaştırmayı içeren iyileştirmeler de yapılmıştır.
JSON API’lerinde İyileştirmeler
JSON API’lerinde yapılan iyileştirmeler, daha fazla yetenek ve gelişmiş performans sağlar. System.Text.Json için çalışma zamanı yansıtma ve kod oluşturma ihtiyacını ortadan kaldıran ve derleme zamanında uygun serileştirme kodunun üretilmesine olanak tanıyan yeni bir kaynak oluşturucu tanıtıldı.
Bulut teşhisindeki iyileştirmeler
Bulut tanılama, şu anda üretimde olan ve Azure App Service ile erişilebilir olan OpenTelemetry ve dotnet-monitor eklenmesiyle geliştirildi.
Kod kalitesinde iyileştirmeler
Daha iyi, daha güvenli ve daha hızlı kod yazmanıza yardımcı olmak için kaynak oluşturucular ve çözümleyiciler tanıtıldı.
Sıcak Yeniden Yükleme
Hot Reload, .NET 6’da eklenen en çarpıcı yeni özelliklerden biridir. Uygulamanız çalışırken kullanıcı arayüzünü değiştirmek için bu özellikten yararlanabilirsiniz. Değişiklikleri kaydeder kaydetmez yansıdığını görebilirsiniz; uygulamayı yeniden başlatmanız gerekmez. Bu özellik, geliştirici üretkenliğini önemli ölçüde artırır.
DateOnly ve TimeOnly yapıları
Bu, .NET’te uzun zamandır beklenen bir özelliktir. Artık yalnızca bir tarih veya saat olan bir nesneye değerler ayarlayabilirsiniz. Aşağıda DateOnly ve TimeOnly yapılarını nasıl kullanabileceğinizi gösteren birkaç örnek verilmiştir.
var dateNow = new DateOnly(2021, 11, 17);
var newDate = dateNow.AddDays(7);
var timeNow = new TimeOnly(12, 0, 0);
var newTimeNow = timeNow.AddHours(5);
Zaman uyumsuz akış desteği
.NET 6 ile artık, herhangi bir arabelleğe alma olmadan sunucudan veri akışı yapmanızı sağlayan IAsyncEnumerable
.NET 6’yı Hedefleme
Visual Studio 2022’de yeni bir .NET 6 uygulaması oluşturduğunuzda, TargetFramework düğümü .NET 6’ya başvurmalıdır. .NET 6’da oluşturulan tipik bir .csproj dosyası şöyle görünür:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
Belirli bir işletim sistemini hedefliyorsanız, bir .NET 6 çeşidi de belirtebilirsiniz:
- net6.0-android
- net6.0-ios
- net6.0-makatalizör
- net6.0-tvos
- net6.0 pencereleri
.NET 6’da eksik olan nedir?
Bazı teknolojilerin .NET 5’e bırakıldığını unutmayın. Bu nedenle, bunlar .NET 6’nın da bir parçası değildir. Bunlar aşağıdakileri içerir:
- ASP.NET Web Formları. Eski ASP.NET Web Formları artık desteklenmemektedir. Bunun yerine Blazor, Angular veya React kullanmak isteyebilirsiniz.
- Windows İletişim Vakfı (WCF). Microsoft, WCF’yi .NET ekosistemine geri getirmeyi amaçlamıştı, ancak bunu yapmanın yaklaşık üç yıl süreceğini belirledikten sonra bu fikirden vazgeçti. Microsoft, alternatif olarak Google’ın açık kaynaklı RPC çerçevesi olan gRPC’yi kullanmanızı önerir. (Bir kılavuz için buradaki makaleme bakın.)
- Windows İş Akışı Vakfı (WWF). Uzun yıllardır kullanılan bir iş akışı çerçevesi olan WWF, .NET’ten de çıkarılıyor.
.NET yayın planı
.NET 5’in piyasaya sürülmesinden sonra Microsoft, her yılın Kasım ayında .NET’in yeni bir sürümünü sunmaya söz verdi. Aşağıdaki tablo, .NET için yayın planını listeler.
.NET Framework, .NET 5 yayınlandıktan sonra kullanımdan kaldırıldı. Bu, .NET Framework’ü destekleyen Windows sürümlerinde kullanmaya devam edebileceğiniz anlamına gelir. Ancak Microsoft’un işletim sistemlerinin yaşam döngülerini kısaltmasıyla, kullanım ömrünün sonuna gelmiş bir Windows sürümünü kolayca kullanabilirsiniz.
Microsoft, .NET 6 için Uzun Süreli Destek sağlar. LTS sürümlerinin genellikle yayın tarihinden itibaren üç yıllık bir süre boyunca desteklendiği unutulmamalıdır. Bu nedenle Microsoft, Kasım 2024’e kadar .NET 6’yı desteklemeyi planlıyor. Bir sonraki LTS sürümü olan .NET 8, Kasım 2023’te yayınlanacak.
.NET geliştirmede yeni bir dönem
Daha iyi, daha hızlı ve birleşik bir çalışma zamanından gelişmiş bir geliştirici deneyimine kadar, .NET 6’nın kapsamlı avantajları onu .NET ekosistemindeki en önemli sürüm haline getirir, çünkü .NET 4, .NET 6 hem şimdiye kadarki en hızlı .NET’tir hem de şu ana kadarki en hızlı .NET’tir. Hot Reload gibi birçok dil geliştirmesi ve özelliği ile daha küçük bir ayak izi ve azaltılmış kaynak tüketimi ve en geliştirici dostu.
En önemlisi, .NET 6, platformlar arası uygulamaların geliştirilmesini kolaylaştırmak için bize büyük bir adım atıyor. Tüm bu farklı platformları desteklemek için birden fazla kod tabanını sürdürmek zorunda kalmadan Android, iOS, macOS ve Windows için yerel mobil ve masaüstü uygulamaları oluşturmanıza olanak tanıyan çapraz platform bir çerçevedir.
Microsoft .NET 6, yalnızca gelecekteki tüm .NET platformları için yeni bir temel oluşturmakla kalmaz. .NET’te birden çok işletim sistemi ve mimarisi için performanslı, modern uygulamalar geliştirmede yeni bir çağı işaret ediyor. Birleşik bir platform, daha iyi dil olgunluğu ve iyileştirilmiş geliştirici araçlarıyla .NET 6, önümüzdeki yıllarda varsayılan Microsoft geliştirme platformu olmaya hazır.
Telif Hakkı © 2022 IDG Communications, Inc.
Kaynak : https://www.infoworld.com/article/3665688/the-best-new-features-in-net-6.html#tk.rss_all