Metadata a komponenty popisující samy sebe
V minulosti, když byla softwarová komponenta (s příponou EXE nebo DLL) napsána v jednom jazyce, tak nemohla jednoduše použít komponentu, která byla napsána v jiném jazyce. Model COM obstaral krok k řešení tohoto problému. Rozhraní .NET Framework usnadňuje součinnost komponent tím, že umožňuje kompilátorům poslat dodatečné deklarativní informace do všech modulů a sestavení. Tyto informace, nazývané metadata, pomáhají k bezproblémové interakci mezi komponentami.
Metadata jsou binární informace popisující vaši aplikaci, která jsou uložena buď v přenositelném spustitelném souboru (PE) modulu CLR (Common Language Runtime) nebo v paměti. Při kompilaci kódu do přenositelného spustitelného souboru jsou metadata vložena do jedné části souboru a kód je převeden do jazyka MSIL (Microsoft Intermediate Language) a následně vložen do jiné části souboru. Každý typ nebo člen, který je definován a odkazován v modulu nebo sestavení je popsán v rámci metadat. Při vykonávání kódu modul runtime načte metadata do paměti a odkazuje se na ně za účelem zjištění informací o třídách, členech, dědičnosti a podobně.
Metadata jazykově nezávislým způsobem popisují každý typ nebo člen, který je v kódu definován. Metadata uchovávají následující informace:
Popis sestavení.
Identitu (název, verzi, jazykovou verzi, veřejný klíč).
Exportované typy.
Jiná sestavení, na kterých toto sestavení závisí.
Bezpečnostní oprávnění potřebné ke spuštění.
Popis typů.
Název, viditelnost, základní třídu a implementovaná rozhraní.
Členy (metody, pole, vlastnosti, události, vnořené typy).
Atributy.
- Další popisné elementy, které modifikují typy a členy.
Výhody metadat
Metadata jsou klíč k jednoduššímu programovacímu modelu a eliminují potřebu IDL (Interface Definition Language) souborů, hlavičkových souborů nebo externích metod odkazu komponenty. Metadata umožňují rozhraní .NET Framework automaticky popsat samy sebe způsobem nezávislým na jazyku a to zcela neviditelně, jak pro vývojáře, tak i uživatele. Kromě toho jsou metadata rozšiřitelná prostřednictvím použití atributů. Metadata poskytují následující hlavní výhody:
Samo-popisující soubory.
Moduly a sestavení modulu CLR (Common Language Runtime) jsou samo-popisné. Metadata modulů obsahují vše potřebné k interakci s jiným modulem. Metadata automaticky poskytují funkčnost IDL v modelu COM, takže můžete použít jeden soubor pro definici a implementaci obou. Moduly runtime a sestavení dokonce nevyžadují registraci u operačního systému. Následkem popisů používaných modulem runtime, zkompilovaný soubor vždy odráží skutečný kód, což zvyšuje spolehlivost aplikace.
Vzájemnou funkční spolupráci jazyků a snadnější návrh založený na komponentách.
Metadata vám poskytují všechny požadované informace o zkompilovaném kódu, abyste mohli dědit třídu z přenositelného spustitelného souboru, který je napsaný v jiném jazyce. Můžete bez obav o explicitní zařazování vytvořit instanci libovolné třídy napsané v libovolném spravovaném jazyce (libovolný jazyk, který se zaměřuje na modul CLR (Common Language Runtime)) nebo používat vlastní kód vzájemné funkční spolupráce.
Atributy.
Rozhraní .NET Framework umožňuje ve vašich kompilovaných souborech deklarovat specifické druhy metadat nazývané atributy. Atributy lze nalézt v celém rozhraní .NET Framework a slouží k detailnější kontrole toho, jak se program chová v průběhu svého běhu. Navíc je možné do souborů rozhraní .NET Framework poslat vlastní metadata prostřednictvím uživatelsky definovaných vlastních atributů. Další informace naleznete v tématu Rozšíření metadat pomocí atributů.
Příbuzná témata
Title |
Popis |
---|---|
Popisuje, jak jsou v přenositelných spustitelných souborech metadata uložena odděleně od jazyka MSIL (Microsoft Intermediate Language). |
|
Demonstruje s příkladem kódu použití metadat v době běhu. |
|
Popisuje jak používat atributy, psát vlastní atributy a jak získat informace, které jsou v atributech uloženy. |