.NET 5’teki yenilikler

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

  • .NET Framework 4.x ile karışıklığı önlemek için 4.x sürüm numaralarını atladık.
  • Bundan sonra .NET'in ana uygulaması olduğunu vurgumak için adından "Core" değerini düşürdük. .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 Forms ASP.NET Core Blazor veya Razor Pages
Windows İş Akışı (WF) Elsa-İş Akışları

Windows Communication Foundation

Windows Communication Foundation'ın (WCF) özgün uygulaması yalnızca Windows'ta destekleniyordu. Ancak. .NET Foundation'dan bir istemci bağlantı noktası vardı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 CoreWCF aracılığıyla kullanılabilir. Nisan 2022 itibarıyla CoreWCF, Microsoft tarafından resmi olarak desteklenmektedir. Ancak WCF'ye alternatif olarak gRPC'yi göz önünde bulundurun.

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

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

.NET 5 uygulamaları ve kitaplıkları için TFM, net5.0 ve netstandard TFM'lerini netcoreapp 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, bunu TFM'niz olarak belirterek netstandard2.0 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 ve yeni with bir ifade tarafından desteklenen yıkıcı olmayan mutasyona sahip başvuru türleri.

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

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

    System.Console.Write("Hello world!");
    
  • İşlev işaretçileri: Aşağıdaki ara dil (IL) işlem kodlarını kullanıma sunan 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ı ve C# kaynak oluşturucu örneklerine giriş.

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 dize ilişkilendirmesine ek olarak, türlenmiş 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, bir dizeyi sprintf tür açısından güvenli girişlere göre biçimlendiren işleve 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 Parametre
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 içinde System.Text.Json için yeni özellikler vardır:

Ayrıca bkz.