Share via


Overzicht van .NET Framework

.NET Framework is een technologie die ondersteuning biedt voor het bouwen en uitvoeren van Windows-apps en -webservices. .NET Framework is ontworpen om te voldoen aan de volgende doelstellingen:

  • Geef een consistente, objectgeoriënteerde programmeeromgeving op of objectcode lokaal wordt opgeslagen en uitgevoerd, lokaal wordt uitgevoerd, maar op internet gedistribueerd of extern wordt uitgevoerd.

  • Geef een omgeving voor het uitvoeren van code op die:

    • Minimaliseert software-implementatie- en versiebeheerconflicten.

    • Bevordert het veilig uitvoeren van code, inclusief code die is gemaakt door een onbekende of semi-vertrouwde derde partij.

    • Elimineert de prestatieproblemen van gescripte of geïnterpreteerde omgevingen.

  • Maak de ontwikkelaarservaring consistent in veel verschillende typen apps, zoals Windows-apps en web-apps.

  • Bouw alle communicatie over industriestandaarden om ervoor te zorgen dat code op basis van .NET Framework kan worden geïntegreerd met andere code.

Notitie

.NET Framework wordt maandelijks onderhouden met oplossingen voor beveiligings- en betrouwbaarheidsfouten. .NET Framework wordt nog steeds opgenomen in Windows, zonder plannen om het te verwijderen. U hoeft uw .NET Framework-apps niet te migreren, maar voor nieuwe ontwikkeling gebruikt u .NET 6 of hoger.

.NET Framework bestaat uit de common language runtime (CLR) en de .NET Framework-klassebibliotheek. De algemene taalruntime vormt de basis van .NET Framework. U kunt de runtime beschouwen als een agent die code tijdens de uitvoering beheert en kernservices biedt, zoals geheugenbeheer, threadbeheer en externe communicatie, terwijl ook strikte typeveiligheid en andere vormen van codenauwkeurigheid worden afgedwongen die beveiliging en robuustheid bevorderen. In feite is het concept codebeheer een fundamenteel principe van de runtime. Code die is gericht op de runtime, wordt beheerde code genoemd, terwijl code die niet is gericht op de runtime, ook wel onbeheerde code wordt genoemd. De klassebibliotheek is een uitgebreide, objectgeoriënteerde verzameling herbruikbare typen die u gebruikt om apps te ontwikkelen, variërend van traditionele opdrachtregel- of grafische gebruikersinterface-apps (GUI) tot apps op basis van de nieuwste innovaties van ASP.NET, zoals webformulieren en XML-webservices.

.NET Framework kan worden gehost door niet-beheerde onderdelen die de algemene taalruntime in hun processen laden en de uitvoering van beheerde code initiëren, waardoor een softwareomgeving wordt gemaakt die gebruikmaakt van zowel beheerde als onbeheerde functies. .NET Framework biedt niet alleen verschillende runtimehosts, maar ondersteunt ook de ontwikkeling van runtimehosts van derden.

ASP.NET bijvoorbeeld als host fungeert voor de runtime om een schaalbare omgeving aan de serverzijde te bieden voor beheerde code. ASP.NET werkt rechtstreeks met de runtime om ASP.NET apps en XML-webservices in te schakelen, die beide verderop in dit artikel worden besproken.

In de volgende afbeelding ziet u de relatie tussen de algemene taalruntime en de klassebibliotheek voor uw apps en het algehele systeem. In de afbeelding ziet u ook hoe beheerde code werkt binnen een grotere architectuur.

Screenshot that shows how managed code operates within a larger architecture.

In de volgende secties worden de belangrijkste functies van .NET Framework uitgebreider beschreven.

Functies van de algemene taalruntime

De algemene taalruntime beheert geheugen, threaduitvoering, code-uitvoering, verificatie van codeveiligheid, compilatie en andere systeemservices. Deze functies zijn intrinsiek voor de beheerde code die wordt uitgevoerd op de algemene taalruntime.

Met betrekking tot beveiliging worden beheerde onderdelen verschillende mate van vertrouwen toegekend, afhankelijk van een aantal factoren die hun oorsprong bevatten (zoals internet, bedrijfsnetwerk of lokale computer). Dit betekent dat een beheerd onderdeel al dan niet bestandstoegangsbewerkingen, bewerkingen voor registertoegang of andere gevoelige functies kan uitvoeren, zelfs niet als het wordt gebruikt in dezelfde actieve app.

