English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية 
.NET
Colin Fahey

1. Definice .NET

Termín ".NET" odkazuje na tyto sbírky technologie:
(1) Framework Class Library (FCL)
(2) Intermediate Language (IL)
(3) Common Language Runtime (CLR)

1.1 Framework Class Library (FCL)

Na Framework Class Library (FCL) je rozsáhlý soubor třídy, které podporují:
* Kontejnery (Array, String, List, ...)
* Multithreadingu (vlákna, vlákna bazény)
* Vytváření sítí (zásuvky, protokoly, klienty, servery)
* Operace se soubory
* Datových toků
* Parsování (regulární výrazy, XML manipulace)
* Math operace
* Zpracování výjimek
* Jazykové prvky (reflexe, zásobník vysledovat, dynamický kód)
Na Framework Class Library (FCL) je implementován na mnoha různých platformách ( Windows, Linux, MacOS, ...  ).
Proto samostatný program, který používá Framework Class Library (FCL) lze rozvíjet bez podstatných poznatků o rozdílech mezi cílové platformy.
Na Framework Class Library (FCL) obsahuje užitečné modely základních pojmů z oblasti počítačové vědy (jako "nit, zásuvky, proud," atd.).
V jistém smyslu se Framework Class Library (FCL) dává každý podporovaný operační systém, moderní, vysoce-úrovni, konzistentní programovací rozhraní.
Na Framework Class Library (FCL) je jednou z nejvyspělejších, komplexní a jednotně-navržený, dobře dokumentovaný-sbírek funkce a datové typy jsou k dispozici na programátory.
Bohužel, tyto multimediální aspekty, které nebyly členy Framework Class Library (FCL): zvukový záznam, přehrávání audio, video záznam, přehrávání videa, 3D zobrazování, joystick vstup, kontrolní zařízení ( CD/DVD, ...  ), atd.
Microsoft má .NET verze tohoto DirectX knihovny pro jejich Windows operačního systému.
Existují C# obálky pro OpenGL, OpenAL, GLUT, SDL, atd., ale to není docela jako výhodné, tento multimediální funkce je zahrnuto v základní Framework Class Library (FCL) a zahrnuty do konečného "uživatele-run-time" knihovny.
Jedním z problémů na rozvojové programy, které využívají zejména knihovny je, že zamýšlené soubor konec-uživatelů bude vyžadovat podporu pro vybrané knihovny.
Pokud to není vhodné stáhnout a nainstalovat potřebné knihovny, konec-uživatel může zvolit, že nechcete použít program vyžadující těchto knihoven.
An end-uživatel může být také zdráhají čekat na knihovnu stáhnout z on-line umístění.
Pokud je program pro vývojáře vyžaduje konci-uživatel nalézt, získat a nainstalovat knihovny, to vše bez pomoci z určitého programu, pak je konec-uživatel může zvolit, že nechcete používat program.
Například, mnoho open-source projekty vyžadují konci-uživatelům najít, stáhnout a nainstalovat, mnoho různých knihoven z dalších open-source projektů (příklady: openssl, zlib, libpng, libjpg, glut, ...), které je časově - náročné, složité, frustrující, a mohou vyústit v konec-uživatelé rozhodli hledat alternativní programy nebo produkty.
Na "Windows Update" služba prý pomáhá nasadit verzi 1.1 z .NET run-time knihovny na Windows uživatelů.
Tyto run-time knihovny jsou zahrnuty s Windows XP operačního systému.
Proto vytváření Windows programy, které vyžadují .NET 1.1 zdá zcela přiměřené.
Také, run-time knihovny pro implementaci Microsoft's z .NET Framework Class Library (FCL) může být volně přerozdělí, takže vývojáři se mohou dodávat tyto knihovny do konce-uživatelů kteří ještě nemají knihovnách.
Windows Vista na operační systém dodává s .NET 3.0 run-time knihovny (kombinaci těchto .NET Framework Class Libraries a několik nových knihoven, jako je "Windows Presentation Foundation" (WPF)).
Proto nasazení .NET 2.0 a .NET 3.0 programy pro Windows Vista nevyžaduje instalatérů pro .NET run-time knihovny.

