Programkompatibilitet i .NET Framework
Kompatibilitet är ett viktigt mål för varje .NET Framework-version. Kompatibilitet säkerställer att varje version är additiv, så att tidigare versioner fortsätter att fungera. Å andra sidan kan ändringar i tidigare funktioner (till exempel för att förbättra prestanda, åtgärda säkerhetsproblem eller åtgärda buggar) orsaka kompatibilitetsproblem i befintlig kod eller befintliga program som körs under en senare version.
Varje app riktar in sig på en specifik version av .NET Framework genom att:
- Definiera ett målramverk i Visual Studio.
- Ange målramverket i en projektfil.
- Tillämpa en TargetFrameworkAttribute på källkoden.
När du migrerar från en version av .NET Framework till en annan finns det två typer av ändringar att tänka på:
Körningsändringar
Körningsproblem är de som uppstår när en ny körning placeras på en dator och en apps beteende ändras. När du kör på en nyare version än vad som var mål använder .NET Framework udda beteende för att efterlikna den äldre målversionen. Appen körs på den nyare versionen men fungerar som om den körs på den äldre versionen. Många av kompatibilitetsproblemen mellan versioner av .NET Framework minimeras genom den här udda modellen. Om en binär fil till exempel kompilerats för .NET Framework 4.0 men körs på en dator med .NET Framework 4.5 eller senare körs den i .NET Framework 4.0-kompatibilitetsläge. Det innebär att många av ändringarna i den senare versionen inte påverkar binärfilen.
Den version av .NET Framework som ett program riktar sig mot bestäms av målversionen av inmatningssammansättningen för programdomänen som koden körs i. Alla ytterligare sammansättningar som läses in i programmets domänmål den versionen. När det till exempel gäller en körbar fil är den version som de körbara målen är kompatibilitetsläget alla sammansättningar i programdomänen under.
Ommåla ändringar
Omtargeting-ändringar är de som uppstår när en sammansättning omkompileras för att rikta in sig på en nyare version. Att rikta in sig på en nyare version innebär att sammansättningen väljer de nya funktionerna samt potentiella kompatibilitetsproblem för gamla funktioner.
Påverkansklassificering
I artiklarna som beskriver körnings- och omjusteringsändringar, till exempel Ommåla ändringar för migrering till .NET Framework 4.8.x, klassificeras enskilda objekt efter förväntad effekt enligt följande:
Stora
En betydande ändring som påverkar ett stort antal appar eller som kräver betydande ändringar av koden.
Mindre
En ändring som påverkar ett litet antal appar eller som kräver mindre ändringar av koden.
Kantfall
En ändring som påverkar appar under mycket specifika scenarier som inte är vanliga.
Transparent
En ändring som inte har någon märkbar effekt på appens utvecklare eller användare. Appen bör inte kräva ändringar på grund av den här ändringen.