Poznáváme C# a Microsoft .NET – 1.díl

Nový seriál o jazyku C# a s ním spjaté platformy Microsoft .NET začneme úvodním seznámením s ní a jejími důležitými vlastnostmi. I když úvod do světa .NETu byl již několikrát v našich končinách napsán, nemohu si tuto důležitou část dovolit vynechat, protože se určitě mezi zájemci o vývoj pro tuto platformu najdou tací, kteří ještě neměli tu čest se s ní seznámit.

Důvody vzniku

Platforma .NET byla oficiálně představena firmou Microsoft v roce 2000 jako klíčový produkt, jehož rozvoj a propagace je součástí dlouhodobé strategie firmy. Microsoft .NET znamená novou generaci systému vývoje aplikací pro operační systémy Windows založeném na řízeném běhovém prostředí, obohaceném o neskromnou sadu základních tříd, nesoucím jméno .NET framework. Hlavními důvody vedoucí k více než čtyřletému vývoji, jehož výsledkem je .NET, byly:

  • nekompatibilita jednotlivých programovacích jazyků a s tím související obtížná spolupráce mezi programy/knihovnami napsanými v odlišných jazycích (např. C++ a Visual Basic)
  • vysoká chybovost aplikací (chyby v práci s pamětí, neplatné konverze datových typů)
  • problémy s verzemi knihoven (obtížná práce s provozem více verzí knihoven)
  • zastaralý a nepřehledný způsob vývoje dosavadních webových aplikací

Všechny tyto problémy efektivně řeší platforma .NET – a to použitím již zmíněného řízeného běhového prostředí, systémem assemblies, což jsou základní stavební prvky aplikací, a novou technologií ASP .NET pro vývoj webových aplikací.

Princip běhového prostředí

V předchozím odstavci jsem zmínil, že pro Microsoft .NET jsou aplikace vyvíjeny pod řízeným běhovým prostředím .NET framework. Bylo by dobré objasnit co se skrývá pod pojmem řízené běhové prostředí.

Většina dnešních aplikací, vytvořených například v jazyce C++, Visual Basicu nebo Delphi, jsou zkompilovány přímo pro danou platformu, nejčastěji je to pro platformu Win32 operačních systémů Windows, ale mohou to samozřejmě být i jiné. To znamená, že zdrojový kód je kompilací převeden do strojového kódu počítače. To ve výsledku přináší velmi dobrou rychlost běhu výsledné aplikace. Avšak na druhou stranu z toho plynou i některé nevýhody – nepřenositelnost mezi jednotlivými platformami, popřípadě verzemi operačních systémů a nezřídka jsou k vidění chyby v přístupech do operační paměti.

Princip řízených běhových prostředí, použitý právě u platformy .NET, ale i u velmi známé platformy Java firmy Sun Microsystems, na to jde trochu jinak a přidává k převodu zdrojového kódu do kódu strojového ještě jednu vrstvu. Tuto vrstvu představuje mezikód, do kterého jsou zdrojové kódy zkompilovány, a tento mezikód je běhovým prostředím na cílové platformě (Windows, Linux) převeden do strojového kódu.

Tento převod je na cílové platformě realizován vždy při spouštění konkrétní aplikace. Mínusem tohoto překladu je vyšší náročnost na výkon uživatelského počítače, a z tohoto důvodu se tento způsob nepoužívá pro vývoj výpočetně náročných aplikací (např. počítačové hry). S jeho častým použitím se naopak můžete setkat spíše u obchodních aplikací, které přeci jen nejsou tak náročné na výpočetní výkon a rychlost běhu daných aplikací je naprosto vyhovující.

Poznámka: Předchozí větu si prosím nevyložte tak, že aplikace pod těmito platformami jsou nepoužitelně pomalé. U spousty úloh (přístup k databázi, souborům atd.) uživatel snížení rychlosti aplikace ani nepocítí. Navíc je dobré dodat, že u těchto běhových prostředí při spuštění aplikace nedochází k překladu celé aplikace najednou, ale používá se JIT (Just-in-Time) kompilace. JIT kompilace znamená, že do strojového kódu je převedena pouze potřebná část mezikódu a při opětovném použití této (již přeložené) části se spouští její zkompilovaná forma, což se příznivě projeví na rychlosti, která si již nezadá s během neřízeného programu.

