Vzájemná funkční spolupráce mezi jazyky
Tento oddíl popisuje integrovanou podporu pro vzájemnou funkční spolupráci jazyků v modulu CLR (Common Language Runtime) a vysvětluje jakou roli hraje Common Language Specification (specifikace CLS) v umožnění zaručené vzájemné funkční spolupráce mezi jazyky.
Vzájemná funkční spolupráce jazyků je schopnost kódu spolupracovat s kódem, který je napsán pomocí jiného programovacího jazyka. Vzájemná funkční spolupráce jazyků může pomoci maximalizovat opětovné použití kódu a zvýšuje efektivnost vývojového procesu.
Protože vývojáři používají širokou škálu nástrojů a technologií, z nichž každý může podporovat různé vlastnosti a typy, bylo historicky obtížné zajistit vzájemnou funkční spolupráci jazyků. Nicméně jazykové kompilátory a nástroje, které se zaměřují na modul CLR (Common Language Runtime) těží z vestavěné podpory vzájemné funkční spolupráce jazyků v modulu runtime.
Modul CLR (Common Language Runtime) poskytuje nezbytný základ pro vzájemnou funkční spolupráci jazyků specifikováním a vynucováním specifikace CTS (Common Type System) a také poskytováním metadat. Protože všechny jazyky zaměřené na modul runtime se drží pravidel specifikace CTS (common type system) pro definování a používání typů, využití typů je konzistentní napříč jazyky. Metadata umožňují vzájemnou funkční spolupráci jazyků definováním jednotného mechanismu pro ukládání a získávání informací o typech. Kompilátory ukládají informace o typech jako metadata a modul CLR (Common Language Runtime) používá tuto informaci k poskytování služeb během vykonávání; modul runtime může spravovat vykonávání vícejazyčných aplikací, protože všechny informace o typech jsou uloženy a získány stejným způsobem nezávisle na jazyku, ve kterém byl kód napsán.
Spravovaný kód těží z podpory vzájemné funkční spolupráce jazyků v modulu runtime následujícími způsoby:
Typy mohou dědit implementaci od jiných typů, předat objekty jiným metodám typu a volat metody definované na jiných typech bez ohledu na jazyk, ve kterém jsou typy implementovány.
Ladící programy, profilovací programy nebo jiné nástroje musí pochopit pouze jediné prostředí – jazyk MSIL (Microsoft Intermediate Language) a metadata pro modul CLR (Common Language Runtime) – a mohou podporovat programovací jazyk, který je zaměřen na modul runtime.
Zpracování výjimek je konzistentní napříč jazyky. Váš kód může v jednom jazyce vyvolat výjimku a tato výjimka může být zachycena a pochopena objektem napsaným v jiném jazyce.
Přestože modul runtime poskytuje všechen spravovaný kód s podporou pro vykonávání ve více jazykovém prostředí, není zde zaručeno, že funkčnost vytvořených typů lze plně využívat programovacími jazyky, které používají jiní vývojáři. A to především proto, že každý kompilátor jazyka zaměřený na modul runtime používá typový systém a metadata k podpoře jeho vlastní jedinečné sady vlastností jazyka. V případech, kdy si nejste jisti, ve kterém jazyce bude volající kód napsán, pravděpodobně nevíte, zda předložené vlastnosti vaší komponenty jsou přístupné volajícímu. Například pokud vámi zvolený jazyk poskytuje podporu pro celá čísla bez znaménka (unsigned integers), můžete navrhnout metodu s parametrem typu UInt32. Nicméně tato metoda by byla nepoužitelná z jazyka, který nemá žádný pojem o celých číslech bez znaménka.
Aby bylo zajištěno, že váš spravovaný kód je přístupný vývojářům, kteří používají jiné programovací jazyky, platforma .NET Framework poskytuje Specifikace CLS (Common Language Specification) (specifikaci CLS), která popisuje základní sadu vlastností jazyka a definuje pravidla, jak tyto vlastnosti používat. Další informace o dodržování specifikace CLS v komponentách a nástrojích naleznete v tématu Zápis kódu odpovídajícího specifikaci CLS.
Příbuzná témata
Title |
Popis |
---|---|
Vysvětluje potřebu sady vlastností, která je společná pro všechny jazyky a identifikuje pravidla a vlastnosti specifikace CLS. |
|
Popisuje význam dodržování specifikace CLS pro komponenty a identifikuje úrovně dodržení specifikace CLS pro nástroje. |
|
Popisuje jak jsou typy deklarovány, používány a spravovány modulem CLR (Common Language Runtime). |
|
Vysvětluje mechanismus modulu CLR (Common Language Runtime) pro popisování typů a ukládání těchto informací s typem samotným. |