Embedded .NET User Control
Réges régen a Microsoft megalkotta az ActiveX-t, amellyel objektum orientált újrahasznosítható komponenseket lehetett gyártani. Ezek a komponensek Component Object Model-en keresztül komunikálnak. Ezek legfőbb felhasználási területe az Internet Explorerbe épülő ActiveX komponensek lettek. Többek közt így épül be a Flash, a Windows Media Player és még sok más program az internet explorer-be.
A Microsoft célja a .NET keretrendszer megírásával egyértelműen az volt, hogy konkurenciát teremtsenk a Javának. Az évek azt bizonyítják hogy jóval túlteljesítette a tervet, és sikerült egy jól működő, hatékony keretrendszert alkotnia. Talán egy téren nem sikerült a java fölé kerekedni, ez pedig a böngészőbe épülő szoftverek támogatása.
Jávában ezeket Applet-eknek hívják. Általánosan is felvetődik a kérdés, hogy egy másik szoftveren belül futó alkalmazásnak milyen jogai lehetnek. Ezt jávában ügyesen megoldották, a digitális aláírás-ra mint hitelesítő eszközre esett a választásuk. Egy applet böngészőn belül ú.n. sandbox-ban fut. Itt igen kevés jogosultsága van a jávás programnak, ezzel biztosítva hogy egy applet ne tudjon bizalmas adatokoz jutni, illetve kárt tenni az őt futtató számítógépen. Ha egy applet-et a készítője digitálisan aláír akkor a kliens megbizonyosodhat arról, hogy a szoftver valóban a készítő műve, és ha megbízik a készítőben (elfogadja a hitelesítési kérést az applet részéről) akkor a program minden jogosultságot megkap futása alatt.
.NET alatt is készíthető beépülő modul, a Microsoft a már jól megszokott ActiveX környezetet használja ehhez. A beépülő modulunkat szokásos Windows User Control-ként kell elkészíteni, és dll-be fordítani. Majd a html kódba egy object tag használatával belinkelni az adott dll-t és megadni a User Control-t megvalósító osztály minősített nevét.
Talán a legnagyobb hátránya ennek a megvalósításnak az a fajta többszintű jogosultságkezelés ami a jávában megtalálható. Az egyedi alkalmazásonként állítható jogosultsági szint, ugyanis ott a felhasználó eldöntheti hogy megbízik-e az alkalmazásban(minden jogot megkap) vagy nem így továbbra is a sandbox-ban fut. :NET alatt nincs meg ez a lehetőség. A keretrendszer a beépülő moduloknál is a normál programoknál bevált biztonsági modellt alkalmazza. Tehát minden futó programnak megvan a saját Code Group-ja és a hozzá tartozó Permission Set-je. Ez beépülő alkalmazásoknál nagyon szűk, ha szeretnénk ettől több jogosultságot adni a beépülő modulunknak (pl.: fájlrendszerhez való hozzáférés) akkor (a biztonság érdekében) létre kell hozni egy új Code Group-ot és egy hozzá tartozó Permission Set-et, és ezt minden a beépülő programot futtató gépen. Persze meg lehet tenni, hogy a program alapértelmezett Permission Set-jét bővítjük, de ilyenkor a kliens gépen biztonsági rés jön létre.
Talán egy .NET-es beépülő programnak az előnyeit nem kell ecsetelnem, de ami számomra meglepő volt, hogy a program nem ismeri a System.Color névteret - tehát minden egyes grafikus komponensnek az összes színét meg kell adni kézzel.

Szia!
Éppen a szakdolgozatom írásának a kellős közepén járok és ez a cikk nagyon a témába vág. Érdeklődni szeretnék, hogy milyen forrást használtál a cikk megírásához? Azért érdekelne, mert lehet még több hasznos információt gyűjthetnék a .NET user control témáról. Előre is köszönöm a válaszod, és köszönöm, hogy megírtad ezt a cikket!
Szia, forrás a saját tapasztalat volt, illetve az msdn oldalak.
Sok sikert a szakdolgozathoz.