Dela via


Introduktion till .NET

.NET är en kostnadsfri plattformsoberoende utvecklarplattform med öppen källkod för att skapa många typer av program. Den kan köra program skrivna på flera språk, där C# är det mest populära. Den förlitar sig på en högpresterande runtime som används i produktionsmiljö av många storskaliga appar.

Information om hur du laddar ned .NET och börjar skriva din första app finns i Komma igång.

.NET-plattformen har utformats för att leverera produktivitet, prestanda, säkerhet och tillförlitlighet. Det ger automatisk minneshantering via en skräpinsamlare (GC). Det är typsäkert och minnessäkert genom att använda en GC och strikta språkkompilatorer. Den erbjuder samtidighet via async/await och Task primitiver. Den innehåller en stor uppsättning bibliotek som har breda funktioner och har optimerats för prestanda på flera operativsystem och chiparkitekturer.

.NET har följande designpunkter:

  • Produktiviteten är fullstackad med körning, bibliotek, språk och verktyg som alla bidrar till utvecklarens användarupplevelse.
  • Säker kod är den primära beräkningsmodellen, medan osäker kod möjliggör ytterligare manuella optimeringar.
  • Både statisk och dynamisk kod stöds, vilket möjliggör en bred uppsättning distinkta scenarier.
  • Interop för originalkod och maskinvarufunktioner har låga kostnader och hög precision (åtkomst till råa API:er och instruktioner).
  • Koden är portabel mellan plattformar (OPERATIVSYSTEM och chiparkitektur), medan plattformsmål möjliggör specialisering och optimering.
  • Anpassningsbarhet mellan programmeringsdomäner (moln, klient, spel) aktiveras med specialiserade implementeringar av den allmänna programmeringsmodellen.
  • Branschstandarder som OpenTelemetry och gRPC gynnas framför skräddarsydda lösningar.

.NET underhålls tillsammans av Microsoft och en global community. Regelbundna uppdateringar säkerställer att användarna distribuerar säkra och tillförlitliga program till produktionsmiljöer.

Komponenter

.NET innehåller följande komponenter:

  • Runtime – kör programkod.
  • Bibliotek – tillhandahåller verktygsfunktioner som JSON-parsning.
  • Compiler – kompilerar C# (och andra språk) källkod till körbar kod (runtime).
  • SDK och andra verktyg – möjliggör utveckling och övervakning av appar med moderna arbetsflöden.
  • Appstaplar – till exempel ASP.NET Core och Windows Forms, som gör det möjligt att skriva appar.

Körtiden, biblioteken och språken är grundpelarna i .NET-stacken. Komponenter på högre nivå, till exempel .NET-verktyg och appstaplar, som ASP.NET Core, bygger ovanpå dessa pelare. C# är det primära programmeringsspråket för .NET och mycket av .NET är skrivet i C#.

C# är objektorienterat och körtidsmiljön stöder objektorientering. C# kräver sophantering och körsystemet tillhandahåller en spårningssäker sophanterare. Biblioteken (och även appstacken) formar dessa funktioner till begrepp och objektmodeller som gör det möjligt för utvecklare att produktivt skriva algoritmer i intuitiva arbetsflöden.

Kärnbiblioteken exponerar tusentals typer, varav många integreras med och driver C#-språket. Med C#- foreach instruktionen kan du till exempel räkna upp godtyckliga samlingar. Mönsterbaserade optimeringar möjliggör att samlingar som List<T> kan bearbetas enkelt och effektivt. Du kan lämna resurshantering till skräpinsamling, men snabb rensning är möjlig via IDisposable och direkt språkstöd i instruktionen using.

Stöd för att göra flera saker samtidigt är grundläggande för praktiskt taget alla arbetsbelastningar. Det kan vara klientprogram som utför bakgrundsbearbetning samtidigt som användargränssnittet hålls dynamiskt, tjänster som hanterar tusentals samtidiga begäranden, enheter som svarar på en mängd samtidiga stimuli eller högdrivna datorer som parallelliserar bearbetningen av beräkningsintensiva åtgärder. Asynkront programmeringsstöd är en förstklassig funktion i C#-programmeringsspråket, som innehåller nyckelorden async och await som gör det enkelt att skriva och skriva asynkrona åtgärder samtidigt som du får alla fördelar med alla kontrollflödeskonstruktioner som språket har att erbjuda.

