Microsoft .NET Framework
prehľad konceptov


CLR - common language runtime

Ide v podstate o podobnu zaležitosť akou je Java runtime. Runtime environment poskytuje menežovanému kódu možnosti ako: spolupráca kódu napísaneho v rôznych programovacích jazykoch, cross-language spracovanie výnimiek, zvýšená bezpečnosť, verzionovanie kódu a podpora nasadenia, zjednodušený model interakcie komponentov, vylaďovacieovacie a profilovacie služby.
Aby bolo možné pre runtime environment poskytnúť tieto služby menežovanému kódu, jednotlivé kompilátory programovacích jazykov musia do kompilovaného kódu pridať metadáta, ktoré popisujú typy, členy a referencie v kóde. Tieto metadáta sú uložené spolu s kódom.Každý nahraťeľný súbor (PE) obsahuje tieto metadta. Runtime využíva metadáta na nyhľadanie a nahratie tried, usporiadanie inštancií v pamäti, volanie metód, generovanie natívneho kódu a nastavenie hraníc runtime kontextu pre daný zdrojový súbor.

Assemblies

Assemblies sú jednou zo základných častí programovania s .NET Framework. Assembly má za úlohunasledovné veci :

Application Domains

Z pohľadu histórie, hranice procesu boli využívané na izolovanie aplikkácií bežiacich na jednom počítači. Každá aplikácia je spustená ako separátny proces, ktorý izoluje aplikáciu od ostatných bežiacich na tom istom počítači.
Aplikácie sú izolované, pretože pamäťové odkazy sú relatívne k procesu. Smerník odovzdaný z jedného procesu druhému nemäže byť nijako zmysluplne využitý v cieľovom procese. A naviac nieje možné robiť priame volania medzi dvoma procesmi. Namiesto toho sú aplikácie odkázané na proxies, ktoré poskytujú túto úroveň indirekcie.
Menežovaný kód musí prejsť overovacím procesom, predtým ako mäže byť spustený. Vtedy sa skontoluje, či sú prístupy do pamäte v povolenom rozsahu, alebo nie. Kód, ktorý prejde verifikáciou je považovaný za type-safe. Schopnosť otestovať kód ako type-safe poskytuje pre runtime veľmi dobrú izoláciu precesu za veľmi malú cenu výkonu.
Application domains poskytujú bezpečnú a verzatilnú jednotku spracovania, ktorú CLR môže použiť na poskytnutie izolácie medzi aplikáciami. Môžete spustiť vicero application domains v jednom procese s takou istou úrovňou izolácie aká by existovala v separátnych procesoch, ale bez prídavných overhead využívania proxies na medziprocesové volania a prepínania kontextov procesu. Schopnosť spúštať viacero aplikácií v jednom spoločnom procese dramaticky zvyšuje scalability servra.

Runtime Hosts

CLR bolo dizajnované na podporu mnoťstva rôznych typov aplikácií, od Web servra po aplikácie s tradičným Windows rozhraním. Každý typ aplikácie požaduje runtime host na ktorom môže byť spustená. Runtime host spustí runtime ako proces, vytvorí application domains v tomto procese a natiahne používateľov kód do application domains.
.NET Framework je dodávaný s viacerými runtime hostmi, zahrňujúc nasledovných hostov:

Common Type System

Zavádza šturktúrované aj jednoduché typy premenných, ktoré sú spoločné pre väčšinu programovacích jazykov.Typy delíme na 2 základné druhy: na value types a reference types. V podstate CLR pozná (zavádza) vcelku klasické typy ako integer, pole, trieda,.... ktorých vlastnosti sú akýmsi prienikom schopností jednotlivých objektovo orientovaných jazykov, ktoré podporuje :NET Framework.

Cross-Language Interoperability

Aby sa zaručilo, že objekty vytvorené v rôznych jazykoch budu plne kompatibilné, musia mať verejné iba tie vlastnosti (  rozumej aj metódy ) , ktoré sú spoločné úre všetky jazyky s ktrorými musí spolupracovať. Z tohoto dôvodu bola deifnovaná Common Language Specification (CLS), ktorá je množinou základných vlastností jazyka potrebných mnohými aplikáciami. CLS pravidlá definujú podmnožinu Common Type Systému, tj. všetky pravidlá, ktoré platia pre Common Type System platia aj pre CLS, okrem tých ktoré sú v CLS ešte reštriktívnejšie. CLS pomáha zlepšiť a zaručiť interoperabilitu jazykov definovaním množiny vlastností na ktoré sa môžu vývojári spoľahnúť, že budú dostupné v širokej škále jazykov. CLS tiež nastoľuje požiadavky na CLS konformitu.  tieto pomahajú vývojárom  určiť či ich menežovaný kód je v súlade s CLS a do akej miery daný vývojový nástroj podporuje vývoj menežovaného kódu, ktorý používa CLS vlastnosti.
Komponenty, ktoré vyhovujú CLS požiadavkám a využívajú iba vlastnosti definované v CLS sú nazývané CLS-compliant komponenty.

.NET Framework Security

.NET Framework poskytuje viacero mechanizmov na ochranu zdrojov a kódu od neautorizovaného kódu a používateľov:

Introduction to the .NET Framework Class Library

.NET Framework zahŕňa triedy, rozhrania a value typy, ktoré zrýchľujú a optimizujú proces vývoja a poskytujú prístup k funkčným vlastnostiam systému. Na uľahčenie spolupráce medzi  jazykmi, typy .NET Framework sú CLS kompliantné a teda môžu byť použité z ľubovoľného jazyka, ktorého prekladač je konformný CLS.
.NET Framework typy sú základom na ktorom sú postavené .NET aplikácie, komponenty a controlls. .NET Framwork zahŕňa typy, ktoré vykonávajú nasledovné funkcie:
.NET Framework poskytuje bohatú množinu interfaceov, rovnako ako abstrakné aj konkrétne (implementované) triedy. Môžete používať konkrétne triedy či už v podobe v akej sú predkladané, alebo v mnohých prípadoch z nich môžete dediť. Na použitite funkčnosti interfaceu môžete alebo vytvoriť triedu, ktorá tento interface implementuje alebo derivovať z jednej z tried ponúkaných .NET Frameworkom, ktorá tento interface implementuje.