V předchozích dvou kapitolách jsme psali o použití COM komponenty a její začlenění do našeho .NET projektu. V prostředí .NET existuje nový typ komponent rozšiřující vlastnosti COM a odstraňující jejich nedostatky.
V COM technologii se používá metoda GUID - nutnost generování jedinečného kódu pro každou komponentu, její metody. .NET komponenty oproti tomu samy obsahují svůj vlastní popis obsažený v segmentech označených jako manifest. Metadata oproti tomu se starají o volání patřičných metod, řeší problém s verzováním DLL, umísťují do paměti instance tříd. Také se nemusejí starat o dobu života objektu. Většinu potřebných operací zajistí CLR.
Následující tabulka poukazuje na rozdíly mezi COM komponentami a .NET komponentami
Tabulka 10.1. COM Vs. .NET komponenty
COM | .NET komponenty |
globální přístup ke komponentám na počítači | žádný globální přístup |
nutná registrace DLL | žádná potřeba registrace |
informace registru a DLL jsou na dvou různých místech (DLL peklo) | Kompletní informace nezbytné pro rozpoznání verze a ostatních jsou na jednom místě (DLL ráj) |
spouštěno neřízeném prostředí | spouštěno v řízeném prostředí |
pro ASP aplikace je nezbytný pro začlenění COM restart serveru | není třeba restart |
Technologie .NET komponent určitě přináší zlepšení pro práci s komponentami, nicméně mnoho firem vložilo nemalé finanční prostředky do technologie COM. Navíc tato technologie se vyskytuje ve světě informačních technologií více než sedm let. Je tedy přinejmenším zdlouhavé přepsat všechny COM komponenty na komponenty .NET.
Vytváření .NET komponenty je triviální.
class MaPrvniKomponenta { public int ReturnTen() { return 2*5; } } |
- prakticky v každém případě, když jsme vytvořili nějakou třídu, jsme mohli vytvořit i komponentu. Stačí pouze ve třídě, ze které chceme komponentu vytvořit, nevložit metodu Main a uložit ji jako knihovnu (DLL), pomocí příkazové řádky takto:
csc /t:library /out:nazevCSsouboru.dll nazevCSsouboru.cs
V prostředí Visual Studia vytvoříme nový projekt s názvem Class Library, vložíme do ní kód komponenty a běžným způsobem kompilujeme.
Pokud budeme tuto komponentu někdy v budoucnu chtít používat, postupujeme podobně jako při výběru COM komponenty, pouze s tím rozdílem, že vybereme klikneme na tlačítko Procházet (Browse) a umístíme ji.