.net Core ve .net 5 + üzerinde .NET Framework teknolojileri kullanılamıyor

.NET Framework kitaplıkları için kullanılabilen çeşitli teknolojiler, uygulama etki alanları, uzaktan iletişim ve kod erişim güvenliği (CAS) gibi .net 5 + (ve .net Core) ile birlikte kullanılamaz. Kitaplıklarınız bu sayfada listelenen teknolojilerden birini veya birkaçını kullanıyorsa, bahsedilen alternatif yaklaşımları göz önünde bulundurun.

API uyumluluğu hakkında daha fazla bilgi için bkz. .net 'Teki son değişiklikler.

Uygulama etki alanları

Uygulama etki alanları (AppDomain), uygulamaları birbirinden ayırır. AppDomain, çalışma zamanı desteği gerektirir ve kaynak maliyetli bir işlemdir. Daha fazla uygulama etki alanı oluşturulması desteklenmez ve gelecekte bu yeteneği eklemek için herhangi bir plan yoktur. Kod yalıtımı için alternatif olarak ayrı süreçler veya kapsayıcılar kullanın. Derlemeleri dinamik olarak yüklemek için sınıfını kullanın AssemblyLoadContext .

kod .NET Framework geçişini daha kolay hale getirmek için .net 5 +, bazı AppDomain apı yüzeyini kullanıma sunar. API 'lerden bazıları normal olarak çalışır (örneğin, AppDomain.UnhandledException ), bazı Üyeler hiçbir şey yapmaz (örneğin,) SetCachePath ve bazıları PlatformNotSupportedException (örneğin, CreateDomain ). dotnet/runtime GitHub deposundaki System.AppDomain başvuru kaynağına karşı kullandığınız türleri kontrol edin. Uygulanan sürümünüzle eşleşen dalı seçtiğinizden emin olun.

Uzaktan iletişim

.NET uzaktan Iletişim .NET 5 + (ve .NET Core) üzerinde desteklenmez. .NET uzaktan iletişim, sorunlu bir mimari olarak tanımlandı. Artık desteklenmeyen uygulama etki alanları arasında iletişim kurmak için kullanılır. Ayrıca, uzaktan iletişim için, bakım açısından pahalı olan çalışma zamanı desteği gerekir.

İşlemler arasında basit iletişim için, sınıf veya sınıf gibi uzaktan iletişim (IPC) mekanizmalarını bir alternatif olarak düşünün System.IO.Pipes MemoryMappedFile . Daha karmaşık senaryolar için, açık kaynaklı Streamjsonrpc projesi, var olan akışın veya kanal bağlantılarının üzerinde çalışabilen platformlar arası .NET Standard uzaktan iletişim çerçevesini sağlar.

Makineler arasında, alternatif olarak ağ tabanlı bir çözüm kullanın. Tercihen, HTTP gibi düşük yüklü bir düz metin protokolü kullanın. ASP.NET Core tarafından kullanılan web sunucusu olan Kestrel web sunucusuburada bir seçenektir. Ayrıca, System.Net.Sockets ağ tabanlı, makineler arası senaryolar için kullanmayı düşünün. Daha önce bahsedilen StreamJsonRpc, Web soketlerine yönelik JSON veya ikili (MessagePack aracılığıyla) iletişimi için kullanılabilir.

Daha fazla mesajlaşma seçeneği için bkz. .net açık kaynak geliştirici projeleri: mesajlaşma.

Kod erişim güvenliği (CAS)

yönetilen bir uygulamanın veya kitaplığın hangi kaynakları kullanacağını veya çalıştığını kısıtlamak için çalışma zamanına veya çerçeveye dayanan korumalı alana alma, .NET Framework desteklenmez ve bu nedenle de .net Core ve .net 5 + ' da desteklenmez. .NET Framework ve bir ayrıcalık yükselmesinin bir güvenlik sınırı olarak kabul etmesine devam etmek için ayrıcalıkların yükseltilme gerçekleştiği çalışma zamanında çok fazla durum vardır. Ayrıca, CA 'LAR uygulamayı daha karmaşık hale getirir ve genellikle onu kullanmayı düşünmediğiniz uygulamalar için doğruluk performansına yönelik etkileri vardır.

Minimum ayrıcalık kümesi olan süreçler çalıştırmak için sanallaştırma, kapsayıcılar veya Kullanıcı hesapları gibi işletim sistemi tarafından belirtilen güvenlik sınırlarını kullanın.

Güvenlik saydamlığı

CA 'lara benzer şekilde, güvenlik saydamlığı, korumalı kodu bildirimle güvenlik açısından kritik koddan ayırır, ancak artık güvenlik sınırı olarak desteklenmez. Bu özellik Silverlight tarafından yoğun bir şekilde kullanılır.

En az ayrıcalık kümesine sahip süreçler çalıştırmak için sanallaştırma, kapsayıcılar veya Kullanıcı hesapları gibi işletim sistemi tarafından belirtilen güvenlik sınırlarını kullanın.

System. EnterpriseServices

System.EnterpriseServices (COM+), .NET Core ve .NET 5 + tarafından desteklenmez.

Workflow Foundation ve WCF

Windows Workflow Foundation (WF) ve Windows Communication Foundation (WCF), .net 5 + (.net Core dahil) sürümünde desteklenmez. Alternatifler için bkz. Corewf ve corewcf.

Yansıma tarafından oluşturulan derlemeleri kaydetme

.NET 5 + (.NET Core dahil), API 'ler tarafından oluşturulan derlemelerin kaydedilmesini desteklemez System.Reflection.Emit . AssemblyBuilder.SaveYöntemi .NET 5 + (.NET Core dahil) sürümünde kullanılamaz. Ayrıca, numaralandırmanın aşağıdaki alanları AssemblyBuilderAccess kullanılamaz:

Alternatif olarak, ılpack kitaplığınıgöz önünde bulundurun.

Daha fazla bilgi için bkz. DotNet/Runtime sorun 15704.

Çok modüllü derlemeler yükleniyor

birden çok modülden ( OutputType=Module MSBuild) oluşan derlemeler .net 5 + ' de (.net Core dahil) desteklenmez.

Alternatif olarak, bireysel modülleri tek bir derleme dosyasında birleştirmeyi göz önünde bulundurun.

Ayrıca bkz.