Architektura Microsoft .NET Framework – 1. díl
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Architektura Microsoft .NET Framework – 1. dílArchitektura Microsoft .NET Framework – 1. díl

 
Hledat
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Laser Game Ostrava

Architektura Microsoft .NET Framework – 1. díl

Google       Google       3. 5. 2006       18 747×

  • Kompilace zdrojového kódu do řízených modulů
  • Slučování řízených modulů do Assembly

Reklama
Reklama

Platforma .NET Framework přináší mnoho nových konceptů, technologií a pojmů. Cílem tohoto mini-seriálu je podat přehled o architektuře .NET Framework, seznámit vás s novými technologiemi.


Kompilace zdrojového kódu do řízených modulů

Předpokládám, že jste se rozhodli vyvíjet pro tuto platformu. První věcí je se rozhodnout, jaký typ aplikace nebo komponenty chcete vyvíjet. Předpokládejme, že v tomto máte jasno, aplikace je navržená, dokumentace napsaná. Nezbývá nic jiného než začít vyvíjet.

Dalším krokem je vybrat si programovací jazyk, což je samo o sobě složité rozhodnutí, neboť každý jazyk má rozdílné schopnosti. Když se např. rozhodnete pro řízený C++ , získáte velice dobrý přístup k nízkoúrovňovým funkcím. Můžete se starat o paměť přesně jak chcete, vytvářet vlákna jednoduše, když je potřebujete atd. Na druhou stranu, Visual Basic 6 vám poskytne možnost pohodlného vytváření GUI a jednoduchý přístup ke COM objektům či databázím.

Jestliže používáte .NET Framework, CLR (Common Language Runtime) vám poskytne velký výběr programovacích jazyků. Nezáleží na tom, v jakém jazyce tedy pracujete, všechny mají přístup ke všem klíčovým vlastnostem CLR. Např. CLR používá výjimky k detekování chybných stavů, takže každý jazyk má k těmto výjimkám přístup. To samé platí pro vytvářením vláken apod.

Nezáleží na tom, v jakém jazyce tedy pracujete, všechny mají přístup ke všem klíčovým vlastnostem CLR.

Ve skutečnosti CLR nemá ani ponětí o tom, jaký programovací jazyk používáte. Znamená to, že si jednoduše vyberete takový jazyk, jaký vám vyhovuje. Musí však být platformou podporován.

Microsoft podporuje v této platformě tyto nejrozšířenější jazyky: C++ s řízenou nástavbou, C#, Visual Basic.NET, JScript, Java a takový „prostředník“ (IL) Assembler. Není problém nalézt kompilátory pro Alice, APL, COBOL, Component Pascal, Eiffel, Fortran, Haskell, Mercury, ML, Mondrian, Oberon, Perl, Python, RPG, Scheme a Smalltalk.

Následující schéma zobrazuje proces kompilace zdrojového kódu:

Jak je patrné ze schématu, zdrojový kód můžete vytvořit v jakémkoliv podporovaném jazyce. Pak použijeme příslušný kompilátor, který zkontroluje syntaxi a analyzuje kód. Výsledkem bude řízený (managed) modul, který je standardním Windows přenositelným PE (portable executable) souborem. Tyto soubory pak CLR spouští.

Řízený modul se skládá z těchto částí:

PE hlavička
Jedná se o standardní Windows PE hlavičku, která je podobná hlavičce formátu COFF (Common Object File Format). PE hlavička udává typ souboru – GUI (formulář), CUI (konzole) nebo DLL – a také čas, kdy byl modul sestaven. U modulů obsahujících jen IL kód je velké množství těchto informací ignorováno. Moduly obsahující nativní CPU kód zde udávají informace o nativním CPU kódu.
Hlavička CLR
Zde jsou informace, kterými jsou charakteristické řízené moduly. Je zde požadovaná verze CLR, několik příznaků, umístění vstupního bodu modulu (metoda Main), lokalizace či velikost metadat, zdroje (resources), tzv. srong name a několik dalších informací.
Metadata
Každý řízený modul obsahuje tabulku metadat, kde jsou 2 hlavní typy: ty, které popisují typy a členy definované ve zdrojovém kódu, a ty, které popisují typy a členy, na které je odkazováno ve zdrojovém kódu.
Intermediate Language (IL)
Toto je kód vyprodukovaný kompilátorem. Později ho CLR zkompiluje do nativního CPU kódu.

Většina kompilátorů kompilovala zdrojový kód pro specifickou architekturu procesoru, jako např. x86, Sloha nebo PowerPC. Kompilátory pro platformu .NET Framework produkují IL kód, který bude probrán později.

