V minulém díle
jsme si představili, co to Atlas je, jakou má zhruba strukturu a k čemu
se hodí. Jak jsem slíbil budeme se dnes věnovat serverové části Atlasu a
ukážeme si, jak jednoduše přetvořit stávající ASP.NET 2.0 aplikaci
na AJAXovou. Tak s chutí do toho :)
V minulém díle jsem popsal, jakou má strukturu klientská část
Atlasu, v tomto se podíváme na zoubek té serverové. Součástí
serverové části jsou komponenty – Extendery, které obohacují současné
ASP.NET komponenty o interaktivní chování podobné tomu, jak se
chovají komponenty WinForms. Krom extenderů jsou zde ještě komponenty
ScriptManger – popsaný v minulém díle –
UpdatePanel a UpdateProgress zajišťující a
informující o průběhu komunikace klientského skriptu s aplikací
na serveru.
Teď trochu odbočím. Možná si vzpomínáte na jednu
z novinek ASP.NET, tzv. CallBacky. První zmínky vyvolaly bouřlivé
reakce, ale posléze ticho po pěšině. CallBack
je alternativou PostBacku, kdy se např. při stránkování v
GridView nemusí reloadovat celá stránka, ale je využito
objektu XmlHTTPRequest k aktualizaci datové mřížky, čímž se
snižuje datový tok a nemusí se celá stránka přerenderovat. CallBack je
jistou formou AJAXu, ale většinou je potřeba psát ručně, kusy JavaScriptu
a ty registrovat na serveru a posléze je posílat. Tento způsob zdá se mi
poněkud neohrabaným.
Zpět k Atlasu. Atlas myšlenku CallBacku dotahuje do použitelné podoby a v poslední verzi dokáže díky CallBackům z obyčejné ASP.NET stránky udělat AJAXovou :) Nyní malá ukázka. Mějme GridView s povoleným řazením podle libovolného sloupce a stránkování.
<asp:GridView ID="GridView1" runat="server" AllowPaging="true" AllowSorting="true"
AutoGenerateColumns="true" DataSourceID="ZdrojDat">
</asp:GridView>
Takováto mřížka při každém přechodu na další stránku nebo srovnání podle určitého sloupce PostBackuje a překreslí se stránka s požadovaným pohledem. Nyní uděláme lehkou úpravu a k PostBackům docházet nebude, docílíme AJAXu :)
<atlas:ScriptManager ID="TheScriptManager" EnablePartialRendering="true" runat="server" />
<atlas:UpdatePanel ID="GridUpdate" runat="server" Mode="Always">
<ContentTemplate>
<asp:GridView ID="DatovaMrizka" runat="server" AllowPaging="true" AllowSorting="true"
AutoGenerateColumns="true" DataSourceID="ZdrojDat">
</asp:GridView>
</ContentTemplate>
</atlas:UpdatePanel>
Ano, to je skoro vše! Za předpokladu, že jste použili šablonu Atlas
WebSite ve vašem Visual WebDeveloperu nebo Visual Studiu – to předpokládá
nainstalovaný Atlas z domovské
stránky. Nezapomeňte, že každá Atlasová serverová komponenta
potřebuje mít ve stránce ScriptManager jinak nebude
fungovat.
Tak máme za sebou první ukázku kódu. Docela pohoda ne? :) No, serverový Atlas nejsou jen komponenty, ale také webové služby a bridže. Ono se totiž dá v Atlasu programovat minimálně podle dvou hlavních schémat.
- Serverovou stranu využijete pouze na krmení klientské strany daty pomocí webových služeb a na klientu pojedeme všechno v JavaScriptu, XML-Scriptu a XHTML šablonách.
- Využijeme podpory CallBacků u serverových komponent a použijeme extendery na vylepšení uživatelského zážitku s klasickými komponentami.
Třetí možností je využití obou postupů, ale pak v tom asi bude pěkný guláš. Druhou možnost jsme si už předvedli, povězme si něco o té první. Tak tedy, Atlas pomocí HttpHandleru přebírá volání webových služeb (ASMX) a přidává vytváření JavaScriptových proxy pro metody služby. Pomocí těchto proxy funkcí komunikuje klientský Atlas s webovou službou. Tady v dřívějších verzích nastal problém, nešlo efektivně konzumovat služby třetích stran, které jsme nemohli donutit, aby nám vracely požadované JS proxy.
Poslední verze přichází s tzv. bridži. Bridž je handler, který konzumuje služby třetí strany a vytváří k ní potřebné proxy funkce. Klientská strana pak volá tento bridž namísto služby. Třetí podporovanou možností je konzumace služeb postavených na WCF dříve známé jako Indigo. Další novinkou poslední verze je XmlDataSource pro klientskou stranu. Můžete konzumovat libovolný XML soubor, pohybovat se kouzlech pomocí XPath a provádět transformace pomocí XSLT. Tak to by bylo ke zdrojům dat.
Prozatím poslední ze serverových částí je možnost vytváření Gadgets. Gadgets jsou kousky kódu – komponenty – určené pro začlenění na portál Live.com (popř. Start.com) a pravděpodobně půjdou tyto komponenty integrovat i do chystaného Desktop Sidebaru ve Windows Vista. Tímto bych zakončil druhý díl povídání o Atlasu a příště bychom si mohli vytvořit nějakou použitelnou aplikaci :)











Komentáře
borek
11.51 - 11. dubna 2006 | #
Aleš Roubíček
12.18 - 11. dubna 2006 | #
kryšot
22.01 - 28. června 2006 | #
Aleš Roubíček
08.17 - 29. června 2006 | #
Místo pro tvůj názor