.NET-ordlista

Det primära målet med den här ordlistan är att klargöra innebörden av valda termer och förkortningar som ofta visas i .NET-dokumentationen.

AOT

Kompilator i förväg.

På samma sätt som JIT översätter den här kompilatorn även IL till maskinkod. Till skillnad från JIT-kompilering sker AOT-kompilering innan programmet körs och utförs vanligtvis på en annan dator. Eftersom AOT-verktygskedjor inte kompileras vid körning behöver de inte minimera den tid som läggs på kompilering. Det innebär att de kan ägna mer tid åt att optimera. Eftersom kontexten för AOT är hela programmet utför AOT-kompilatorn även korsmodullänkning och analys av hela program, vilket innebär att alla referenser följs och att en enda körbar fil skapas.

Se CoreRT och .NET Native.

appmodell

Ett arbetsbelastningsspecifikt API. Nedan följer några exempel:

  • ASP.NET
  • ASP.NET Web API
  • Entity Framework (EF)
  • Windows Presentation Foundation (WPF)
  • Windows Communication Foundation (WCF)
  • Windows Workflow Foundation (WF)
  • Windows Forms (WinForms)

ASP.NET

Den ursprungliga ASP.NET implementeringen som levereras med .NET Framework, även kallat ASP.NET 4.x och ASP.NET Framework.

Ibland är ASP.NET ett paraplybegrepp som refererar till både den ursprungliga ASP.NET och ASP.NET Core. Den betydelse som termen bär i en viss instans bestäms av kontexten. Se ASP.NET 4.x när du vill klargöra att du inte använder ASP.NET för att betyda båda implementeringarna.

Se ASP.NET dokumentation.

ASP.NET Core

En plattformsoberoende implementering av ASP.NET med höga prestanda och öppen källkod.

Se ASP.NET Core-dokumentationen.

sammansättning

En .dll eller .exe fil som kan innehålla en samling API:er som kan anropas av program eller andra sammansättningar.

En sammansättning innehåller typer som gränssnitt, klasser, strukturer, uppräkningar och ombud. Sammansättningar i ett projekts bin-mapp kallas ibland binärfiler. Se även bibliotek.

BCL

Basklassbibliotek.

En uppsättning bibliotek som består av namnrymderna System.* (och i begränsad utsträckning Microsoft.*). BCL är ett allmänt ramverk på lägre nivå som programramverk på högre nivå, till exempel ASP.NET Core, bygger vidare på.

Källkoden för BCL för .NET finns i .NET-körningslagringsplatsen. De flesta av dessa BCL-API:er är också tillgängliga i .NET Framework, så du kan se den här källkoden som en förgrening av .NET Framework BCL-källkoden.

Följande termer refererar ofta till samma samling API:er som BCL refererar till:

CLR

Common Language Runtime.

Den exakta innebörden beror på kontexten. Common Language Runtime refererar vanligtvis till körningen av .NET Framework eller körningen av .NET.

En CLR hanterar minnesallokering och hantering. En CLR är också en virtuell dator som inte bara kör appar utan även genererar och kompilerar kod i farten med hjälp av en JIT-kompilator .

CLR-implementeringen för .NET Framework är endast Windows.

CLR-implementeringen för .NET (även kallat Core CLR) skapas från samma kodbas som .NET Framework CLR. Ursprungligen var Core CLR körningen av Silverlight och utformades för att köras på flera plattformar, särskilt Windows och OS X. Det är fortfarande en plattformsoberoende körning, nu inklusive stöd för många Linux-distributioner.

Se även körning.

Core CLR

Common Language Runtime för .NET.

Se CLR.

CoreRT

Till skillnad från CLR är CoreRT inte en virtuell dator, vilket innebär att den inte innehåller de resurser som krävs för att generera och köra kod direkt eftersom den inte innehåller någon JIT. Det inkluderar dock GC och möjligheten för körningstypidentifiering (RTTI) och reflektion. Dess typsystem är dock utformat så att metadata för reflektion inte krävs. Att inte kräva metadata gör det möjligt att ha en AOT-verktygskedja som kan länka bort överflödiga metadata och (ännu viktigare) identifiera kod som appen inte använder. CoreRT är under utveckling.

Se Introduktion till CoreRT och .NET Runtime Lab.

plattformsoberoende

Möjligheten att utveckla och köra ett program som kan användas på flera olika operativsystem, till exempel Linux, Windows och iOS, utan att behöva skriva om specifikt för var och en. Detta möjliggör återanvändning av kod och konsekvens mellan program på olika plattformar.

Se plattform.

Ekosystem

Alla runtime-program, utvecklingsverktyg och communityresurser som används för att skapa och köra program för en viss teknik.