1.2 Intermediate Language (IL)

Na Intermediate Language (IL) je malý soubor jednoduchých, procesor-nezávislé, provozně-system-nezávislé pokyny, které jsou dostatečné k tomu, aby úplně vyjadřují datové struktury a funkce mnoha různých high-úrovni programovacích jazyků ( C++, C#, F#, Visual Basic, Java, Ocaml, ...  ).
Zdrojový kód napsaný high-úrovni jazyka je možné sestavit až na odpovídající "Intermediate Language" formě.
Kód v "Intermediate Language" formulář lze snadno kombinovat s jinými kód ve "Intermediate Language" formě.
Počítačový program (rovněž s názvem "software)" mohou obsahovat zdrojový kód napsaný v několika různých vysoké úrovni-jazyky (např. C#, C++, a Visual Basic).
Každý zdrojový kód je možné sestavit (přeměněné) k "Intermediate Language" formát umožňující snadné kombinování s jinými sestavit kód.
Programy v "Intermediate Language" formulář je obvykle převedeny na stroji-pokyny (např. CPU návodu) velmi krátce před realizací (např. "Just-In-Time" (JIT) přepočtu IL k CPU návod).
Ale program, mohou být rovněž prováděny v souvislosti s Virtual Machine (VM) určené k výkladu Intermediate Language (IL) pokyny.
Programů napsaných v různých jazycích vysoké úrovně-( C#, F#, Ocaml, C++, Visual Basic, ...  ), je možné sestavit do Intermediate Language (IL) formě za použití vhodné kompilátor na jakékoli podporované platformy ( Windows, Linux, MacOS X, ...  ), a výsledný soubor, s vloženými Intermediate Language (IL) kód, je platformově-nezávislé a lze provádět v jakékoli platformě s provádění tohoto .NET Common Language Runtime (CLR).
Na Intermediate Language (IL) kód vygenerovaný překladač je v podstatě nezávislé na platformě, na nichž je kompilátor byl proveden.

1.3 Common Language Runtime (CLR)

Na Common Language Runtime (CLR) je mechanismus zodpovědný za spuštění kódu v předložené Intermediate Language (IL) formě.
Na Common Language Runtime (CLR) nabízí různé služby.
Na Common Language Runtime (CLR) května převést Intermediate Language (IL) kód do nativních instrukcí, které jsou na platformu (např. CPU návod).
Přepočet z Intermediate Language (IL) na platformě-specifické (např. CPU-specifické) pokynů může dojít v předstihu na jakékoli plnění (tj. o "Ahead-Of-Time" (AOT) konverze), nebo může dojít postupně, jako program provádí (tj. "Just-In-Time" (JIT) konverze) .
Na Just-In-Time (JIT) přepočet lze použít vyvíjející statistiky o provádění programu na dynamicky optimalizovat převedeny kód (například: identifikace často-použité smyčky a větve, a optimalizovat podle nich pozorovat chování (což samo o sobě závisí na aktuální údaje a události)).
Na Common Language Runtime (CLR) řídí přidělené paměti jménem programu.
Proto se CLR zajišťuje, že program nezapomněla na přístup k přidělené paměti a zároveň odkazy na tyto paměti přetrvává, a zaručuje, že paměť příděly byly zrušeny, a že paměť je k dispozici opět na budoucí příděly poté, co program disponuje všechny odkazy na tyto příděly .
Na Common Language Runtime (CLR) rozpozná, kdy program již nemá odkaz na pameti a pameti je označena za deallocation.
Na Common Language Runtime (CLR) používá některý z různých "garbage collection" algoritmy (příklad: "mark-and-sweep") identifikovat a reklamace paměťových bloků již dostupné prostřednictvím programu.
Na Common Language Runtime (CLR) zpracovává program výjimky.
Na Common Language Runtime (CLR) prosazování bezpečnostních politik.
Na Common Language Runtime (CLR) používá "P/Invoke" mechanismu pro nákladní plošiny-specifických knihoven a odvolávat (call) funkce v rámci těchto knihoven.

2. .NET ( FCL, IL, CLR ) implementace do Microsoft

2.1 Úvod

Na .NET paradigma ( FCL, IL, CLR ) bylo provedeno Microsoft.
Nejnovější verze, "3.0", byla vydána v 2006.10.
.NET 3.0 je složený ze .NET 2.0 Framework Class Libraries a několik nových knihoven, jako je "Windows Presentation Foundation" (WPF) spojené s "Silverlight" (dříve WPF/E, dříve Sparkle, ...) prohlížeč plugin pro Firefox a Internet Explorer.
Microsoft rozděluje .NET 2.0 software se do dvou různých balíků:
(1) .NET Framework Version 2.0 Redistributable Package
Na opětovné distribuci balíčku je nutná do konce roku-uživatelům provádět programy postavené na .NET paradigmatu.  Tento balíček také musí být instalována vývojáři před instalací a použitím .NET Software Development Kit (SDK) uvedených níže.
(2) .NET Framework Version 2.0 Software Development Kit
Se softwarem vývojový kit (SDK) požaduje, aby byla kompilace C# zdrojový kód k Intermediate Language (IL) programové soubory.
Tento balíček obsahuje různé vývojové nástroje a dokumentaci.

2.2 .NET Framework Version 2.0 Redistributable Package

Na opětovné distribuci balíčku je nutná do konce roku-uživatelům provádět programy postavené na .NET paradigmatu.
Tento balíček také musí být instalována vývojáři před instalací a použitím .NET Software Development Kit (SDK) uvedených níže.
Následující internetové stránce je hlavní .NET stahovat stránky:
http://msdn.microsoft.com/netframework/downloads/updates/default.aspx
Sekce s názvem ".NET Framework Version 2.0 Redistributable Package" má vazby na tři hardwarové platformy: "Download x86 version", "Download x64 version", "Download IA64 version".
Například následující odkaz "Download x86 version", vede na stránku s názvem "Microsoft .NET Framework Version 2.0 Redistributable Package (x86)"
(Název souboru: dotnetfx.exe; Verze: RC1; Publikováno: 3/22/2006; Jazyk: angličtina; Stáhnout Velikost: 22.4 MB)
Místně skrytá verze (pouze pro referenční; potenciálně zastaralé):
microsoft_dot_net_runtime_libraries_v2_0.exe
.NET Framework Version 2.0 Redistributable Package
23510720 bytů
MD5: 93a13358898a54643adbca67d1533462
(Soubor, jehož název byl změněn zde z původní název souboru na "dotnetfx.exe", aby se zabránilo matoucí, že s verzí 1.1 instalátor také nazývané "dotnetfx.exe".)

2.3 .NET Framework Version 2.0 Software Development Kit (SDK)

Se softwarem vývojový kit (SDK) požaduje, aby byla kompilace C# zdrojový kód k Intermediate Language (IL) programové soubory.
Tento balíček obsahuje různé vývojové nástroje a dokumentaci.
Následující internetové stránce je hlavní .NET stahovat stránky:
http://msdn.microsoft.com/netframework/downloads/updates/default.aspx
Sekce s názvem ".NET Framework Version 2.0 Software Development Kit" má vazby na tři hardwarové platformy: "Download x86 version", "Download x64 version", "Download IA64 version".
Například následující odkaz "Download x86 version", vede na stránku s názvem ".NET Framework 2.0 Software Development Kit (SDK) (x86)"
(Název souboru: setup.exe; Verze: 2.0; Publikováno: 11/7/2005; Jazyk: angličtina; Stáhnout Velikost: 354.0 MB)
Místně skrytá verze (pouze pro referenční; potenciálně zastaralé):
microsoft_dot_net_sdk_v2_0.exe
.NET Framework Version 2.0 Software Development Kit (SDK) (x86)
371230904 bytů
MD5: 1a52cb6000c4390b6265671e031f9d64
(Soubor, jehož název byl změněn zde z původní název souboru na "setup.exe", aby se zabránilo matoucí, že se všechny ostatní instalační soubory s názvem "setup.exe".)

3. Microsoft Visual C#: o Integrated Development Environment (IDE) program

3.1 Úvod

An Integrated Development Environment (IDE) program umožňuje vývojář upravit zdrojový kód a provádět různé nástroje (příklady: překladač, debugger, ...) v rámci jediného, který sjednotil program, naplněný užitečnou vizuální indikace a ovládací prvky.
"Microsoft Visual C# 2005 Express Edition" je ne-náklady (bez zaplacení požadované) IDE k dispozici ke stažení z Microsoft.
Pro non-databáze vývoje, to je téměř nemožné rozlišit tuto ne-cena výrobku z maloobchodní protějšek, "Microsoft Visual C# 2005".
Já často používají oba produkty, profesionálně a recreationally a já jsem si všiml, dosud žádné praktické rozdíly mezi produkty.
microsoft_vcsharp_2005_express_ide.gif

3.2 Oficiální odkazy

Internetových stránkách na hlavní stránce:
http://msdn.microsoft.com/vstudio/express
Stránka týkající "Visual C# Express Edition":
http://msdn.microsoft.com/vstudio/express/visualcsharp
Klepněte na tlačítko "Download Now" na pravé straně stránky si zvolit možnost stahovat.
(Jednou z metod je zahájit instalační program, který bude stahovat soubory z Microsoft během každé zařízení.
Druhá metoda je ke stažení plný CD-ROM "ISO" obraz, který umožňuje budoucí offline instalace.
ISO na obrázek, "VCS.iso" (451,837,952 bajtů; CRC 55884F2C) pro 32-bit x86 anglicky, může být spáleno na CD-ROM pomocí "Nero 7 Ultra", například.  )

4. .NET ( FCL, IL, CLR ) realizace v Mono Project

4.1 Úvod

Na .NET paradigma ( FCL, IL, CLR ) bylo provedeno ze strany účastníků ve skupině známé jako Mono Project.

4.2 Oficiální odkazy

Projekt stránky:
http://www.mono-project.com
Software download stránce:
http://www.mono-project.com/Downloads

4.3 Místně skrytá verze

Lokálně z cache verze instalačního systému (pouze pro referenční; potenciálně zastaralé):
mono-1.2.4-gtksharp-2.8.3-win32-3.exe
Mono 1.2.4 with Gtk# 2.8.3 Installer for Windows 2000 and above
51323790 bytů
MD5: 95cbd476c0555a9a40f47e58e2283cbe

4.4 .NET 2.0 rozvoje s Mono

Na "mcs" překladač, a dokumentaci, jako v listopadu 2006, většinou se k C# 1.0 a FCL 1.1.
Nicméně, "mcs" překladač je schopen sestavit C# 2.0 kód, který neobsahuje generika nebo generických-založené rysy, ale omezuje API k 1.0.
Chcete-li plná C# 2.0 rozvoje, s FCL 2.0 knihovny, použijte "gmcs" kompilátor.
Podívejte se na následující stránku, na Mono stránky:
http://www.mono-project.com/CSharp_Compiler

5. SharpDevelop: otevřený-zdroj Integrated Development Environment (IDE) program

5.1 Úvod

An Integrated Development Environment (IDE) program umožňuje vývojář upravit zdrojový kód a provádět různé nástroje (příklady: překladač, debugger, ...) v rámci jediného, který sjednotil program, naplněný užitečnou vizuální indikace a ovládací prvky.
SharpDevelop je vynikající, open-source IDE program pro C# / .NET rozvoje.
Tento IDE úzce podobná Microsoft Visual C# IDE, a, v některých ohledech se SharpDevelop IDE se zlepšila na Microsoft produktu.
Nicméně, Microsoft Visual C# má některé funkce (například: ladění), že SharpDevelop program nemá (v době vzniku dokumentu).
sharp_develop_2_ide.gif

5.2 Oficiální odkazy

Prostý internetových stránkách hlavní stránku:
http://www.sharpdevelop.com
Stránka týkající "The Open Source Development Environment for .NET":
http://www.sharpdevelop.com/OpenSource/SD/Default.aspx
Stahovací stránku, která obsahuje detaily o 1.1 a 2.0 verze SharpDevelop:
http://www.sharpdevelop.com/OpenSource/SD/Download

5.3 Místně skrytá verze

Lokálně z cache verze instalačního systému (pouze pro referenční; potenciálně zastaralé):
SharpDevelop2_2.0.1.1710_Setup.exe
SharpDevelop2 (2.0.1.1710)
4338287 bytů
MD5: 6626832c202a6c25a399c9e9081f20d4

6. Užitečné C# / .NET / IL nástroje

6.1 SciTech Software ".NET Memory Profiler"

dot_net_memory_profiler_graph.gif
dot_net_memory_profiler_table.gif
To ukazuje, profiler paměti přídělů a jiných zdrojů, že sestavit .NET program nebo montáž provádí při spuštění.
Skutečnou-time grafu lze vidět v detailu, jak akce programu (například akce vyvolanými uživatele nebo jiné události) ovlivňují pameti a garbage collection.
Skutečnou-time tabulce záznam zobrazit lze dozvědět podrobnosti o přidělování paměti.
Tento profiler okamžitě, a dramaticky, odhalila nehospodárné využití paměti v real-time Direct3D programu jsem měl rozvíjet.
Vzor na vzestupné rampy a náhlé poklesy (kvůli "garbage collection)" v paměti grafy neodpovídají zcela pravidelné, velmi stručné-přestávek v 3D kreslení na můj program.
Na profiler umožnila, abych zjistila, že častá přidělení dočasných objektů se hromadí velké množství paměti, což často garbage collection, přičemž dostatek času pro každého garbage collection způsobit několik čerpání období, která budou promarněny.
Na profiler je real-time tabulku přidělených objekt typy odhalily typy objektů, které pohltil většinu paměti, a které přidělené paměti spotřebované na nejvyšší sazba (v bytech za sekundu), a které přídělů byla nejvyšší míra dispozici.
Sledování real-time grafy, a real-time stoly, mi umožnil, aby se zaměřily na zkoumání způsobu, jakým některé typy dat byly použity v můj kód.
Úprava kódu, aby se zabránilo častým přidělení dočasných objektů může výrazně snížit celkové míry pameti a likvidaci, a proto může snížit četnost garbage collection spouštět.
(Věřím, "Bytes/sec" je velmi poučná statistika pro real-time paměti, vedle "Live instances".
) Když všechny tyto aktualizované velmi rychle na stůl formát, a jsou schopni vybrat si, jak řádky jsou tříděny, a změny řazení parametr kdykoliv se zkušeností na studium real-time programu velmi přitažlivé a mají informativní charakter.
Pameti odpovědi na interakci uživatele s běžícím programem může být zkoumán, a testování může rychle adaptovat se na zpětnou vazbu zúžit nejvíce-zajímavý aspekt.
http://memprofiler.com/download.aspx
(Například, 2006 July verze měla následující atributy: verze 2.6.89; 4.3 MB; USA $127.00; Stáhnout 14-den-limit verze, bez nákladů pro hodnocení.)

6.2 FxCop: .NET kód analyzátor / kritik

FxCop analyzuje sestavit .NET program (nebo sestavené montáž) a generuje zprávu seznam možných problémů s původní zdrojový kód.
Možné výkonnostní problémy a bezpečnostní problémy, jsou označeny.
Možné kódování porušování úmluvy jsou označeny.
FxCop nevyžaduje přístup k původní zdrojový kód k provedení analýzy.
Pouze sestavit .NET program (který obsahuje IL) je vyžadována.
Přesto má FxCop zpráva nabízí odkazy na konkrétní čísla linky v původní zdrojový kód.
Je-li Microsoft Visual C# 2005 IDE je aktivní, kliknutí na hypertextový odkaz ve zprávě FxCop způsobí, že IDE k osnově na příslušná zdrojový soubor a číslo řádku.
FxCop má, podle mého názoru, spíše trapné způsob integrace s Microsoft Visual C# 2005 IDE.
Nicméně, jakmile bude zřízen, FxCop produkuje velmi zajímavé a potenciálně-cennou zprávu.
Zpráva obsahuje podrobné informace o tom, jak zlepšit původní zdrojový kód.
Myslím, že to je užitečné analyzovat programu pomocí FxCop na pravidelném základě.
Já bych neměl být překvapen, když některé softwarové projekty na rozvoj firmy nebo požadované celý kód, který napsal vývojářům, aby výnos žádné varování nebo kritiku o FxCop.
Pravidla mohou být přidána nebo odstraněna z FxCop databáze, podle potřeby.
FxCop je open-source, free program.
http://www.gotdotnet.com/team/fxcop

6.3 "Reflector for .NET": decompiler / analyzátor

Od Lutz Roeder's Internetové stránky:
"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" může pomoci osobě studii, jak třetí strana-knihovny jsou psány.
Někdy by bylo velmi užitečné to vědět přesně, jak se metoda v montáž je provedena.
Je-li metoda chová neočekávaně nebo záhadný způsobem, pak "Reflector" mohou být použity k provedení viz.
Dle zobrazování provádění, programátor může vyřešit problémy způsobené konkrétní implementace knihovny metod.
Přítel mi řekl, že "Reflector" mu pomohla dozvědět se více informací o chování špatně-zdokumentovány postupy při provádění Microsoft z Framework Class Libraries (FCL).
"Reflector" mohou být užitečné při dokumentace pro knihovnu metoda spočívá pouze na několika málo slovy, například "nastaví hodnotu" nebo "zpracování události."
Pokud funkci knihovny aktivace je jinak na neznámého důvodu (je-li všechny parametry se zdají být platné), potom pomocí "Reflector" podívat se na provádění knihovně funkce může odhalit důvod neúspěchu.
"Reflector" vykonávají i "reverzní inženýrství" a .NET program nebo montáž.
Jiné nástroje, případně včetně "Reflector" sama, může přinést zdrojový kód pro programy nebo sestavy postavené na základě zatemnil zdrojový kód.
To je samozřejmě zdrojem obav pro některé vývojáře a investory.
http://www.aisto.com/roeder/dotnet
(2006 July: Reflector.zip byla verze 4.2.45.0)

7. Internetové diskusní fórum

Google vyhledávání je nejlepší způsob, jak najít odpovědi na konkrétní otázky na jakékoliv téma, ale v místech pod opakovaně objevovat ve výsledcích vyhledávání na C# a .NET otázky.
Na stránkách níže jsou úžasné k prozkoumání mnoho cool lidí, co mají udělat s C# a .NET.
"The Code Project" stránce má tisíce zajímavých a užitečných článků, pro C#, C++ a dalších jazyků a programovacích paradigmat.
http://www.codeproject.com
"MSDN Code Gallery" na webu má mnoho zajímavých článků a kód ukázky vztahující se k Microsoft technologií.
http://code.msdn.microsoft.com
Jiné internetové stránky, vztahující se k C# a .NET:
http://www.c-sharpcorner.com
http://www.dotnetfun.com
http://www.programmersheaven.com

8. Obecné poznámky

8.1 Platformová nezávislost

Na Intermediate Language (IL), jako Java "byte kód," je platformově nezávislý.
Jakékoliv .NET-kompatibilní překladač vygeneruje platformě nezávislé Intermediate Language (IL) kód k podobě programů nebo sestavy.
Programy baleny jako binární ("*.exe" soubory), musí mít některé platformy-kód závislé na konkrétní operační systém, v němž byl správně interpretovány a zahájil jako spustitelný software v souvislosti s konkrétní operační systém.
Nicméně, nativní spustitelný softwaru souborů slouží pouze odvolávat na .NET CLR motoru, podávající IL kód obsažený v souboru pro spuštění softwaru v CLR motoru.
Microsoft nabízí při .NET nástroje (kompilátor, ...), a provádění této Framework Class Library (FCL), pouze pro Windows operačního systému.
Na Mono Project nabízí implementaci z .NET nástroje (kompilátor, ...), a implementace z Framework Class Library (FCL), pro následující operační systémy: Windows, Linux, MacOS X, a BSD.

8.2 Rychlost ve srovnání s non-CLR C / C++

Na Common Language Runtime (CLR) aspekt .NET je kontext, ve kterém C# program realizuje.
Na CLR provádí "sběr odpadků" a umožňuje programy se s odvoláním na funkce v "neudržovaných" knihovnách (všechny z knihovny není prováděna v Intermediate Language (IL)).
Každá funkce je však více než čistá matematika, čistá manipulace s řetězci, nebo čistá paměti kopírování, uplatní funkce v "neudržovaných" knihovnách.
Všechny operace se soubory, socket operací, kreslení operace, vstupní operace (myš, klávesnice), výstupní operace (konzole), platforma závit operací, přesné časování operace, operace v oknech, atd., bude odvolávat funkce v "neudržovaných knihovnách."
Bohužel, mechanismus, jak vyvolat "neudržovaných" funkce z CLR vyžaduje značné množství času.
Proto by se celkové rychlosti programu vykonávajícího v souvislosti s CLR je noticably pomalejší než program, který může vyvolat "neudržovaných" funkce přímo.
Pro některé typy softwaru, rychlost může být důležité.
Pro některé typy softwaru, rychlost může významně rozdíl v subjektivní nebo psychické zkušenosti pro osobu, s využitím softwaru.
Pro některé typy softwaru, rychlost může rozdíl mezi dosažením cíle a selhání.
Multithreadingu, CPU zvýšení rychlosti a zlepšení do CLR kód výrobní zařízení, pomůže software vykonávající v souvislosti s CLR vyřídit rychleji.
Ale všechny kód, který vykonává mimo CLR, a dovolává platformu knihovny přímo, bude nevyhnutelně vykonat podstatně rychleji, než je software, který vykonává v rámci CLR.
K zárukám, které CLR k C# softwaru, jako jsou bezpečně překlenutí propasti mezi spravovaného kódu a neudržovaných kód, který přichází za cenu, že je nepravděpodobné, aby se snížily.
Proto každý program, který je velmi intenzivní platforma (příklady: 3D simulace nebo hru, soubor procesoru, síťový server atd.), je pravděpodobné, vykonat řádově rychlejší mimo CLR, než když se vyřizují ve CLR.
Rozdíl je obrovský.
Také s programem, který provádí značné množství low-level manipulaci dat bude provádět významně rychleji mimo CLR než ve CLR.
Programy vykonávajícího v souvislosti s CLR provádět dostatečně rychle, aby bylo vhodné pro mnohé praktické účely.
Jak CPU zvýšení rychlosti, a jako kód lépe využít více CPUs, programy vykonávajícího v souvislosti s CLR budou moci být použity na další úkoly, které vyžadují vysokou mírou složitosti.
Avšak v polovině 2008 na CLR stále ještě není vhodné pro 3D hry na jakýkoli kultivovanosti, není-li velmi agresivní úsilí je snížit počet volání funkcí pro 3D knihovny (OpenGL nebo Direct3D), případně pomocí pojmů jako např. "shader programy" a "display listy," něco snížit počet volání funkcí.
colinfahey.com
kontaktní informace
English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية