Kedves "saxus"!
Azt írtad fentebb, hogy: "egy rakás alapdolog hiányzik belőle és hogy nem kellett volna külön frameworkot használni, hanem mehetett volna a rendes .NET FW-re"
A Silverlight-ban (és a Moonlight-ban is) a .NET/Mono Framework funkcionalitásának csak a töredéke található (6.1 MB-ba amúgy se sok minden férne bele). Ez azért van így, hogy a Plug-in minél gyorsabban letöltődjön a felhasználó gépére - egyszer, először és utoljára.
A Silverlight gyakorlatilag részhalmaza a .NET Framework-nek. Benne vannak az alaptípusok, a Framework Class Library lényege, multimédia, grafika, animáció, felhasználói felület vezérlők, XML-kezelés, hálózati kommunkáció, WCF webszolgáltatás hívás, biztonsági felügyelet. A Silverlight csak funkcionalitásában és kompatibilitásban közös a "nagy" Framework-kel, a kódbázisa nem (vagy csak nagyon kis mértékben). Ugyanis rengeteg dolgot erősen optimalizálva vagy lecsontozva kellett megvalósítani, újraírni.
Nálunk intenzív használatban van, de nem multimédiára (az ugyanis nem érdekes), hanem gazdag felhasználói felülettel rendelkező, többrétegű, elosztott üzleti/ügyviteli alkalmazások fejlesztésére, melyek böngészőben vagy attól függetlenül (out of browser módban) működnek.
Sokan azt hiszik a Silverlight/Moonligh = videó lejátszás. Súlyos hiba ezt gondolni, mert ennél sokkal-sokkal több. A Silverlight olyan, mint egy homokozó, a vele készített (főként intranet/RIA vagy vékony kliens alkalmazások) felhasználói felülete minden böngészőben, tehát IE, FF, Chrome alatt és azon kívül is pontosan ugyanúgy működnek és ugyanúgy néznek ki. Nem függünk a böngésző szeszélyétől (valójában a böngésző csak azért van, hogy elindítsa a Silverlight alkalmazást).
A Silverlight alkalmazás (ami nálunk valójában csak a felhasználói felületet és a háttérkomponensekkel való kommunikációt jelenti) az első használatkor letöltődik a webszerverről a kliensre úgynevezett "xap" (zap) fájl formájában. Ez a fájl ZIP formátumú és bele vannak csomagolva a felhasználói felületet alkotó .NET szerelvények, erőforrások, egyebek. Legközelebb már csak akkor töltődik le a szerverről (automatikusan), ha a GUI változik és a kliensen régebbi van, mint a szerveren.
Egy Silverlight alkalmazásnak csak a kliens gépen lévő fájlrendszer egy meghatározott és elkülönített területére van joga írni, melynek neve: Isolated Storage, és a méretkorlátja kezdetben 1 MB (out of browser módban 20 MB). Ha ennél több hely kell vagy ha az Isolated Storage területen kívülre is kellene írni/olvasni, akkor a Silverlight Plug-in automatikusan kéri a felhasználó engedélyét hozzá (kikerülni nem lehet). Azonban a helyi merevlemez írását/olvasásást csak a felhasználó által birtokolt helyekig lehet kiterjeszteni (Windows-on ez a saját dokumentum könyvtár, stb). Engedélyt kér akkor is, ha az alkalmazás szeretné a gépen lévő mikrofont vagy a kamerát bekapcsolni.
Természetesen más opciók, lehetőségek, optimalizációk is vannak, de idő hiányában a további magyarázatot későbbre halasztjuk.
A fejlesztői csoportom és jómagam (összesen nyolcan vagyunk) szeretjük a Silverlight-ot - és nem a multimédiás képessége miatt. Csekély mérete ellenére elképesztően sok programozási lehetőséget tartalmaz és egy jól átgondolt infrastruktúra van mögötte. A felhasználói felület definíciója XAML (XML) nyelven van megfogalmazva, a hozzá tartozó mögöttes logika pedig C# (vagy bármely más .NET nyelven), így a fejlesztése és a fejlesztői környezete - kis túlzással - nem sokban különbözik a hagyományos .NET alkalmazástól. Tökmindegy, hogy vastag, vékony, webes vagy mobil kliens (Windows Mobile 7), a Silveright-os alkalmazást mindegyik platformra ugyanúgy kell készíteni. Óriási könnyebbség ez a programozónak.
További információ:
- Silverlight demó alkalmazások (ha mást nem, ezt mindenképp érdemes megnézni)
- Silverlight vezérlők demója
- A legjobb Silverlight programozási könyv (angolul)
- Silverlight programozási könyv (magyarul)
Köszönöm a figyelmet.
Jó munkát, jó egészséget!
Üdv,
PutAbout