Termen ".NET-ekosystem" skiljer sig från liknande termer som ".NET stack" i dess inkludering av appar och bibliotek från tredje part. Här är ett exempel i en mening:

  • "Motivationen bakom .NET Standard var att etablera större enhetlighet i .NET-ekosystemet."

ramverk

I allmänhet en omfattande samling API:er som underlättar utveckling och distribution av program som baseras på en viss teknik. I den här allmänna meningen är ASP.NET Core och Windows Forms exempel på programramverk. Ordramverket och biblioteket används ofta synonymt.

Ordet "framework" har en annan betydelse i följande termer:

Ibland refererar "framework" till en implementering av .NET.

ramverksbibliotek

Innebörden beror på kontexten. Kan referera till ramverksbiblioteken för .NET, i vilket fall det refererar till samma bibliotek som BCL refererar till. Det kan också referera till ASP.NET Core-ramverksbibliotek , som bygger på BCL och tillhandahåller ytterligare API:er för webbappar.

GC

Skräpinsamling.

Skräpinsamlaren är en implementering av automatisk minneshantering. GC frigör minne som används av objekt som inte längre används.

Se Skräpinsamling.

IL

Mellanliggande språk.

.NET-språk på högre nivå, till exempel C#, kompileras ned till en maskinvaruagnostisk instruktionsuppsättning som kallas mellanliggande språk (IL). IL kallas ibland MSIL (Microsoft IL) eller CIL (Common IL).

JIT

Just-in-time-kompilator.

På samma sätt som AOT översätter den här kompilatorn IL till maskinkod som processorn förstår. Till skillnad från AOT sker JIT-kompilering på begäran och utförs på samma dator som koden måste köras på. Eftersom JIT-kompilering sker under körningen av programmet är kompileringstiden en del av körningstiden. JIT-kompilatorer måste därför balansera tidsåtgången för att optimera koden mot de besparingar som den resulterande koden kan generera. Men en JIT känner till den faktiska maskinvaran och kan befria utvecklare från att behöva skicka olika implementeringar.

implementering av .NET

En implementering av .NET omfattar:

  • En eller flera körningar. Exempel: CLR, CoreRT.
  • Ett klassbibliotek som implementerar en version av .NET Standard och kan innehålla ytterligare API:er. Exempel: BCL:er för .NET Framework och .NET.
  • Du kan också använda ett eller flera programramverk. Exempel: ASP.NET, Windows Forms och WPF ingår i .NET Framework och .NET.
  • Du kan också använda utvecklingsverktyg. Vissa utvecklingsverktyg delas mellan flera implementeringar.

Exempel på .NET-implementeringar:

Mer information finns i .NET-implementeringar.

bibliotek

En samling API:er som kan anropas av appar eller andra bibliotek. Ett .NET-bibliotek består av en eller flera sammansättningar.

Ordbiblioteket och ramverket används ofta synonymt.

Mono

En öppen källkod, plattformsoberoende.NET-implementering som används när en liten körning krävs. Det är körningen som driver Xamarin-program på Android, Mac, iOS, tvOS och watchOS och fokuserar främst på appar som kräver ett litet fotavtryck.

Den stöder alla publicerade .NET Standard-versioner.

Tidigare implementerade Mono det större API:et för .NET Framework och emulerade några av de mest populära funktionerna i Unix. Det används ibland för att köra .NET-program som förlitar sig på dessa funktioner i Unix.

Mono används vanligtvis med en just-in-time-kompilator, men den har också en fullständig statisk kompilator (i förväg kompilering) som används på plattformar som iOS.

Mer information finns i Mono-dokumentationen.

Intern AOT

Ett distributionsläge där appen är fristående och i förväg kompileras till intern kod vid tidpunkten för publiceringen. Interna AOT-appar använder inte en JIT-kompilator vid körning. De kan köras på datorer som inte har .NET-körningen installerad.

Mer information finns i Intern AOT-distribution.

.NET

.NET har två betydelser och den som är avsedd beror på kontexten:

  • .NET kan användas som paraplyterm för .NET Standard och alla .NET-implementeringar och arbetsbelastningar.
  • .NET refererar oftare till den plattformsoberoende implementeringen med höga prestanda med öppen källkod av .NET som tidigare kallades .NET Core. Det kan också kallas .NET 5 (och .NET Core) och senare versioner eller bara .NET 5+.

Den första innebörden är till exempel avsedd i fraser som "implementeringar av .NET". Den andra innebörden är avsedd i namn som .NET SDK och .NET CLI. I avsaknad av kontext som anger att den första innebörden är avsedd, förutsätter du att den andra innebörden är avsedd.