Klíčové vlastnosti

Tolik k jemnému osvětlení řízeného běhového prostředí. Nyní přejdeme ke klíčovým vlastnostem platformy Microsoft .NET, která tento způsob běhu aplikací přináší.

Mezikód zmíněný o pár řádků výše se ve světe této platformy nazývá MSIL, tedy Microsoft Intermediate Language. Tento jazyk relativních adres je spouštěn klíčovou součástí .NET frameworku pojmenovanou CLR (Common Language Runtime neboli společné běhové prostředí) a firma Microsoft jej dala ke standardizaci organizaci ECMA.

V prostředí CLR existuje věc, která programátorům velmi usnadňuje práci s operační pamětí – Garbage Collector. Jedná se o sadu složitých algoritmů pro uvolňování nepotřebných programových objektů z paměti. Díky Garbage Collectoru se již vývojáři nemusejí starat o přiřazování nebo uvolňování operační paměti a odpadá tak riziko již zmíněné nekorektní práce s ní, která ve většině situací končí pádem aplikace.

Velmi důležitou vlastností, kterou dal Microsoft své platformě do vínku, je CLS – Common Language Specification (Společná jazyková specifikace). S ní souvisí CTS neboli Common Type System (společný typový systém). Výsledkem použití CLS a CTS je rovnocennost programovacích jazyků. Jinými slovy – pro vývoj .NET aplikací je možné použít jeden z několika programovacích jazyků vyšší úrovně. Může se jednat například o:

  • C#, nový jazyk vyvinutý pro .NET,
  • Visual Basic .NET, nová generace oblíbeného jazyku Visual Basic,
  • J#, což je jazyk se syntaxí rozšířeného jazyka Java,
  • managed C++, kde slovíčko managed označuje možnost psát řízený kód pro .NET dokonce i v tak od svého počátku „neřízeném“ jazyce

S tím souvisí i další výhoda této platformy – výrobcům třetích stran nic nebrání ve vývoji dalších jazyků… Jediné, co stačí, je, aby tento nový jazyk měl kompilátor se schopností kompilovat zdrojové kódy do mezijazyku MSIL; to znamená splnit specifikaci CLS danou Microsoftem.

Typy aplikací

Nyní se pomalu dostáváme k otázce, která určitě napadla většinu čtenářů, kteří se dočetli až sem: „Co všechno můžu v .NETu vytvořit?“

Platforma Microsoft .NET vývojářům nabízí široké možnosti. Začít můžete u klasických konzolových aplikací, které pro vstup a výstup používají příkazový řádek. Daleko zajímavější jsou aplikace s využitím knihoven Windows.Forms, interně využívající Microsoft Win32 API. Výsledkem jejich použití jsou známé formulářové aplikace pro Windows. Možné je také vytvořit aplikaci běžící jako proces na pozadí systému – službu Windows.

Dalším odvětvím jsou webové aplikace nahrazující zastaralé ASP 2.0; a to jejich nová generace označovaná jako ASP .NET, za kterou si dle mého názoru Microsoft zaslouží velkou pochvalu, protože tím posunul tvorbu dynamických webů o pořádný kus dál. Technologií ASP .NET se budeme blíže zabývat v některém z příštích dílů tohoto seriálu.

Neméně zajímavým typem aplikací jsou takzvané Webové služby, které umožňují pomocí všudypřítomného http protokolu na vzdáleném serveru volat metody. A samozřejmě nesmíme zapomenout na možnost tvorby knihoven tříd, bez které by vyspělá platforma, kterou Microsoft .NET bezesporu je, neměla velký smysl.

V příštím díle našeho seriálu se začneme přímo zabývat jazykem C# a názorně si ukážeme, jak napsat první velmi jednoduchou aplikaci.

Diskuze (67) Další článek: Atari vrací život konzole 7800

Témata článku: , , , , , , , , , , , , , , , , , ,