Typsystemet erbjuder betydande bredd, tillgodoser i viss mån säkerhet, beskrivning, dynamik och inbyggd interoperabilitet. Först och främst möjliggör typsystemet en objektorienterad programmeringsmodell. Den innehåller typer, arv (enkel basklass), gränssnitt (inklusive standardmetodimplementeringar) och sändning av virtuella metoder för att ge ett förnuftigt beteende för all typskiktning som objektorientering tillåter. Generiska typer är allmänt förekommande och låter dig specialisera klasser till en eller flera typer.

.NET runtime tillhandahåller automatisk minneshantering via en sophanterare. För alla språk är dess minneshanteringsmodell sannolikt den mest definierande egenskapen. Detta gäller för .NET-språk. .NET har en självjusterande spårnings-GC. Det syftar till att leverera minimal användning i generella fall med möjlighet till konfiguration för mer extrema arbetsuppgifter. Den nuvarande GC är resultatet av många års investeringar och lärdomar från en mängd olika arbetsbelastningar.

Värdetyper och stackallokerade minnesblock ger mer direkt kontroll på låg nivå över data och inbyggt plattformsinterop, till skillnad från . NET:s GC-hanterade typer. De flesta primitiva typerna i .NET, till exempel heltalstyper, är värdetyper och användare kan definiera sina egna typer med liknande semantik. Värdetyper stöds fullt ut via . NET:s generiska system, vilket innebär att generiska typer som List<T> kan tillhandahålla platta minnesrepresentationer utan extra kostnad för värdetypssamlingar.

Reflektion är ett "program som data"-paradigm som gör att en del av ett program dynamiskt kan fråga och anropa en annan, när det gäller sammansättningar, typer och medlemmar. Det är särskilt användbart för sent bundna programmeringsmodeller och verktyg.

Undantag är den primära felhanteringsmodellen i .NET. Undantag har fördelen att felinformation inte behöver representeras i metodsignaturer eller hanteras av varje metod. Korrekt undantagshantering är viktigt för programmets tillförlitlighet. För att förhindra att appen kraschar kan du avsiktligt hantera förväntade undantag i koden. En kraschad app är mer tillförlitlig och kan diagnostiseras än en app med odefinierat beteende.

Appstackar, som ASP.NET Core och Windows Forms, bygger vidare på och drar nytta av bibliotek, språk och körning på låg nivå. Appstaplarna definierar hur appar konstrueras och deras körningslivscykel.

SDK och andra verktyg möjliggör en modern utvecklarupplevelse, både på ett utvecklarskrivbord och för kontinuerlig integrering (CI). Den moderna utvecklarupplevelsen omfattar att kunna skapa, analysera och testa kod. .NET-projekt kan ofta skapas med ett enda dotnet build kommando som orkestrerar återställning av NuGet-paket och skapar beroenden.

NuGet är pakethanteraren för .NET. Den innehåller hundratusentals paket som implementerar funktioner i många scenarier. De flesta appar förlitar sig på NuGet-paket för vissa funktioner. NuGet-galleriet underhålls av Microsoft.

Kostnadsfri och öppen källkod

.NET är kostnadsfri, öppen källkod och är ett .NET Foundation-projekt . .NET underhålls av Microsoft och communityn på GitHub på flera lagringsplatser.

.NET-källa och binärfiler licensieras med MIT-licensen. Ytterligare licenser gäller för Windows.

Stöd

.NET stöds av flera organisationer som arbetar för att säkerställa att .NET kan köras på flera operativsystem och hållas uppdaterat. Den kan användas i Arm64-, x64- och x86-arkitekturer.

Nya versioner av .NET släpps årligen i november, enligt våra versioner och supportprinciper. Den uppdateras varje månad på Patch Tuesday (andra tisdagen), vanligtvis kl. 10.00 Stillahavstid.

.NET-ekosystem

Det finns flera varianter av .NET som var och en stöder en annan typ av app. Orsaken till flera varianter är delvis historisk, delvis teknisk.

.NET-implementeringar:

  • .NET (Core) – Modern .NET. En plattformsoberoende och öppen källkodsimplementering av .NET, omdefinierad för molnåldern samtidigt som den är betydligt kompatibel. Den utvecklas och stöds aktivt.
  • .NET Framework – .NET i originalformat. Det ger åtkomst till de breda funktionerna i Windows och Windows Server. Det stöds aktivt och underhålls.
  • Mono – Den ursprungliga communityn och .NET med öppen källkod. En plattformsoberoende implementering av .NET Framework.

Nästa steg