Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A .NET-keretrendszer kódtárai számára elérhető számos technológia nem érhető el a .NET 6+-hoz, például az alkalmazástartományokhoz, az újraíráshoz és a kódelérési biztonsághoz (CAS). Ha a kódtárak az ezen a lapon felsorolt technológiák valamelyikére támaszkodnak, fontolja meg az említett alternatív módszereket.
További információért az API kompatibilitási változásairól, lásd a .NET jelentős módosításai részben:.
Alkalmazástartományok
Az alkalmazástartományok (AppDomains) elkülönítik egymástól az alkalmazásokat. Az AppDomains futásidejű támogatást igényel, és erőforrás-költséges. A további alkalmazástartományok létrehozása nem támogatott, és a jövőben nem tervezik ezt a funkciót hozzáadni. A kódelkülönítéshez használjon különálló folyamatokat vagy tárolókat alternatívaként. A szerelvények dinamikus betöltéséhez használja a AssemblyLoadContext osztályt.
A .NET-keretrendszerből való kódmigrálás megkönnyítése érdekében a .NET 6+ elérhetővé teszi a AppDomain API-felület egy részét. Az API-k egy része normálisan működik (például AppDomain.UnhandledException), néhány tag nem tesz semmit (például SetCachePath), és néhány közülük hibát dob, mint például PlatformNotSupportedException (például CreateDomain). Ellenőrizze a System.AppDomain referenciaforrás- használt típusokat. Győződjön meg arról, hogy a megvalósított verziónak megfelelő ágat választja ki.
Újraegyezés
A .NET-remoting nem támogatott a .NET 6+-on. A .NET-remotingot problémás architektúraként azonosították. Ez az alkalmazástartományok közötti kommunikációhoz használatos, amelyek már nem támogatottak. A távoli elérés futásidejű támogatást is igényel, ami költséges a karbantartására.
A folyamatok közötti egyszerű kommunikációhoz fontolja meg a folyamatközi kommunikációs (IPC) mechanizmusait a távoli elérés alternatívájaként, például a System.IO.Pipes osztály vagy a MemoryMappedFile osztály. Összetettebb forgatókönyvek esetén a nyílt forráskódú StreamJsonRpc projekt egy platformfüggetlen .NET Standard remoting keretrendszert biztosít, amely a meglévő stream- vagy csőkapcsolatokon működik.
A gépeken használjon hálózati alapú megoldást alternatívaként. Lehetőleg használjon alacsony terhelésű egyszerű szöveges protokollt, például HTTP-t. Itt a ASP.NET Core által használt Kestrel-webkiszolgálóérhető el. Fontolja meg a System.Net.Sockets használatát hálózati, több gép közötti forgatókönyvekhez is. A korábban említett StreamJsonRpc használható JSON- vagy bináris (MessagePack-alapú) kommunikációhoz webes szoftvercsatornákon keresztül.
További üzenetkezelési lehetőségekért lásd: .NET nyílt forráskódú fejlesztői projektek: Üzenetkezelés.
Mivel a távoli elérés nem támogatott, a delegált objektumokon a BeginInvoke() és EndInvoke() hívások kivételt (PlatformNotSupportedException) fognak dobni. További információért lásd: A delegált BeginInvoke hívások migrálása a .NET Core-hoz.
Kódhozzáférés biztonsága (CAS)
A sandbox, amely a futtatókörnyezetre vagy a keretrendszerre támaszkodik az erőforrásoknak a felügyelt alkalmazás vagy könyvtár által történő használatának vagy futtatásának korlátozására, nem támogatott a .NET Keretrendszer, ezért nem támogatott a .NET 6+ rendszeren sem. A CAS már nem minősül biztonsági határnak, mert túl sok eset van a .NET-keretrendszerben és a futtatókörnyezetben, ahol jogosultságok emelése történik. A CAS emellett bonyolultabbá teszi a megvalósítást, és gyakran olyan alkalmazások helyességére és teljesítményére van hatással, amelyek nem szándékoznak használni azt.
Használja az operációs rendszer által biztosított biztonsági határokat, például virtualizálást, tárolókat vagy felhasználói fiókokat a folyamatok minimális jogosultságkészlettel történő futtatásához.
Biztonsági átláthatóság
A CAS-hoz hasonlóan a biztonsági átláthatóság deklaratív módon választja el a védőfalas kódot a biztonsági szempontból kritikus kódtól, de már nem támogatott biztonsági határként. Ezt a funkciót a Silverlight erősen használja.
A legkevesebb jogosultsággal rendelkező folyamatok futtatásához használja az operációs rendszer által biztosított biztonsági határokat, például virtualizálást, tárolókat vagy felhasználói fiókokat.
System.EnterpriseServices
System.EnterpriseServices (COM+) a .NET 6+ nem támogatja.
Workflow Foundation
A Windows Workflow Foundation (WF) nem támogatott a .NET 6+-ban. Alternatívát a CoreWFalatt talál.
Borravaló
A Windows Communication Foundation (WCF) kiszolgáló a .NET 6+ rendszerben használható a CoreWCF NuGet-csomagok. További információ: CoreWCF 1.0 megjelent.
Egyes tükröződés-kibocsátó API-k nem támogatottak
A .NET 8 és korábbi verziói (Core) nem támogatják a System.Reflection.Emit API-k által létrehozott szerelvények mentését, és a AssemblyBuilder.Save metódus nem érhető el. Ezenkívül a AssemblyBuilderAccess enumerálás alábbi mezői nem érhetők el:
A .NET 9-ben egy PersistedAssemblyBuilder lett implementálva, és a AssemblyBuilder.Save metódus vissza lett adva a tükröződési kibocsátó könyvtárhoz. Az API használatáról további információért lásd a System.Reflection.Emit.PersistedAssemblyBuilder osztályt.
A .NET különböző AssemblyBuilder-implementációival kapcsolatos további információkért lásd System.Reflection.Emit.AssemblyBuilder osztály.
Többmodulos szerelvények betöltése
A több modulból (OutputType=Module MSBuildben) álló szerelvények nem támogatottak a .NET 6+-ban.
Alternatív megoldásként érdemes lehet az egyes modulokat egyetlen szerelvényfájlba egyesíteni.
XSLT-szkriptblokkok
Az XSLT szkriptblokkok csak a .NET-keretrendszerben támogatottak. A .NET 6-os vagy újabb verziói nem támogatottak.