.NET
Colin Fahey
1. Definicija .NET
Pojam ".NET" odnosi se na sljedeće zbirke tehnologije:
(1) Framework Class Library (FCL)
(2) Intermediate Language (IL)
(3) Common Language Runtime (CLR)
1.1 Framework Class Library (FCL)
The Framework Class Library (FCL) je opsežnog skupa klase za podršku:
* Kontejneri (Array, String, List, ...)
* Multithreading (teme, nit bazeni)
* Umrežavanje (podnožja, protokole, klijenti, poslužitelji)
* File operacija
* Podaci potoci
* Raščlanjivanjem (Regularni izrazi, XML handling)
* Matematičke operacije
* Iznimka rukovanje
* Jezik značajke (refleksija, stog praćenje, dinamičan code)
The Framework Class Library (FCL) je implementiran za razne platforme ( Windows, Linux, MacOS, ... ).
Ovako, jedan program koji koristi Framework Class Library (FCL) mogu biti razvijeni bez značajne poznavanje razlike između ciljne platforme.
The Framework Class Library (FCL) sadrži korisne modele od temeljnih pojmova računarstva (kao što je "konac, utičnica, stream," etc).
U smislu, Framework Class Library (FCL) daje svaki podržani operacijski sustav moderan, visokoj razini, u skladu programsko sučelje.
The Framework Class Library (FCL) je jedna od najnaprednijih, sveobuhvatan, jednako-designed, dobro dokumentirani zbirke funkcije i vrste podataka dostupne za programere.
Nažalost, sljedeće aspekte multimedija nisu dio je Framework Class Library (FCL): audio snimanje, reprodukciju audio, video snimanje, video reprodukcija, 3D renderiranje, joystick input, uređaj za kontrolu ( CD/DVD, ... ), itd.
Microsoft ima .NET verzija od DirectX knjižnica za njihove Windows operacijski sustav.
Postoje C# wrapperi za OpenGL, OpenAL, GLUT, SDL, itd, ali to nije dosta kao prikladan kao vlasništvo takvih multimedija funkcije biti uključeni u osnovnu Framework Class Library (FCL) i uključena u krajnji korisnik "vrijeme" knjižnice.
Jedan od problema u razvoju programa koji koriste određeni knjižnice je da je namijenjen set krajnji korisnici će zahtijevati podršku za izabrane knjižnice.
Ako nije prikladan da biste preuzeli i instalirali potrebne librarye, jedan kraj-korisnik može odabrati da ne koristite program koji zahtijevaju te knjižnice.
Kraj-korisnik može također biti protiv volje da pričekate da se knjižnica za preuzimanje iz online lokaciji.
Ako program razvijen od strane zahtjeva krajnjih korisnika kako bi pronašli, steći, i instalirati knjižnice, sve bez pomoći iz pojedinom programu, a zatim kraj-korisnik može odabrati da ne koristite program.
Na primjer, mnoge open-source projekti zahtijevaju krajnjim korisnicima kako bi pronašli, download i instalaciju, mnogo različitih knjižnica iz drugih open-source projekata (primjeri: openssl, zlib, libpng, libjpg, glut, ...), koje je vrijeme trajati, komplicirano, frustrirajuće, a može rezultirati krajnjim korisnicima odabir za traženje alternativnih programa ili proizvoda.
The "Windows Update" usluga naizgled pomaže implementaciju verzija 1.1 od .NET vrijeme knjižnice za korisnike Windows.
To vrijeme knjižnice su uključeni s Windows XP operacijski sustav.
Stoga, stvaranje Windows programe koji zahtijevaju .NET 1.1 izgleda potpuno opravdane.
Također, u vrijeme knjižnice za Microsoft's implementacija od .NET Framework Class Library (FCL) svibanj se slobodno redistribuirati, tako da je razvijen od strane mogu dostaviti ove knjižnice krajnjim korisnicima koji već nemaju knjižnica.
The Windows Vista operacijski sustav brodova s .NET 3.0 vrijeme knjižnice (kombinacija je .NET Framework Class Libraries i nekoliko novih knjižnica kao što su "Windows Presentation Foundation" (WPF)).
Stoga, uvođenje .NET 2.0 i .NET 3.0 programi za Windows Vista ne zahtijeva instalere za .NET vrijeme knjižnice.
1.2 Intermediate Language (IL)
The Intermediate Language (IL) je malo skup jednostavnih, procesor-nezavisna, operacijski sustav-neovisan upute koje su dovoljne kako bi se u potpunosti izražavaju strukture podataka i funkcije raznih high-level programming languages ( C++, C#, F#, Visual Basic, Java, Ocaml, ... ).
Izvorni kod pisan u jeziku visoke razine može se sastaviti dolje do odgovarajuće "Intermediate Language" obliku.
Kod "Intermediate Language" u obliku lako se može kombinirati s ostalim kod u jedan "Intermediate Language" obliku.
A computer program (koji se zove "softver)" može sadržavati izvorni kod pisan u nekoliko različitih jezika visoke razine (npr., C#, C++, i Visual Basic).
Svi izvorni kod se može sastaviti (pretvoriti) u jednom "Intermediate Language" formatu kako bi se omogućilo lako kombinaciji s drugim sastaviti kod.
Programi u "Intermediate Language" forma je obično pretvaraju u automat-specifične upute (npr., CPU upute) vrlo malo prije izvršenja (npr., "Just-In-Time" (JIT) obraćenje IL da CPU upute).
Ali program svibanj isto tako biti napisana u kontekstu jedne Virtual Machine (VM) designed interpretirati Intermediate Language (IL) upute.
Kod pisan u raznim high-level languages ( C#, F#, Ocaml, C++, Visual Basic, ... ), mogu se sastaviti u obliku Intermediate Language (IL) koristeći odgovarajući prevodilac na bilo koje platforme podržane ( Windows, Linux, MacOS X, ... ), i dobivenu datoteku sa ugrađen Intermediate Language (IL) code je neovisan o platformi i može izvršiti na bilo kojoj platformi s implementacija od .NET Common Language Runtime (CLR).
The Intermediate Language (IL) kôdom je prevodilac je bitno neovisan o platformi na kojoj je prevodilac bio pogubljen.
1.3 Common Language Runtime (CLR)
The Common Language Runtime (CLR) je mehanizam odgovoran za čije code poslali u Intermediate Language (IL) obliku.
The Common Language Runtime (CLR) nudi razne usluge.
The Common Language Runtime (CLR) svibanj pretvoriti Intermediate Language (IL) kod na upute koje su native na platformi (na primjer, CPU upute).
Pretvorbe iz Intermediate Language (IL) za specifične platforme (npr., CPU-specifične) upute svibanj dogoditi unaprijed bilo kojeg izvršenja (tj., jedna "Ahead-Of-Time" (AOT) pretvorbe), ili svibanj dogoditi postupno, kao i program izvršiti (tj., "Just-In-Time" (JIT) pretvorbe) .
The Just-In-Time (JIT) pretvorbe može koristiti razvoju statistike o izvršenju programa za dinamičko optimizirati pretvaraju broj (primjer: identifikacije često korištenih petlje i grane, i optimizirati ih po promatraju ponašanje (koje sama ovisi o trenutnom podataka i događaja)).
The Common Language Runtime (CLR) upravlja dodijeljene memorije na ime programa.
Stoga, CLR osigurava da se program ne propustiti pristup dodijeljene memorije, a reference na takve memorije nastavi, i osigurava da alokaciju memorije su otkazana, i da je dostupna memorija ponovno za buduće alokacije nakon program raspolaže sa sve reference na takve alokacije .
The Common Language Runtime (CLR) otkrije kada je program više ne ima reference za dodjeljivanje memorije, i dodjeljivanje memorije je označen za deallocation.
The Common Language Runtime (CLR) koristi bilo koji od različitih "smećem zbirka" algoritmi (primjer: "mark-and-sweep") identificirati i ispravljati blokova memorije više nije dostupan u programu.
The Common Language Runtime (CLR) ručke program exceptions.
The Common Language Runtime (CLR) enforces sigurnosne politike.
The Common Language Runtime (CLR) koristi "P/Invoke" mehanizam za teretna platforma specifične knjižnice i račun (poziv) funkcija unutar tih knjižnica.
2. .NET ( FCL, IL, CLR ) implementacije by Microsoft
2.1 Uvod
The .NET paradigma ( FCL, IL, CLR ) je implementirano od strane Microsoft.
Najnovija verzija, "3.0", izdana je u 2006.10.
.NET 3.0 se sastoji od .NET 2.0 Framework Class Libraries i nekoliko novih knjižnica, kao što su "Windows Presentation Foundation" (WPF) povezan s "Silverlight" (bivši WPF/E, bivši Sparkle, ...) preglednik čep za Firefox i Internet Explorer.
Microsoft dijeli .NET 2.0 softver na dva različita paketa:
(1) .NET Framework Version 2.0 Redistributable Package
The redistributable package se zahtijeva krajnjim korisnicima izvršavanje programa izgrađena za .NET paradigma. Ovaj paket također mora biti instaliran od strane programere prije instaliranja i korištenja .NET Software Development Kit (SDK) spominje u nastavku.
(2) .NET Framework Version 2.0 Software Development Kit
The Software Development Kit (SDK) zahtijeva razvijateljima da C# kompajlirati izvorni kod za Intermediate Language (IL) program files.
Ovaj paket sadrži razne razvojne alate i dokumentaciju.
2.2 .NET Framework Version 2.0 Redistributable Package
The redistributable package se zahtijeva krajnjim korisnicima izvršavanje programa izgrađena za .NET paradigma.
Ovaj paket također mora biti instaliran od strane programere prije instaliranja i korištenja .NET Software Development Kit (SDK) spominje u nastavku.
U sljedećoj Internet stranici je glavni .NET stranicu za preuzimanje:
U odjeljku pod nazivom ".NET Framework Version 2.0 Redistributable Package" ima linkove za tri hardverske platforme: "Download x86 version", "Download x64 version", "Download IA64 version".
Na primjer, sljedeći link "Download x86 version", vodi na stranicu pod nazivom "Microsoft .NET Framework Version 2.0 Redistributable Package (x86)"
(Naziv datoteke: dotnetfx.exe; Version: RC1; Datum izdavanja: 3/22/2006; Jezik: engleski; Veličina datoteke: 22.4 MB)
Lokalno spremljeno verzija (samo za referencu; potencijalno zastarjelih):
(Ime slike automatski je promijenjeno ovdje iz izvorne datoteke ime "dotnetfx.exe" kako bi izbjegli konfuzno s verzijom 1.1 installer i zove "dotnetfx.exe".)
2.3 .NET Framework Version 2.0 Software Development Kit (SDK)
The Software Development Kit (SDK) zahtijeva razvijateljima da C# kompajlirati izvorni kod za Intermediate Language (IL) program files.
Ovaj paket sadrži razne razvojne alate i dokumentaciju.
U sljedećoj Internet stranici je glavni .NET stranicu za preuzimanje:
U odjeljku pod nazivom ".NET Framework Version 2.0 Software Development Kit" ima linkove za tri hardverske platforme: "Download x86 version", "Download x64 version", "Download IA64 version".
Na primjer, sljedeći link "Download x86 version", vodi na stranicu pod nazivom ".NET Framework 2.0 Software Development Kit (SDK) (x86)"
(Naziv datoteke: setup.exe; Version: 2.0; Datum izdavanja: 11/7/2005; Jezik: engleski; Veličina datoteke: 354.0 MB)
Lokalno spremljeno verzija (samo za referencu; potencijalno zastarjelih):
(Ime slike automatski je promijenjeno ovdje iz izvorne datoteke ime "setup.exe" kako bi izbjegli zbunjujući ga sa svim ostalim instalacijskih datoteka zove "setup.exe".)
3. Microsoft Visual C#: Integrated Development Environment (IDE) program
3.1 Uvod
An Integrated Development Environment (IDE) program omogućuje programeru da uredi izvorni kod i izvršavati razne alate (primjeri: prevodilac, program za pronalaženje pogrešaka, ...) u sklopu jednog, objedinjavanja programa, napuni korisne indikacije i vizualna kontrola.
"Microsoft Visual C# 2005 Express Edition" je ne-cijena (bez plaćanja required) IDE dostupna za preuzimanje iz Microsoft.
Za ne-razvoj baze podataka, što je gotovo nemoguće razlikovati no-ove cijene proizvoda u maloprodaji od kolega, "Microsoft Visual C# 2005".
Ja često koristite i proizvode, profesionalno i recreationally, a ja još niste primijetili bilo kakve praktične razlike između proizvoda.
3.2 Službeni linkovi
Internet stranice glavnu stranicu:
Stranica u vezi "Visual C# Express Edition":
Kliknite na "Download Now" gumb na desnoj strani web stranice kako bi odabrali opciju download.
(Jedna metoda je da se pokrene jedan instalacijski program koji će preuzeti datoteke iz Microsoft tijekom svake instalacije.
A drugi način je da preuzmete punu CD-ROM "ISO" slike, koja omogućuje budućim offline instalaciju.
The ISO sliku, "VCS.iso" (451,837,952 bytes; CRC 55884F2C) za 32-bitni x86 engleski, svibanj se spali na CD-ROM koristeći "Nero 7 Ultra", za primjer. )
4. .NET ( FCL, IL, CLR ) implementacija od strane Mono Project
4.1 Uvod
The .NET paradigma ( FCL, IL, CLR ) je implementirano od strane sudionika u grupi poznatoj kao Mono Project.
4.2 Službeni linkovi
Project site:
Software download page:
4.3 Lokalno spremljeno verzija
Lokalno spremljeno verzija instalacijski program (samo za referencu; potencijalno zastarjelih):
4.4 .NET 2.0 razvoj s Mono
The "mcs" prevodilac, i dokumentacije, kao studenog 2006, uglavnom odnose na C# 1.0 i FCL 1.1.
Međutim, "mcs" prevodilac može kompajlirati C# 2.0 kod koje ne sadrže generičke ili općenito se temelji na značajkama, ali ograničava API da 1.0.
Da biste to full C# 2.0 razvoj, s FCL 2.0 knjižnice, korištenje "gmcs" prevodilac.
Pogledajte sljedeću stranicu na Mono site:
5. SharpDevelop: jedan open-source program Integrated Development Environment (IDE)
5.1 Uvod
An Integrated Development Environment (IDE) program omogućuje razvijen od strane za uređivanje source kod i izvršavati razne alate (primjeri: prevodilac, program za pronalaženje pogrešaka, ...) u sklopu jednog, objedinjavanja programa, napuni korisne indikacije i vizualna kontrola.
SharpDevelop je odlična, open-source program IDE za C# / .NET razvoj.
Ova IDE blisko nalikuje Microsoft Visual C# IDE, i, u nekim poštuje, SharpDevelop IDE je poboljšana na Microsoft proizvod.
Međutim, Microsoft Visual C# ima neke osobine (primjerice: debugging) da SharpDevelop program nema (u vrijeme pisanja).
5.2 Službeni linkovi
Jednostavnih internet stranica glavna stranica:
Stranica u vezi "The Open Source Development Environment for .NET":
Na stranicu za preuzimanje, koja je detalje o 1.1 i 2.0 verzije SharpDevelop:
5.3 Lokalno spremljeno verzija
Lokalno spremljeno verzija instalacijski program (samo za referencu; potencijalno zastarjelih):
6. Korisni C# / .NET / IL alati
6.1 SciTech Software ".NET Memory Profiler"
Ovo pokazuje profiler alokaciju memorije, i drugih resursa rasporede, da je sastaviti .NET program ili zbor čini dok izvršavanju.
The real-time grafova omogućuje osobi da vidi, u detalju, kako akcija programa (kao što su akcije pokreću korisničkim podacima ili druge događaje) utjecati na dodjeljivanje memorije i smećem zbirka.
The real-time pogled tablice unos omogućuje osobi da biste saznali pojedinosti o alokaciju memorije.
Ova profiler odmah i dramatično, objavi razoran memoriju koristiti u stvarnom vremenu Direct3D program sam razvio.
A pattern of naviše rampe i iznenadni kapi (zbog "smeća zbirka)" u memorije grafikone koje se podudaraju s povremenim savršeno, vrlo kratki-stanki u 3D crtež moj program.
The profiler omogući mi da otkrijete da poslanih dodjelu privremene objekte je gomilajućim puno memorije, pokreće smećem zbirka često, i uzimanja dovoljno vremena za svaku zbirku smećem da uzrokuje nekoliko crtež razdoblja biti propušteno.
The profiler's real-time tablice dodijelila objekt vrste objavi vrsta objekata koje koristi najviše memorije, i koja konzumira alokacije memorije na najvišoj stopi (broj bajtova u sekundi), i alokacije koji je najviši raspolaganju stopa.
Proučavanje real-time grafova, i real-time stolova, omogući mi da se usredotočite na proučavanje načina na koji određene vrste podataka su se u moj kod.
Promijeniti broj, kako bi se izbjegle česte alokacije privremenih objekata mogu uvelike smanjiti ukupnu stopu dodjeljivanje memorije i raspolaganja, te prema tome može smanjiti učestalost smećem zbirka pokreće.
(Mislim "Bytes/sec" je vrlo otkriva statistika za real-time memoriju koristiti, osim "Live instances".
) Budući su svi ovi se ažurira vrlo brzo u formatu tablice, kao i mogućnosti odabrati kako redaka su razvrstani, i mijenja se sortira parametar u bilo koje vrijeme, čini iskustvo učenju u stvarnom vremenu program vrlo zanimljiv i informativan.
Dodjeljivanje memorije odgovore na interakciji korisnika s prikazivanjem programa mogu biti proučavane, a testiranje može brzo prilagoditi na povratne informacije kako biste suzili najviše-zanimljiv aspekt.
(Na primjer, 2006 July verzija je sljedećim atributima: verzija 2.6.89; 4.3 MB; USA $127.00; Download 14-day-limit verzije, bez troškova za vrednovanje.)
6.2 FxCop: .NET code analizator / kritičar
FxCop analizira .NET sastaviti program (ili sastaviti zbor) i izrađuje izvješće unos moguće probleme s izvornikom izvorni kod.
Moguće probleme performansi i sigurnosnih problema su identificirali.
Mogući kodiranje kršenja konvencija su identificirali.
FxCop ne zahtijeva pristup izvornom izvorni kod za obavljanje analiza.
Samo .NET sastaviti program (koji sadrži IL) je obavezna.
Bez obzira na to, FxCop izvješće nudi hiperveza na određene line brojeve u originalnoj izvorni kod.
Ako Microsoft Visual C# 2005 IDE je aktivan, klikom na hipervezu u FxCop izvješće će uzrokovati IDE na deformiranje, pa čak do relevantnih izvora datoteku i liniju broj.
FxCop je, po mom mišljenju, prilično neugodan način integraciju s Microsoft Visual C# 2005 IDE.
Međutim, kada je postavljen, FxCop proizvodi vrlo zanimljiva i potencijalno vrijedna-izvješće.
Izvješće sadrži detaljne savjete o tome kako poboljšati originalni izvorni kod.
Mislim da valja za analizu program pomoću FxCop na temelju periodic.
Ne bih biti iznenađen ako neki softver razvoj projekata ili poslovne subjekte required sve code je napisao / la razvijateljima da prinos ne upozorenja ili primjedbe by FxCop.
Pravila mogu biti dodane ili uklonjene iz FxCop baza podataka, u skladu s potrebama.
FxCop je open-source, slobodni program.
6.3 "Reflector for .NET": decompiler / analizator
Od Lutz Roeder's Internet stranica:
"Reflector is the class browser, explorer, analyzer and documentation viewer for .NET. Reflector allows to easily view, navigate, search, decompile and analyze .NET assemblies in C#, Visual Basic and IL."
"Reflector" može pomoći osobi studija kako third-party libraries su napisane.
Ponekad da bi bilo vrlo korisno je znati kako točno metoda u skupštinu provodi.
Ako se metoda ponaša na neočekivan ili misteriozan način, onda "Reflector" se može koristiti da biste vidjeli provedbu.
By viđenje provedbe, programer može zaobići probleme uzrokovane specifičnim implementacijama knjižnica metode.
Prijatelj mi je rekao da "Reflector" mu je pomogao saznati više o ponašanju u slabo-dokumentirane metode u Microsoft implementacija od Framework Class Libraries (FCL).
"Reflector" može biti korisna kada dokumentacije za biblioteku metoda se sastoji od samo nekoliko riječi, kao što je "postavlja vrijednost" ili "event handler."
Ako je biblioteka funkcija prizivanje je u nedostatku za nepoznatog razloga (kad sve parametre čini važeća), a zatim pomoću "Reflector" potražite na provedbu biblioteke funkcija može otkriti razlog za neuspjeh.
"Reflector" obavlja neke "obrnutog inženjeringa" od .NET program ili zbor.
Ostali programi, kao što su "Reflector" sama, donosi izvorni kod za programe ili skupštine izgrađena na temelju obfuscated source code.
To je očito izvor zabrinutosti za neki razvijen od strane i njihovi investitori.
(2006 July: Reflector.zip je verzija 4.2.45.0)
7. Internet Forumi
Google u potrazi je najbolji način kako bi pronašli odgovore na specifična pitanja o bilo kojoj temi, ali web-mjesta ispod opetovano pojavljuju u rezultatima pretraživanja za C# i .NET pitanja.
U nastavku se nalaze web-mjesta strašan za upoznavanje cool stvari mnogi ljudi su učinili s C# i .NET.
"The Code Project" site ima tisuće zanimljivih i korisnih članaka, za C#, C++, i drugih jezika i programiranje paradigme.
The "MSDN Code Gallery" site ima mnoge zanimljive članke i uzorke koda se odnose na Microsoft tehnologije.
Druge internetske stranice vezane uz C# i .NET:
8. Opće napomene
8.1 Platforma nezavisnost
The Intermediate Language (IL), kao Java "byte kod," je platformski neovisan.
Svejedno .NET-compliant prevodilac će generirati platformski neovisan Intermediate Language (IL) kod formiranja programa ili skupštine.
Programi zapakirane kao executables ("*.exe" datoteke), morate imati neki broj ovisan o platformi-specifični za jedan operacijski sustav, u svrhu se pravilno tumačiti i pokrenula, kao izvršni softver u kontekstu određeni operacijski sustav.
Međutim, native izvršni dio programa file sluzi samo za to račun, .NET CLR motor, poslati IL code sadržane unutar softvera datoteku za izvršenje od strane CLR motor.
Microsoft nudi implementacija od .NET alate (kompajler, ...), i implementacija od Framework Class Library (FCL), samo za Windows operacijski sustav.
The Mono Project nudi implementacije od .NET alate (kompajler, ...), i implementacija od Framework Class Library (FCL), za sljedećih operacijskih sustava: Windows, Linux, MacOS X, i BSD.
8.2 Speed usporedbi s non-CLR C / C++
The Common Language Runtime (CLR) aspekt .NET je kontekstu u kojem C# program izvršiti.
The CLR "smeća" obavlja "prikupljanje" i omogućuje programima na račun funkcija u "Neukrotiv" knjižnice (sve u knjižnice ne provodi u Intermediate Language (IL)).
Bilo koja funkcija, ne više od čistoga math, čista string manipulacije, ili čista memorije kopiranje, račun će funkcije u "Neukrotiv" knjižnice.
Sve datoteke operacija, socket operacija, crtež operacije, unos operacije (miš, tipkovnica), izlazne operacije (konzola), platforma djelovanja konac, preciznost vremena operacije, operacije windowing, itd, će račun funkcija u "Neukrotiv knjižnice."
Nažalost, mehanizam prizivati "Neukrotiv" funkcije iz CLR zahtijeva značajnu količinu vremena.
Stoga, ukupni brzina program izvršavanju u kontekstu u CLR je noticably sporije nego program koji može direktno račun "Neukrotiv" funkcije.
Za određene vrste softvera, brzina može biti važno.
Za određene vrste softvera, brzina može dati važan razlika u subjektivni ili psihološki doživljaj za osobom koja koristi softver.
Za određene vrste softvera, brzina može učiniti razliku između postigli cilj i neuspjeha.
Multithreading, povećanje brzine CPU, i poboljšanja u CLR kod generiranja objekta, pomoći će u izvršavanju softvera u kontekstu u CLR izvršavanje brže.
Međutim, bilo koji broj da vrši izvan CLR, i invokes platforma izravno knjižnice, neizbježno će se izvršiti znatno brže od softvera koji vrši u okviru CLR.
The osiguranja od strane CLR da C# softver, kao što je sigurno premošćivanje jaz između uspio kod i Neukrotiv broj, dolazi po cijeni koja je vjerojatno biti smanjen.
Stoga, bilo koji program koji je vrlo intenzivna platformi (primjeri: 3D simulacija ili igra, file procesora, mrežnih poslužitelja, itd) je vjerojatnost da će izvršiti jedan red veličine brže izvan CLR od kada je pogubljeno u CLR.
Razlika je ogromna.
Također, bilo koji program koji obavlja značajnu količinu low-level manipulacija podacima, izvršit će se znatno brže nego izvan CLR unutar CLR.
Programi izvršavanju u kontekstu u CLR izvršiti dovoljno brzo kako bi biti koristan za mnoge praktične svrhe.
Kao CPU povećanje brzine, kao i kod uzima bolje iskoristili višestruke CPUs, izvršavanju programa u kontekstu u CLR će se moći koristiti za više zadataka koji zahtijevaju visoku stopu računanja.
Međutim, u sredini 2008 je CLR još uvijek nisu prikladne za 3D igre bilo sofisticiranost, osim ako je vrlo agresivna napor je je napravio za smanjenje broja funkcija poziva na 3D knjižnica (OpenGL ili Direct3D), eventualno uz pomoć pojmova kao što su "Shader programa" i "prikaz liste;" ništa da se smanji broj funkcija poziva.