Aracılığıyla paylaş


.NET 5'teki yenilikler

.NET 5, .NET Core'un 3.1'i izleyen sonraki önemli sürümüdür. Bu sürüm iki nedenden dolayı .NET Core 4 yerine .NET 5 olarak adlandırıldı:

  • .NET Framework 4.x ile karışıklığı önlemek için sürüm numaraları 4.x atlandı.
  • Bundan sonra .NET'in ana uygulamasının bu olduğunu vurgulayan "Çekirdek", adından bırakıldı. .NET 5, .NET Core veya .NET Framework'ten daha fazla uygulama türünü ve daha fazla platformu destekler.

ASP.NET Core 5.0, .NET 5'i temel alır ancak ASP.NET MVC 5 ile karıştırılmasını önlemek için "Core" adını korur. Benzer şekilde, Entity Framework Core 5.0, Entity Framework 5 ve 6 ile karıştırılmasını önlemek için "Core" adını korur.

.NET 5, .NET Core 3.1 ile karşılaştırıldığında aşağıdaki iyileştirmeleri ve yeni özellikleri içerir:

.NET 5, .NET Framework'ün yerini almaz

.NET 5 ve sonraki sürümleri, .NET'in ileriye dönük ana uygulamasıdır, ancak .NET Framework 4.x hala desteklenmektedir. .NET Framework'ten .NET 5'e aşağıdaki teknolojileri taşıma planı yoktur, ancak .NET'te alternatifler vardır:

Teknoloji Önerilen alternatif
Web Formları ASP.NET Core Blazor veya Razor Pages
Windows İş Akışı (WF) elsa-workflows

Windows Communication Foundation

Windows Communication Foundation (WCF) özgün uygulaması yalnızca Windows'ta destekleniyordu. Ancak, .NET Foundation'dan bir istemci bağlantı noktası bulunmaktadır. Tamamen açık kaynak, platformlar arasıdır ve Microsoft tarafından desteklenir. Çekirdek NuGet paketleri aşağıda listelenmiştir:

Yukarıda belirtilen istemci kitaplıklarını tamamlayan sunucu bileşenleri, CoreWCFaracılığıyla kullanılabilir. Nisan 2022 itibarıyla CoreWCF, Microsoft tarafından resmi olarak desteklenmektedir. Ancak WCF'ye alternatif olarak gRPC göz önünde bulundurun.

.NET 5, .NET Standard'ın yerini almaz

Yeni uygulama geliştirme süreci, sınıf kitaplıkları da dahil olmak üzere tüm proje türleri için net5.0 Hedef Çerçeve Takma Adını (TFM) belirtebilir. .NET 5 iş yükleri arasında kod paylaşımı basitleştirilir: tek ihtiyacınız olan net5.0 TFM'dir.

.NET 5 uygulamaları ve kitaplıkları için net5.0 TFM, netcoreapp ve netstandard TFM'leri birleştirir ve değiştirir. Ancak.NET Framework, .NET Core ve .NET 5 iş yükleri arasında kod paylaşmayı planlıyorsanız, TFM'niz olarak netstandard2.0 belirterek bunu yapabilirsiniz. Daha fazla bilgi için bkz. .NET Standard .

C# güncelleştirmeleri

.NET 5 uygulamaları yazan geliştiriciler en son C# sürümüne ve özelliklerine erişebilir. .NET 5, dile birçok yeni özellik getiren C# 9 ile eşleştirilir. İşte birkaç önemli nokta:

  • Kayıtlar: Değer tabanlı eşitlik semantiğine sahip ve yeni bir with ifadesi ile desteklenen yıkıcı olmayan mutasyona sahip başvuru türleri.

  • İlişkisel desen eşleştirme: Desen eşleştirme özelliklerini mantıksal desenler de dahil olmak üzere karşılaştırmalı değerlendirmeler ve ifadeler için ilişkisel işleçlere genişletir- andyeni anahtar sözcükler , orve not.

  • Üst düzey deyimleri: C# benimsemesini ve öğrenmesini hızlandırmanın bir aracı olarak, Main yöntemi atlanabilir ve aşağıdaki örnek kadar basit bir uygulama geçerlidir:

    System.Console.Write("Hello world!");
    
  • İşlev işaretçileri: Şu ara dil (IL) işlem kodlarını ortaya çıkaran dil yapıları: ldftn ve calli.

Kullanılabilir C# 9 özellikleri hakkında daha fazla bilgi için bkz. C# 9'daki yenilikler.

Kaynak oluşturucular

Kaynak oluşturucular, vurgulanan yeni C# özelliklerinden bazılarına ek olarak geliştirici projelerine de giriş yapıyor. Kaynak oluşturucular, derleme sırasında çalışan kodun programınızı incelemesine ve kodunuzun geri kalanıyla birlikte derlenmiş ek dosyalar üretmesine olanak sağlar.

Kaynak oluşturucular hakkında daha fazla bilgi için bkz. C# kaynak oluşturucularına giriş ve C# kaynak oluşturucu örnekleri.

F# güncelleştirmeleri

F# .NET işlevsel programlama dilidir ve .NET 5 ile geliştiriciler F# 5'e erişebilir. Yeni özelliklerden biri C# dilindeki ilişkilendirilmiş dizelere ve hatta JavaScript'e benzer ilişkilendirilmiş dizelerdir.

let name = "David"
let age = 36
let message = $"{name} is {age} years old."

Temel string ilişkilendirmesine ek olarak, tipli ilişkilendirme vardır. Yazılan ilişkilendirmede, belirli bir tür biçim tanımlayıcısıyla eşleşmelidir.

let name = "David"
let age = 36
let message = $"%s{name} is %d{age} years old."

Bu biçim, tür açısından güvenli girişlere göre bir dizeyi biçimlendiren sprintf işlevine benzer.

Daha fazla bilgi için bkz. F# 5'teki yenilikler.

Visual Basic güncelleştirmeleri

.NET 5'te Visual Basic için yeni dil özelliği yok. Bununla birlikte, .NET 5 ile Visual Basic desteği şu şekilde genişletilir:

Açıklama dotnet new parametresi
Konsol Uygulaması console
Sınıf kitaplığı classlib
WPF Uygulaması wpf
WPF Sınıf kitaplığı wpflib
WPF Özel Denetim Kitaplığı wpfcustomcontrollib
WPF Kullanıcı Denetimi Kitaplığı wpfusercontrollib
Windows Forms (WinForms) Uygulaması winforms
Windows Forms (WinForms) sınıf kitaplığı winformslib
Birim Testi Projesi mstest
NUnit 3 Test Projesi nunit
NUnit 3 Test Öğesi nunit-test
xUnit Test Projesi xunit

.NET CLI'dan proje şablonları hakkında daha fazla bilgi için bkz. dotnet new.

System.Text.Json yeni özellikleri

ve System.Text.Jsoniçin yeni özellikler vardır:

Ayrıca bkz.