Silverlight tartalom beágyazása - szerkesztés vagy hekkelés?

Valamelyik nap azon okosság ütött szöget a fejembe, hogy vajon hogy tudok a postom tartalmába futó Silverlight alkalmazást belevarázsolni. Ha nagyon egyszerűen akarom megválaszolni, akkor így:

 

Ennyivel nem tudhatom le a dolgot, szóval nézzük meg rendesen, hogy miről is van szó tulajdonképpen. Sajnos nem mehetünk el a tény mellett, hogy még mindig beta (alfa refresh!) változatban van a Silverlight 1.1, ez sok kellemetlenséggel képes megajándékozni bennünket. Először is, amire szükségem van, hogy definiáljak egy DIV elemet az oldalban, ahova beilleszti majd magát a csoda Open-mouthed. Másodszor, némi javascript adalék is kell, rögtön kettő is: Silverlight.js, ami detektálja, hoyg rendelkezünk-e megfelelő installált verzióval, valamint elvégzi az XAML betöltését, illetve, egy második darabka, ami az előzőt ráveszi, hogy mindezt csinálja meg, és megmondja, hogy melyik XAML-el is kell dolgozni. A Silverlight.js adott, a legenerált solution része, már csak fel kell juttatni a szerverre (lásd később). Amit be kell ágyaznom a jelent post-ba, az a projektben TestPage.html-ben, és a hozzátartozó TestPage.html.js-ben találom meg. Kivágom, bemásolom, kicsit átszerkesztgetem benne az elérési utakat. Ezen kívül fel kell még erőltetnem a szerverre legalább két fájlt: egy XAML-t, amiből inicializálom a Silverlight felületet (ezt adom meg a javascript-ben is), és a hozzá tartozó logikát, lefordított dll formájában.

Itt jön be a képbe az a tény, hogy ehhez tudni kell, hogy a szerverre hogyan tudok feljuttatni fájlokat, illetve azok hol tárolódnak (szerencsére erről van némi infóm Hot).

Aztán, itt újra eszünkbe kell jusson, hogy jelen verziójában például csakis relatívan tudok hivatkozni az XAML-ben a hozzá tartozó dll-re, nincs más lehetőség, akármit írok oda, relatívan értelmezi (és ClientBin mappát sem tudok a szerveren létrehozni, szóval ezeket a statikus fájlokat testre kell szabnom a szervernek megfelelően). Később ez válzoni fog - legalábbis ezt ígérik - de most ez van, ennyivel kell alkotni.

Vagy például, ha nem akarok statikusan bedrótozni mindent, akkor most be kell érnem azzal, hogy a cross-domain hívás semmilyen tekintetben nem megy. Vagy meg tudom oldani a saját domainen belül az adat szolgátatását (bárhogy Nerd), vagy statikus értékekkel dolgozok. Ez természetesen megkeseríti a fejlesztést is, mert általában a fejlesztői gépen minden megoldható Wink, és a környezet is épp tökéletes, (vagy ha nem, akkor azzá tudom tenni), viszont egy publikus blog szerverre nincs admin jogom (de most legalább első kézből vannak infóim Surprised).

Szóval, fájlokat legegyszerűbben úgy tudom feltölteni, hogy jelen postomhoz csatolom mellékletként, így felekrülnek valahová, és arra az elérési útra alapozva írom meg a kódot. A postom tartalmát a megfelelő javascript injektáláshoz LiveWriter HTML code nézete segítségével készítettem el. Következő lépés lehetne, hogy LiveWriter plugint írjak Silverlight alkalmazás publikálásához, de ezt nem akarom elkapkodni Nerd, így most hekkeltem inkább. Úgyis a végeredmény számít, legalábbis most biztosan Open-mouthed.

Ezzel a kis demóval sikerült megbizonyosodnom, hogy nem lehetetlen a dolog, de épp ugyanúgy nincs is rá biztosíték, hogy mindig mindenhol menne. Itt megy.


xaml Page.xaml (4 kB)

dll msdnkk_contributors.dll (17 kB)

js Silverlight.js (8 kB)




2007.09.05. 19:50:47 | Permalink | Hozzászólások: 0 | Tárgyszavak:


  • Kocka büfé

    Dávid Zoltán Itt a nyár. Ennek ürügyén bemutatom másik kedves helyemet: a Kockát, az MSDNK Kompetencia Központ néhány tagjának kedves helyét. A Kocka az egyetem (BME) mellett található, a Magyar Tudósok Körútján (házszáma szerintem nincs). Alapját egy bádog-bódé alkotja, mely köré az idők folyamán jelentős infrastruktúra épült: kinti sörpadok és asztalok, régi székekből készült padok, mellékhelyiség, saját ültetésű bokrok és virágok, esőtetők. Közvetlen közelében teniszpálya és uszoda van, valamint az Infoparkot átszelő kerékpárút mellé épült. Tovább »
  • Amikor a ListView nem az igazi

    Balássy György (MS RD, ASP.NET MVP, MCTS) Az ASP.NET-ben megjelent ListView vezérlő igazi főnyeremény, tud mindent, amit kell, kézbentartható vele a generált HTML kód, ráadásul van hozzá designer támogatás is a Visual Studioban. Csak éppen vízfejűbb, mint bármely más listás adatmegjelenítő vezérlő. Tovább »


Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások