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: Software, Microsoft, Programování, Výsledné dílo, Java Runtime, Zajímavý typ, Dobrý způsob, Známý princip, Náročné použití, Platforma, Předchozí odstavec, Vyspělá platforma, Visual Basic, Klíčová vlastnost, Garbage, Náročné prostředí, Dobrý výsledek, Vysoká chybovost


Určitě si přečtěte

Šmírování kamerami Googlu: Koukněte, co šíleného se objevilo na Street View

Šmírování kamerami Googlu: Koukněte, co šíleného se objevilo na Street View

Google stále fotí celý svět do své služby Street View. A novodobou zábavou je hledat v mapách Googlu vtipné záběry. Podívejte se na výběr nejlepších!

redakce | 6

Biblická potopa Česka: Jak bychom dopadli, kdyby nás zatopil oceán

Biblická potopa Česka: Jak bychom dopadli, kdyby nás zatopil oceán

** Představte si biblickou potopu ** Nejprve zaniknou Děčín a Břeclav, pak i Brno a Praha ** Hlavním městem se stane Jihlava a zbytky Čechů přežijí na Kvildě

Jakub Čížek | 92

Nové iPhony, hodinky a další novinky Applu: Zase bude za co utrácet

Nové iPhony, hodinky a další novinky Applu: Zase bude za co utrácet

Dnes proběhla další velká prezentační akce Applu, na které došlo k odhalení nových iPhonů a dalších novinek. Událost jsme sledovali online, a tak se můžete podívat na chronologický zápis těch nejdůležitějších informací.

David Polesný | 136

Pojďme programovat elektroniku: České chytré zásuvky Netio pro kutily i firmy

Pojďme programovat elektroniku: České chytré zásuvky Netio pro kutily i firmy

** Wi-Fi zásuvky nevyrábí pouze Čína ** Vyzkoušeli jsme českou Netio PowerCable ** Je přímo určená pro vývojáře, má totiž jednoduché JSON API

Jakub Čížek | 43

Nejlepší notebooky do 10 000 korun: Co koupit a čemu se raději vyhnout

Nejlepší notebooky do 10 000 korun: Co koupit a čemu se raději vyhnout

** Do deseti tisíc korun lze dnes koupit slušné notebooky ** V nabídce ale i tak převládají zastaralé a pomalé modely ** Poradíme, jak dobře vybrat i s omezeným rozpočtem

David Polesný | 98


Aktuální číslo časopisu Computer

Megatest 20 procesorů

Srovnání 15 True Wireless sluchátek

Vyplatí se tisknout fotografie doma?

Vybíráme nejlepší základní desky