De runtime dwingt ook de robuustheid van code af door een strikte infrastructuur voor type- en codecontrole te implementeren, het common type system (CTS) genoemd. De CTS zorgt ervoor dat alle beheerde code zelfbeschrijfd is. De verschillende microsoft- en externe taalcompilers genereren beheerde code die voldoet aan de CTS. Dit betekent dat beheerde code andere beheerde typen en exemplaren kan gebruiken, terwijl de kwaliteit van het type en de veiligheid van het type strikt worden afgedwongen.

Bovendien elimineert de beheerde omgeving van de runtime veel veelvoorkomende softwareproblemen. De runtime verwerkt bijvoorbeeld automatisch de objectindeling en beheert verwijzingen naar objecten, waardoor ze worden vrijgegeven wanneer ze niet meer worden gebruikt. Met dit automatische geheugenbeheer worden de twee meest voorkomende app-fouten, geheugenlekken en ongeldige geheugenverwijzingen opgelost.

De runtime versnelt ook de productiviteit van ontwikkelaars. Programmeurs schrijven bijvoorbeeld apps in hun ontwikkeltaal naar keuze, maar maken optimaal gebruik van de runtime, de klassebibliotheek en onderdelen die door andere ontwikkelaars in andere talen zijn geschreven. Elke leverancier van compilers die ervoor kiest om de runtime te targeten, kan dit doen. Taalcompilers die zich richten op .NET Framework maken de functies van .NET Framework beschikbaar voor bestaande code die in die taal is geschreven, waardoor het migratieproces voor bestaande apps aanzienlijk wordt versoepeld.

Hoewel de runtime is ontworpen voor de software van de toekomst, ondersteunt het ook software van vandaag en gisteren. Dankzij de interoperabiliteit tussen beheerde en onbeheerde code kunnen ontwikkelaars de benodigde COM-onderdelen en DLL's blijven gebruiken.

De runtime is ontworpen om de prestaties te verbeteren. Hoewel de algemene taalruntime veel standaardruntimeservices biedt, wordt beheerde code nooit geïnterpreteerd. Met een functie met de naam Just-In-Time (JIT) kan alle beheerde code worden uitgevoerd in de systeemeigen computertaal van het systeem waarop deze wordt uitgevoerd. Ondertussen verwijdert de geheugenbeheerder de mogelijkheden van gefragmenteerd geheugen en verhoogt de locatie van het geheugen om de prestaties verder te verbeteren.

Ten slotte kan de runtime worden gehost door krachtige, server-side apps, zoals Microsoft SQL Server en Internet Information Services (IIS). Met deze infrastructuur kunt u beheerde code gebruiken om uw bedrijfslogica te schrijven, terwijl u nog steeds profiteert van de superieure prestaties van de beste bedrijfsservers van de branche die runtimehosting ondersteunen.

.NET Framework-klassebibliotheek

De .NET Framework-klassebibliotheek is een verzameling herbruikbare typen die nauw zijn geïntegreerd met de algemene taalruntime. De klassebibliotheek is objectgeoriënteerd en biedt typen waaruit uw eigen beheerde code functionaliteit afleidt. Dit maakt niet alleen de .NET Framework-typen eenvoudig te gebruiken, maar vermindert ook de tijd die is gekoppeld aan het leren van nieuwe functies van .NET Framework. Daarnaast kunnen onderdelen van derden naadloos worden geïntegreerd met klassen in .NET Framework.

De .NET Framework-verzamelingsklassen implementeren bijvoorbeeld een set interfaces voor het ontwikkelen van uw eigen verzamelingsklassen. Uw verzamelingsklassen combineren naadloos met de klassen in .NET Framework.

Zoals u zou verwachten van een objectgeoriënteerde klassebibliotheek, kunt u met de .NET Framework-typen een reeks algemene programmeertaken uitvoeren, waaronder tekenreeksbeheer, gegevensverzameling, databaseconnectiviteit en bestandstoegang. Naast deze algemene taken bevat de klassebibliotheek typen die ondersteuning bieden voor verschillende gespecialiseerde ontwikkelscenario's. U kunt .NET Framework gebruiken om de volgende typen apps en services te ontwikkelen:

De Windows Forms-klassen zijn een uitgebreide set herbruikbare typen die de ontwikkeling van windows-GUI's enorm vereenvoudigen. Als u een ASP.NET webformulier-app schrijft, kunt u de webformulierklassen gebruiken.

Zie ook