CLR požaduje od každého řízeného modulu metadata. Metadata jsou tabulky dat, která popisují, co je v modulu (typy a členy). Dále mají tabulku obsahující informace o referencích (importované typy a členy). Metadata jsou dokonalejším typem knihovny než IDL a na rozdíl od IDL, metadata jsou vždy pevně svázána s IL kódem, který modul obsahuje.

Metadata mají mnoho využití. Zde jsou některá z nich:

  • Díky metadatům nepotřebujeme při kompilaci hlavičkové soubory ani knihovny, protože všechny informace o typech/členech jsou obsaženy přímo u místa, kde jsou v IL kódu implementovány. Kompilátor si tyto informace jednoduše přečte přímo z řízeného modulu.
  • Visual Studio používá metadata v technologii IntelliSence. Ta vám pomáhá při psaní kódu, poskytne vám veškeré informace o třídách a jejich členech.
  • CLR používá metadata k ověřování všech operací, aby byla zachována typová bezpečnost.
  • Díky metadatům můžeme daný objekt serializovat a zpět deseriliazovat na jiném počítači.
  • Také garbage collector používá tyto informace. Jednoduše tak zjistí, o jaký objekt se jedná – včetně jeho členů a referencí.

V další části si metadata popíšeme podrobněji. Dále si v této části představíme intermediate language (IL kód).

Kompilátory platformy .NET Framework produkují pouze řízené moduly, které požadují CLR ke svému běhu. Znamená to, že koncoví uživatelé potřebují mít nainstalovanou CLR. Tato situace je podobná jako u MFC nebo VB 6 aplikací, kde je také potřeba MFC nebo VB knihoven.

Microsoft C++ kompilátor produkuje nativní EXE či DLL soubory bez potřeby CLR. Avšak přidáním nového parametru může kompilátor produkovat plnohodnotný řízený kód, který již CLR vyžaduje. C++ kompilátor vám jako jediný umožňuje vyvíjet nativní i řízené moduly. Umožňuje také to, že do řízeného modulu umístíme jak řízený, tak i nativní kód. Můžete pak využívat výhod řízeného kódu a pokračovat v již rozpracovaném nativním kódu.


Slučování řízených modulů do Assembly

CLR nepracuje přímo s řízenými moduly, pracuje s Assembly. Assembly je logicky uspořádaná skupina řízených modulů nebo resource souborů. Dále je Assembly nejmenší jednotkou, která se používá, chrání a čísluje verzemi. V závislosti na kompilátoru či dalších nástrojů můžete vytvářet jednosouborové assembly nebo vícesouborové assembly.

Assembly je nejmenší jednotkou, která se používá, chrání a čísluje verzemi.

Schéma by mělo pomoci pochopit, co to assembly je:

Jak vyplývá ze schématu, nástroji poskytneme soubory řízených modulů a zdrojů (data). Ten vyprodukuje jediný PE soubor, který reprezentuje skupinu těchto modulů a zdrojů. Tento PE soubor obsahuje blok dat nazvaný manifest, což není nic jiného než kolekce tabulek s metadaty. Tyto tabulky pak popisují celou assembly: jaké soubory ji tvoří, exportované či implementované typy, zdroje atd.

Moduly v aseembly s sebou nesou informace také o verzi a referencích na jiné assembly. Tyto informace dělají assembly samo popisující. Jinými slovy, CLR ví o assembly vše, co potřebuje k jejímu spuštění.

Co nás čeká přístě

Příště si vysvětlíme proces načítání assembly a jak pracuje JIT (just in time) kompilace.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

2 názory  —  2 nové  
Hlasování bylo ukončeno    
0 hlasů
Google
Autor má rád programování, čtení, spaní a špagety. Nemá rád dechovku, rajskou.

Nové články

Obrázek ke článku Využití .htaccess na malém webu

Využití .htaccess na malém webu

V dnešní době existuje spoustu cms, které mnohdy ale vůbec nepotřebujeme a stačila by nám pouze základní funkčnost k úpravě url, přesměrování. K tomuto účelu je ideální .htaccess soubor, který nám se všemi těmato úpravami umí pomoct.

Reklama
Reklama
Obrázek ke článku Češi tlačí obce do otevřené komunikace – Mobilní Rozhlas si loni pořídilo dalších 171 měst a obcí

Češi tlačí obce do otevřené komunikace – Mobilní Rozhlas si loni pořídilo dalších 171 měst a obcí

Obyvatelé Česka se mnohem více zapojují do veřejného dění. Umožňují jim to přímo samosprávy, které stále častěji využívají nástroje takzvané chytré komunikace a participace. Dokládají to data za rok 2019 ekosystému Mobilní Rozhlas, lídra v oblasti chytré obecní komunikace. Zapojilo se do něj 171 nových měst a obcí, zaregistrovalo celkem 100 tisíc občanů a místní samosprávy jeho prostřednictvím rozeslaly třikrát více adresných zpráv než v roce 2018

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032020 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý