.NET 5’teki yenilikler

.NET 5, 3.1'den sonraki büyük .NET Core sürümü. Bu yeni sürümü iki nedenle .NET Core 4 yerine .NET 5 olarak adlandırılmıştır:

  • 4.x sürümündeki karışıklığı önlemek için 4.x .NET Framework atlamış olduk.
  • Bundan sonra .NET'in ana uygulamasının bu olduğunu vurgulamak için addan "Core" belirttik. .NET 5, .NET Core veya diğer platformlara göre daha fazla türde uygulama ve .NET Framework.

ASP.NET Core 5.0 , .NET 5'i temel almaktadır ancak MVC 5 ile karıştırılmasından kaçınmak için "Çekirdek" ASP.NET korur. Benzer şekilde, Entity Framework Core 5.0, 5 ve 6 ile karıştırılmasından kaçınmak için "Core" Entity Framework korur.

.NET 5, .NET Core 3.1'e kıyasla aşağıdaki geliştirmeleri ve yeni özellikleri içerir:

.NET 5, .NET Framework

.NET 5 ve sonraki sürümler, .NET'in ileriye doğru ana uygulamasıdır ancak 4.x .NET Framework de desteklene devam ediyor. Aşağıdaki teknolojileri .NET 5'e .NET Framework için bir plan yoktur, ancak .NET'te alternatifler vardır:

Teknoloji Önerilen alternatif
Web Forms ASP.NET Core Blazor veya Razor Pages
Windows İş Akışı (WF) Açık kaynak CoreWF veya Elsa-Workflows

Windows Communication Foundation

Windows Communication Foundation'ın (WCF) özgün uygulaması yalnızca Windows. Ancak, .NET Foundation'dan kullanılabilen bir istemci bağlantı noktası vardır. Tamamen açık kaynak, platformlararası ve Microsoft tarafından de desteklemektedir. Temel NuGet paketleri aşağıda listelenmiştir:

Topluluk, daha önce adı geçen istemci kitaplıklarını tamamlayan sunucu bileşenlerini bulundurur. Veri GitHub CoreWCF'de bulunabilir. Sunucu bileşenleri Microsoft tarafından resmi olarak desteklanmaz. WCF'ye alternatif olarak gRPC'yi göz önünde bulundurabilirsiniz.

.NET 5, .NET Standard

Yeni uygulama geliştirme, sınıf kitaplıkları dahil olmak üzere tüm proje türleri için hedef çerçeve bilinen net5.0 adı (TFM) belirtebilir. Tek ihtiyacınız olan TFM'nin .NET 5 iş yükleri arasında kod paylaşımı net5.0 basitleştirildi.

.NET 5 uygulamaları ve kitaplıkları için Hedef Çerçeve Bilinen Adı net5.0 (TFM), ve netcoreapp TFM'lerini birleştirir netstandard 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 bunu yapabiliriz. 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şecek. .NET 5, dile birçok yeni özellik getiren C# 9 ile eşleştirildi. İşte öne çıkan birkaç önemli şey:

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

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

  • Üst düzey deyimler: C# benimsenme ve öğrenmeyi hızlandırmanın bir yöntemi olarak yöntem atlanabilir ve aşağıdaki gibi Main basit bir uygulama geçerli olabilir:

    System.Console.Write("Hello world!");
    
  • İşlev işaretçileri: Aşağıdaki ara dil (IL) opcode'ları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 yeni özellikler.

Kaynak oluşturucular

Kaynak oluşturucular, vurgulanan yeni C# özelliklerinden bazılarına ek olarak geliştirici projelerinde de yol almaktadır. 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şturuculara ve C# kaynak oluşturucu örneklerine tanıtma.

F# güncelleştirmeleri

F#, .NET işlevsel programlama dilidir ve .NET 5 ile geliştiricilerin F# 5'e erişimi vardır. Yeni özelliklerden biri, C# ve hatta JavaScript'te irdelenmiş dizeye benzer şekilde i ilişkilendirme dizeleridir.

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

Temel dize ilişkilendirmeye ek olarak, türe bağlı ilişkilendirme de vardır. Türü belirtilen ilişkilendirme ile, belirli bir tür biçim belirleyicisi ile eşleşmeli.

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

Bu, bir sprintf dizeyi tür güvenli girişlere göre biçime alan işleve benzer.

Daha fazla bilgi için bkz. F# 5'te neler var.

Visual Basic güncelleştirmeleri

.NET 5'te Visual Basic dil özelliği yoktur. Ancak .NET 5 ile Visual Basic şu şekilde genişletildi:

Description 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 Project mstest
NUnit 3 Test Project nunit
NUnit 3 Test Öğesi nunit-test
xUnit Test Project xunit

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

System.Text.Json yeni özellikleri

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

Ayrıca bkz.