Tidigare versioner av .NET kallas .NET Core 1 till 3.1. Versionsnumren hoppar över 4 och den version som följde 3.1 kallas .NET 5 och släpper "Core" från namnet. Att släppa "Core" gjordes för att betona att den här implementeringen av .NET är den som rekommenderas för all ny utveckling. Att hoppa över version 4 gjordes för att undvika att förvirra den här nyare implementeringen av .NET med den äldre implementeringen som kallas .NET Framework. Den aktuella versionen av .NET Framework är 4.8.1.

.NET är alltid helt versalt, aldrig ".Net".

Se .NET-dokumentationen.

.NET CLI

En plattformsoberoende verktygskedja för utveckling av program och bibliotek för .NET. Kallas även .NET Core CLI.

Se .NET CLI.

.NET Core

Se .NET.

.NET Framework

En implementering av .NET som endast körs i Windows. Innehåller CLR (Common Language Runtime), BCL (Base Class Library) och programramverksbibliotek som ASP.NET, Windows Forms och WPF.

Se .NET Framework-guide.

.NET Native

En kompilatorverktygskedja som producerar intern kod i förväg (AOT), i stället för just-in-time (JIT).

Kompilering sker på utvecklarens dator på liknande sätt som en C++-kompilator och länkare fungerar. Den tar bort oanvänd kod och ägnar mer tid åt att optimera den. Den extraherar kod från bibliotek och sammanfogar dem till den körbara filen. Resultatet är en enskild modul som representerar hela appen.

UWP är det programramverk som stöds av .NET Native.

Se intern .NET-dokumentation.

.NET SDK

En uppsättning bibliotek och verktyg som gör det möjligt för utvecklare att skapa program och bibliotek för .NET. Kallas även .NET Core SDK.

Innehåller .NET CLI för att skapa appar, .NET-bibliotek och körning för att skapa och köra appar samt den körbara dotnet-filen (dotnet.exe) som kör CLI-kommandon och kör program.

Se Översikt över .NET SDK.

.NET Standard

En formell specifikation av .NET-API:er som är tillgängliga i varje .NET-implementering.

.NET Standard-specifikationen kallas ibland för ett bibliotek. Eftersom ett bibliotek innehåller API-implementeringar, inte bara specifikationer (gränssnitt), är det missvisande att kalla .NET Standard för ett "bibliotek".

Se .NET Standard.

NGen

Intern (bild)-generering.

Du kan se den här tekniken som en beständig JIT-kompilator . Den kompilerar vanligtvis kod på den dator där koden körs, men kompilering sker vanligtvis vid installation.

paket

Ett NuGet-paket – eller bara ett paket – är en .zip fil med en eller flera sammansättningar med samma namn tillsammans med ytterligare metadata, till exempel författarens namn.

Den .zip filen har ett .nupkg-tillägg och kan innehålla tillgångar, till exempel .dll filer och .xml filer, för användning med flera målramverk och versioner. När de installeras i en app eller ett bibliotek väljs lämpliga tillgångar baserat på det målramverk som anges av appen eller biblioteket. De tillgångar som definierar gränssnittet finns i mappen ref och de tillgångar som definierar implementeringen finns i mappen lib .

plattform

Ett operativsystem och den maskinvara som körs på, till exempel Windows, macOS, Linux, iOS och Android.

Här är exempel på användning i meningar:

  • ".NET Core är en plattformsoberoende implementering av .NET."
  • "PCL-profiler representerar Microsoft-plattformar, medan .NET Standard är oberoende av plattform."

Äldre .NET-dokumentation använder ibland ".NET-plattformen" för att antingen betyda en implementering av .NET eller .NET-stacken, inklusive alla implementeringar. Båda dessa användningar tenderar att förväxlas med den primära (OS/maskinvaran), så vi försöker undvika dessa användningar.

"Plattform" har en annan betydelse i frasen "utvecklarplattform", som refererar till programvara som tillhandahåller verktyg och bibliotek för att skapa och köra appar. .NET är en plattformsoberoende plattform med öppen källkod som utvecklarplattform för att skapa många olika typer av program.

POCO

En POCO– eller ett vanligt gammalt klass-/CLR-objekt – är en .NET-datastruktur som endast innehåller offentliga egenskaper eller fält. En POCO får inte innehålla några andra medlemmar, till exempel:

  • metoder
  • händelser
  • Delegater

Dessa objekt används främst som dataöverföringsobjekt (DTU: er). En ren POCO ärver inte något annat objekt eller implementerar ett gränssnitt. Det är vanligt att POCO:er används med serialisering.

Runtime

I allmänhet körningsmiljön för ett hanterat program. Operativsystemet är en del av körningsmiljön men ingår inte i .NET-körningen. Här är några exempel på .NET-runtimes i den här bemärkelsen:

  • Common Language Runtime (CLR)
  • .NET Native (för UWP)
  • Mono-körning

