Inleiding tot .NET
.NET is een gratis, platformoverschrijdend opensource-ontwikkelaarsplatform voor het bouwen van allerlei soorten toepassingen. Het kan programma's uitvoeren die in meerdere talen zijn geschreven, waarbij C# het populairst is. Het is afhankelijk van een runtime met hoge prestaties die wordt gebruikt in productie door veel grootschalige apps.
Zie Aan de slag voor meer informatie over het downloaden van .NET en het schrijven van uw eerste app.
Het .NET-platform is ontworpen om productiviteit, prestaties, beveiliging en betrouwbaarheid te leveren. Het biedt automatisch geheugenbeheer via een garbagecollector (GC). Het is type-veilig en geheugenveilig, vanwege het gebruik van een GC en strikte taalcompilers. Het biedt gelijktijdigheid viaawait
async
/en Task
primitieven. Het bevat een grote set bibliotheken met een brede functionaliteit en die zijn geoptimaliseerd voor prestaties op meerdere besturingssystemen en chiparchitecturen.
.NET heeft de volgende ontwerppunten:
- Productiviteit is volledig gestapeld met runtime, bibliotheken, taal en hulpprogramma's die allemaal bijdragen aan de gebruikerservaring van ontwikkelaars.
- Veilige code is het primaire rekenmodel, terwijl onveilige code aanvullende handmatige optimalisaties mogelijk maakt.
- Statische en dynamische code worden beide ondersteund, waardoor een brede set afzonderlijke scenario's mogelijk is.
- Systeemeigen code-interoperabiliteit en hardwareintrinsiek zijn lage kosten en hoogwaardige (onbewerkte API en instructietoegang).
- Code is overdraagbaar op platforms (OS- en chiparchitectuur), terwijl platform gericht is op specialisatie en optimalisatie.
- Aanpassingsvermogen tussen programmeerdomeinen (cloud, client, gaming) is ingeschakeld met gespecialiseerde implementaties van het programmeermodel voor algemeen gebruik.
- Industriestandaarden zoals OpenTelemetry en gRPC zijn gunstig voor op maat gemaakte oplossingen.
.NET wordt onderhouden door Microsoft en de community. Het wordt regelmatig bijgewerkt om ervoor te zorgen dat gebruikers veilige en betrouwbare toepassingen implementeren in productie.
Onderdelen
.NET bevat de volgende onderdelen:
- Runtime: voert toepassingscode uit.
- Bibliotheken: biedt functionaliteit voor hulpprogramma's zoals JSON-parsering.
- Compiler: compileert C# (en andere talen) broncode in uitvoerbare code (runtime).
- SDK en andere hulpprogramma's: hiermee kunt u apps bouwen en bewaken met moderne werkstromen.
- App-stacks, zoals ASP.NET Core en Windows Forms, waarmee apps kunnen worden geschreven.
De runtime, bibliotheken en talen zijn de pijlers van de .NET-stack. Onderdelen op een hoger niveau, zoals .NET-hulpprogramma's en app-stacks, zoals ASP.NET Core, bouwen voort op deze pijlers. C# is de primaire programmeertaal voor .NET en veel van .NET is geschreven in C#.
C# is objectgeoriënteerd en de runtime ondersteunt objectstand. C# vereist garbagecollection en de runtime biedt een tracering garbagecollector. De bibliotheken (en ook de app-stacks) vormen deze mogelijkheden in concepten en objectmodellen waarmee ontwikkelaars productief algoritmen kunnen schrijven in intuïtieve werkstromen.
De kernbibliotheken maken duizenden typen beschikbaar, waarvan velen integreren met de C#-taal en deze brandstof geven. Met de instructie van foreach
C# kunt u bijvoorbeeld willekeurige verzamelingen inventariseren. Met op patronen gebaseerde optimalisaties kunnen verzamelingen List<T>
eenvoudig en efficiënt worden verwerkt. U kunt resourcebeheer up-to-garbagecollection laten, maar het opschonen is mogelijk via IDisposable
en directe taalondersteuning in de using
instructie.
Ondersteuning voor het tegelijkertijd uitvoeren van meerdere dingen is fundamenteel voor vrijwel alle workloads. Dat kunnen clienttoepassingen zijn die achtergrondverwerking uitvoeren terwijl de gebruikersinterface responsief blijft, services die vele duizenden gelijktijdige aanvragen verwerken, apparaten reageren op een groot aantal gelijktijdige prikkels of machines met hoge kracht die de verwerking van rekenintensieve bewerkingen parallelliseren. Asynchrone programmeerondersteuning is een eersteklas functie van de C#-programmeertaal, die de async
trefwoorden await
en trefwoorden biedt waarmee u eenvoudig asynchrone bewerkingen kunt schrijven en opstellen terwijl u nog steeds profiteert van de volledige voordelen van alle besturingsstroomconstructies die de taal te bieden heeft.
Het typesysteem biedt een aanzienlijke breedte, catering enigszins gelijk aan veiligheid, beschrijvendheid, dynamiek en systeemeigen interop. In de eerste plaats maakt het typesysteem een objectgeoriënteerd programmeermodel mogelijk. Het bevat typen, overname van (één basisklasse), interfaces (inclusief standaardmethode-implementaties) en virtuele methodeverzending om een verstandig gedrag te bieden voor alle typelagen die de objectstand toestaat. Algemene typen zijn een algemene functie waarmee u klassen kunt specialiseren voor een of meer typen.
De .NET-runtime biedt automatisch geheugenbeheer via een garbagecollector. Voor elke taal is het model voor geheugenbeheer waarschijnlijk het meest gedefinieerde kenmerk. Dit geldt voor .NET-talen. .NET heeft een zelfafstemming, tracering van GC. Het is erop gericht om 'hands off'-bewerking te leveren in het algemene geval en biedt configuratieopties voor extremere werkbelastingen. De huidige GC is het resultaat van vele jaren investering en leer van een groot aantal workloads.
Waardetypen en stack-toegewezen geheugenblokken bieden meer directe controle op laag niveau over gegevens en systeemeigen platforminteroperabiliteit, in tegenstelling tot . Door GC beheerde typen van NET. De meeste primitieve typen in .NET, zoals gehele getallen, zijn waardetypen en gebruikers kunnen hun eigen typen definiëren met vergelijkbare semantiek. Waardetypen worden volledig ondersteund via . Het algemene systeem van NET, wat betekent dat algemene typen zoals List<T>
platte, geen-overhead geheugenweergaven van waardetypeverzamelingen kunnen bieden.
Weerspiegeling is een paradigma 'programma's als gegevens', waardoor een deel van een programma dynamisch query's kan uitvoeren en een andere kan aanroepen, wat betreft assembly's, typen en leden. Het is vooral handig voor laat gebonden programmeermodellen en hulpprogramma's.
Uitzonderingen zijn het primaire model voor foutafhandeling in .NET. Uitzonderingen hebben het voordeel dat foutinformatie niet hoeft te worden weergegeven in methodehandtekeningen of worden verwerkt door elke methode. De juiste afhandeling van uitzonderingen is essentieel voor de betrouwbaarheid van toepassingen. Als u wilt voorkomen dat uw app vastloopt, kunt u opzettelijk verwachte uitzonderingen in uw code afhandelen. Een vastgelopen app is betrouwbaarder en diagnosticeerbaar dan een app met niet-gedefinieerd gedrag.
App-stacks, zoals ASP.NET Core en Windows Forms, bouwen voort op en profiteren van bibliotheken op laag niveau, taal en runtime. De app-stacks definiëren de manier waarop apps worden samengesteld en hun levenscyclus van uitvoering.
De SDK en andere hulpprogramma's maken een moderne ontwikkelaarservaring mogelijk, zowel op een desktop voor ontwikkelaars als voor continue integratie (CI). De moderne ontwikkelaarservaring omvat het bouwen, analyseren en testen van code. .NET-projecten kunnen vaak worden gebouwd met één dotnet build
opdracht, waarmee NuGet-pakketten worden hersteld en afhankelijkheden worden gebouwd.
NuGet is pakketbeheerder voor .NET. Het bevat honderdduizenden pakketten die functionaliteit implementeren voor veel scenario's. Een meerderheid van de apps is afhankelijk van NuGet-pakketten voor bepaalde functionaliteit. De NuGet Gallery wordt onderhouden door Microsoft.
Gratis en open source
.NET is gratis, open source en is een .NET Foundation-project . .NET wordt onderhouden door Microsoft en de community op GitHub in verschillende opslagplaatsen.
.NET-bron en binaire bestanden zijn gelicentieerd met de MIT-licentie. Extra licenties zijn van toepassing op Windows.
Ondersteuning
.NET wordt ondersteund door meerdere organisaties die ervoor zorgen dat .NET op meerdere besturingssystemen kan worden uitgevoerd en up-to-date blijft. Het kan worden gebruikt in Arm64-, x64- en x86-architecturen.
Nieuwe versies van .NET worden jaarlijks uitgebracht in november, volgens onze releases en ondersteuningsbeleid. Het wordt maandelijks bijgewerkt op Patch dinsdag (tweede dinsdag), meestal om 10:00 Pacific time.
.NET-ecosysteem
Er zijn meerdere varianten van .NET, die elk een ander type app ondersteunen. De reden voor meerdere varianten is onderdeel historisch, deels technisch.
.NET-implementaties:
- .NET Framework : het oorspronkelijke .NET. Het biedt toegang tot de brede mogelijkheden van Windows en Windows Server. Het wordt actief ondersteund, in onderhoud.
- Mono - De oorspronkelijke community en open source .NET. Een platformoverschrijdende implementatie van .NET Framework. Actief ondersteund voor Android, iOS en WebAssembly.
- .NET (Core) -- Modern .NET. Een platformoverschrijdende en opensource-implementatie van .NET, die opnieuw wordt gebruikt voor de cloudleeftijd, terwijl deze aanzienlijk compatibel blijft met .NET Framework. Actief ondersteund voor Linux, macOS en Windows.