.NET Framework se komponente
13 Februarie 2002; 19 jaar gelede (2002-02-13)
4.6.1 (4.6.01055.00/ 30 November 2015; 5 jaar gelede (2015-11-30)
Windows 98 of later, Windows NT 4.0 of later
Die voorafgeskrewe oplossings wat deel vorm van die raamwerk se Basis klasversameling dek 'n wye verskeidenheid programmeerbehoeftes op gebiede wat onder ander insluit: gebruikerskoppelvlak, datatoegang, Databasisverbinding, kriptografie, webtoepassing-ontwikkeling, numeriese algoritmes en netwerkkommunikasie. Die klasversameling word deur programmeerders saam met hulle eie bronkode gebruik om toepassings te skep.
Ontwerpsdoelwitte en hoofkenmerkeWysig
Common Runtime Engine - Programmeertale op die .NET Framework vertaal na 'n intermediêre taal, wat bekend staan as die Common Intermediate Language. in Microsoft se implementering word hierdie taal nie geïnterpreteer nie maar eerder vertaal op 'n wyse wat bekend staan as just-in-time vertaling na moederkode (native code). Die kombinasie van hierdie begrippe staan bekend as 'n Common Language Infrastructure (CLI) spesifikasie; Microsoft se implementering van die CLI staan bekend as die Common Language Runtime (CLR).
Rekenaartaalonafhanklikheid - Die .NET Framework stel 'n Common Type System of CTS bekend. Die CTS spesifikasie definieer alle moontlike datatipes en programmeerkonstrukte wat deur die CLR ondersteun word en hoe hulle mag of nie met mekaar mag interaksie hê nie. Vanweë hierdie kenmerk ondersteun die .NET Framework ontwikkeling in 'n verskeidenheid rekenaartale.
Basisklasversameling - Die Base Class Library (BCL) deel van die Framework Class Library (FCL) is 'n versameling van funksionaliteit wat aan alle tale beskikbaar gemaak word wat die .NET Framework gebruik. Die BCL verskaf klasse wat 'n aantal algemene funksies verpak insluitende die lees en skryf van rekenaarlêers, die verbeelding van grafika, databasis-interaksies en die manipulasie van XML-dokumente.
Vereenvoudigde Ontplooiïng - Die installeer van rekenaarprogrammatuur moet versigtig bestuur word om te verseker dat dit nie inmeng met voorheen geïnstalleerde sagteware nie en dat dit voldoen aan die toenemende streng sekuriteitsvereistes. Die .NET Framework sluit ontwerpskenmerke en hulpmiddele in wat help om hierdie vereistes aan te spreek.
Sekuriteit - Die ontwerp is bedoel om sommige van die kwesbaarhede aan te spreek soos onder andere bufferoorloop, wat al voorheen uitgebuit is deur kwaadwillige sagteware. Verder verskaf .NET 'n gemene sekuriteitsmodel vir alle toepassings.
Oordraagbaarheid - 'n Ontwerpsdoelwit van die .NET Framework is om neutraal ten opsigte van sy platform te wees en dus kruisplatform versoenbaar te wees. Dit wil sê die program wat geskryf is om die raamwerk te gebruik behoort op enige stelsel te kan werk waar die raamwerk geïmplementeer is. Microsoft se kommersiële implementerings van dié raamwerk dek tans Windows, Windows CE en die Xbox 360. Microsoft lê ook die spesifikasies vir die Common Language Infrastructure (wat die kern klasversameling, Common Type System en die Common Intermediate Language insluit) asook die C# en die C++/CLI rekenaartale aan beide ECMA en die ISO voor, wat hulle as oop standaarde beskikbaar maak. Dit maak dit dus moontlik vir derde partye om versoenbare implementerings van die raamwerk en sy tale op ander platforms te ontwikkel.
Die kern van die .NET Framework lê in wese by die Common Language Infrastructure of CLI. Die doel van die CLI is om 'n neutrale platform ten opsigte van rekenaartale daar te stel vir die ontwikkeling van toepassings, die uitvoer van programme insluite funksies wat fouthantering, geheuebestuur, sekuriteit en versoenbaarheid in die hand werk. Microsoft se implementering van die CLI word die Common Language Runtime of CLR genoem.
Die CLR bestaan uit vier primêre onderdele:
Die intermediêre CIL-kode word in .NET assemblies gehuisves. Die spesifikasie skryf voor dat assemblies in die Portable Execution-formaat gestoor word, wat dieselfde is vir alle DLL en EXE lêers op die Windows bedryfstelsel. Die assembly bestaan uit een of meer lêers maar elkeen moet die manifes bevat wat die metadata vir die assembly bevat. Die volledige naam van die assembly bevat sy eenvoudige teksnaam, weergawe nommer, kultuur en publiekesleutel datagreep. Die publiekesleutel datagreep bevat 'n unieke hash wat geskep word wanneer die assembly gekompileer word; dus sal twee assemblies met dieselfde publieke sleutel datagreep gewaarborg wees om identies te wees. 'n Privaatsleutel kan ook gespesifiseer word wat slegs aan die skepper van die assembly bekend is en kan gebruik word om te waarborg dat die assembly afkomstig is vanaf dieselfde skrywer wanneer 'n nuwe weergawe van die assembly saamgestel word.
Die CIL is selbeskrywend deur .NET metadata. Die CLR gaan die metadata na om te verseker dat die korrekte metode geroep word. Metadata word gewoonlik geskep deur die taalsamestellers (compilers) maar ontwikkelaars kan hulle eie metadata skep deur hul eie kenmerke (attributes) te definieer. Metadata bevat ook inligting oor die assembly. Metadata word ook gebruik om die reflektiewe programmeervermoëns van die .NET Framework te implementeer.
Die Basis klasversameling (Base Class Library of BCL) is 'n versameling van klasse wat aan alle tale beskikbaar is deur die .NET Framework. Die BCL verskaf klasse wat 'n aantal algemene funksies verpak soos die lees- en skryf van lêers, verbeelding van grafika, databasisinteraksie, manipulasie van XML-dokumente ensovoorts.
.NET het sy eie sekuriteitsmeganisme wat twee algemene kenmerke insluit: Code Access Security (CAS) asook kontrole en geldigheidsversekering. Code Access Security is gebaseer op bewyse wat verbind word met 'n spesifieke assembly. Die bewyse is tipies die bron van die assembly. Code Access Security gebruik bewyse om die toestemming wat aan die kode verleen word vas te stel. Ander kode kan vereis dat die kode wat dit aanvra 'n spesifieke toestemming moet hê. Die aanvraag veroorsaak dat die CLR 'n call stack walk uitvoer, elke assembly word nagegaan om te verseker dat elke metode in die call stack die vereiste toestemming het en indien die toestemming nie verleen is nie word 'n sekuriteitsfout gegenereer.
Wanneer 'n assembly gelaai word, onderneem die CLR 'n verskeidenheid toetse. Twee sulke toetse is geldigheidsversekering en kontrolering. Tydens die geldigheidsversekeringstoets maak die CLR seker dat die assembly geldige metadata en CIL bevat en maak seker dat die interne tabelle korrek is. Kontrole is nie so noukeurig nie. Die kontrolemeganisme gaan na om te sien of die kode enigiets doen wat onveilig is. Die algoritme wat gebruik word is nogal konserwatief en kan soms veroorsaak dat veilige kode afgekeur word. Onveilige kode sal slegs uitgevoer word as die assembly die skip verification toestemming gegee is, wat gewoonlik beteken dat die kode op 'n plaaslike masjien geïnstalleer is.
↑ ".NET Framework 4.6.1 is now available!". .NET Blog (in Engels). .NET Foundation. 30 November 2015. Geargiveer vanaf die oorspronklike op 29 Januarie 2016. Besoek op 24 Junie 2021.
↑ Microsoft het ook voorheen implementerings van .NET 1.0 vrygestel wat op Unix-gebaseerde platforms kon werk soos FreeBSD en ook op Mac OSX, maar lisensievereistes het die gebruik daarvan beperk tot opvoedkundige gebruik en is die implementerings nie meer sedert .NET 1.1 beskikbaar nie.
↑ ECMA 335 - Standaard ECMA-335 Common Language Infrastructure (CLI), 01-06-2006, nagegaan op 19-12-2007, ECMA
↑ Tegniese Verslag TR/84 Common Language Infrastructure (CLI) - Inligting vanaf Deel IV XML Lêer, 01-06-2006, ECMA