Ordet "runtime" har en annan betydelse i vissa sammanhang:

  • .NET-körning på nedladdningssidan för .NET 5.

    Du kan ladda ned .NET-körningen eller andra körningar, till exempel ASP.NET Core-körningen. En körning i den här användningen är den uppsättning komponenter som måste installeras på en dator för att köra en ramverksberoende app på datorn. .NET-körningen innehåller CLR och det delade .NET-ramverket, som tillhandahåller BCL.

  • .NET-körningsbibliotek

    Refererar till samma bibliotek som BCL refererar till. Andra körningar, till exempel ASP.NET Core-körning, har dock olika delade ramverk, med ytterligare bibliotek som bygger på BCL.

  • Runtime Identifier (RID).

    Körning innebär här os-plattformen och CPU-arkitekturen som en .NET-app körs på, till exempel: linux-x64.

  • Ibland används "runtime" i betydelsen av en implementering av .NET, som i följande exempel:

    • "De olika .NET-körningarna implementerar specifika versioner av .NET Standard. ... Varje .NET-körningsversion annonserar den högsta .NET Standard-versionen som den stöder ..."
    • "Bibliotek som är avsedda att köras på flera körningar bör rikta in sig på det här ramverket." (med hänvisning till .NET Standard)

delat ramverk

Innebörden beror på kontexten. Det delade .NET-ramverket refererar till de bibliotek som ingår i .NET-körningen. I det här fallet refererar det delade ramverket för .NET till samma bibliotek som BCL refererar till.

Det finns andra delade ramverk. Det delade ASP.NET Core-ramverket refererar till de bibliotek som ingår i ASP.NET Core-körningen, som innehåller BCL plus ytterligare API:er för användning av webbappar.

För ramverksberoende appar består det delade ramverket av bibliotek som finns i sammansättningar som är installerade i en mapp på datorn som kör appen. För fristående appar ingår de delade ramverkssammansättningarna i appen.

Mer information finns i Djupdykning i .NET Core-primitiver, del 2: det delade ramverket.

Stack

En uppsättning programmeringstekniker som används tillsammans för att skapa och köra program.

".NET-stacken" refererar till .NET Standard och alla .NET-implementeringar. Frasen "en .NET-stack" kan referera till en implementering av .NET.

målramverk

Samlingen med API:er som en .NET-app eller ett bibliotek förlitar sig på.

En app eller ett bibliotek kan rikta in sig på en version av .NET Standard (till exempel .NET Standard 2.0), som är en specifikation för en standardiserad uppsättning API:er för alla .NET-implementeringar. En app eller ett bibliotek kan också rikta in sig på en version av en specifik .NET-implementering, i vilket fall den får åtkomst till implementeringsspecifika API:er. Till exempel får en app som riktar sig mot Xamarin.iOS åtkomst till Xamarin-tillhandahållna iOS API-omslutningar.

För vissa målramverk (till exempel .NET Framework) definieras de tillgängliga API:erna av de sammansättningar som en .NET-implementering installerar på ett system, vilket kan innehålla API:er för programramverk (till exempel ASP.NET, WinForms). För paketbaserade målramverk definieras ramverks-API:erna av paketen som är installerade i appen eller biblioteket.

Se Målramverk.

TFM

Målramverksmoniker.

Ett standardiserat tokenformat för att ange målramverket för en .NET-app eller ett bibliotek. Målramverk refereras vanligtvis med ett kort namn, till exempel net462. Långforms-TFM:er (till exempel .NETFramework,Version=4.6.2) finns men används vanligtvis inte för att ange ett målramverk.

Se Målramverk.

UWP

Universell Windows-plattform.

En implementering av .NET som används för att skapa pekaktiverade Windows-program och programvara för Sakernas Internet (IoT). Den är utformad för att förena de olika typer av enheter som du kanske vill rikta in dig på, inklusive datorer, surfplattor, telefoner och till och med Xbox. UWP tillhandahåller många tjänster, till exempel en centraliserad appbutik, en körningsmiljö (AppContainer) och en uppsättning Windows-API:er som ska användas i stället för Win32 (WinRT). Appar kan skrivas i C++, C#, Visual Basic och JavaScript. När du använder C# och Visual Basic tillhandahålls .NET-API:erna av .NET.

workload

En typ av app som någon skapar. Mer allmän än appmodell. Längst upp på varje .NET-dokumentationssida, inklusive den här, finns till exempel en listruta för arbetsbelastningar, som gör att du kan växla till dokumentation för webb, mobil, moln, skrivbord och Maskininlärning och data.

I vissa sammanhang refererar arbetsbelastningen till en samling Visual Studio-funktioner som du kan välja att installera för att stödja en viss typ av app. Ett exempel finns i Välj en arbetsbelastning.

Se även