ASP.NET AJAX Control ToolKit – Alapok
Ez egy példaalkalmazáshoz tartozó leírás! Az alkalmazás erről a címről tölthető el:
http://cid-8dcaf3b0da4fb828.skydrive.live.com/embedrowdetail.aspx/ACTsorozat/ACT|_I|_basics.pdf
A most induló cikksorozattal szeretném bemutatni nektek az ASP.NET AJAX Control Toolkit használatát a gyakorlatban. Az első cikkben azt próbálom megmutatni, hogy mit kell tennünk ahhoz, hogy elkezdhessük a fejlesztést, majd az utána jövő cikkekben pedig mindig egyszerre csak egy vezérlőt fogunk majd tárgyalni. De ennyire még ne fussunk előre, kezdjük az alapoknál!
Mi is az AJAX Control Toolkit?
Az AJAX Control Toolkit egy
nyílt forráskódú community project, vagyis MS-en belüli és MS-en kívüli fejlesztők együttműködésének eredménye. Így olyan eszközöket sikerült kifejleszteniük, melyek segítik a fejlesztőket mindennapi munkájukban, hogy
AJAX-enabled weboldalakat készíthessen, egyszerűen. Tehát a Control Toolkit
komponensek-gyűjteménye, melyek azt teszik lehetővé, hogy
RIA-t (
Rich Internet Application) fejleszthessük, gazdag kliens oldali felülettel. A CT egyik legnagyobb előnye az, hogy nem csak IE6-ra optimalizált kódról van szó, hanem
IE7, illetve
FF,
Safari alatt is garantált működésről és helyes megjelenítésről! (ellentétben az ASP.NET 2.0-val
)
Mint ahogy a nevéből is látszik, főleg az
AJAX Extensions-re, illetve az
AJAX Library Framework-re épül. Nem okoz nagy meglepetést számunkra az a tény, hogy a CT is szintén egy keretrendszer, ha tudjuk, hogy az AJAX Extensions illetve AJAX Library is tartalmaz vagy maga is egy framework. Ebből az az előnyük származik, hogy akár saját komponenseket is fejleszthetünk gyorsan és hatékonyan, melyhez egy eléggé nagy SDK nyújt segítséget.
A teljesség kedvéért még annyit érdemes megemlíteni az AJAX Control Toolkit-ről, hogy régebben az „
AJAX projekt” része volt, mely
Atlas fedőnév alatt futott. De jó MS szokáshoz híven megjelenés előtt egy pár hónappal átnevezték és szétszedték, így lett az Atlas-ból:
AJAX Extensions, AJAX Library illetve
AJAX Control Toolkit.
Milyen részekből áll?
Alapjában háromféle komponens található a Control Toolkit-ben: Control, Behavior, Extender.
A Controlok olyan vezérlők, melyek AJAX-os funkcionalitással rendelkeznek.
A Behavior, mint ahogy a nevéből következik, egy már meglévő ASP.NET 2.0-ás vezérlő viselkedését, funkcionalitását változtatja meg, (általában kibővíti). Ez felelős a kliens oldali részért, így egyértelmű, hogy JavaScript-ben lett megírva.
A Behavior-öket általában együtt fogjuk használni az Extender-ökkel. Ennek oka az, hogy az Extender a szerver oldali párja a dolognak.
Ez a sok dolog egyetlen egy dll-ben kapott helyet, amelyet nem kell a GAC-ban (global assembly cache) tárolnunk, hogy használhassuk. (lentebb bővebben)
Honnan tölthetem le?Az AJAX Extensions-szel ellentétben ez nem az
MSDC-ről (download center) tölthető le, hanem a
CodePlex-ről! Ennek az az oka, hogy ez egy community project. Tehát az alábbi címről tölthető le:
http://www.codeplex.com/AtlasControlToolkit/Itt válasszuk a
Releases fület. 4 tömörített állományt tölthetünk le, aszerint hogy
.NET Framework 2.0-át vagy
.NET Framework 3.5-öt (beta2) használunk. Ezen belül még eldönthetjük, hogy van-e szükségünk a forráskódokra, ha nincs a
NoSoucre-s verziót válasszuk.
(Természetesen azért innen is el lehet jutni az oldalra:
http://www.asp.net/ajax/downloads/)
????Telepítés????
Miután letöltöttük valamelyik zip fájlt, látni fogjuk, hogy nincsen semmilyen telepítő program (msi, exe) a csomagban. Akkor mégis hogyan telepítsük fel? Ahhoz, hogy erre a kérdésre tudjuk válaszolni, először meg kell néznünk miket is rejt ez a sok mappa.
A zip fájlokat érdemes az ASP.NET AJAX Extensions mellé kicsomagolni, vagyis a %systemroot%\Program Files\Microsoft ASP.NET\ mappába. A forráskóddal együtt letöltött verzió 6 mappát tartalmaz: AjaxControlExtender, AjaxControlToolkit, Binaries, SampleWebSite, TemplateVSI,ToolkitTests.
– AjaxControlExtender: Egyetlen egy VSI-t tartalmaz, amely segítségével telepíthetjük az ajax control toolkit template-ket. Ezeknek, a sablonoknak az az egyetlen előnyük, hogy alapban tartalmazni fogja már a projekt Bin mappája az egyetlen szükséges dll fájlt (erre a használatnál külön kitérek majd, hogy az egy szerelvény, mégse egy szerelvény). Illetve meg lesz adva egy alapértelmezett tagprefix-e a vezérlőknek. A tagprefix nem más, mint a markup fájlban lévő tagekhez tartozó névtér, pl.: a <asp:TextBox> esetén az asp a tagprefix. A template-knél az alapértelmezett névtér az AjaxControlToolkit. Telepítése next, next, finish elven történik: (A VSI fájl elérhető a TemplateVSI\Bin mappából is!)
– AjaxControlToolkit: Ez a mappa tartalmazza az összes Control teljes forráskódját, beleértve a kliens és szerver oldali logikát illetve a szükséges resource fájlokat (css, képek). A szerver oldali kód C# nyelven érhető csak el! Ezeken kívül még található itt 4 mappa, én csak az ExtenderBase mappára hívnám fel a figyelmet, mely tartalmazza az Interfészeket, Attribútumokat, Eseménykezelőket, stb. (érdemes egyszer egy kis időt szakítani a kódokra!)
–
Binaries, TemplateVSI: Itt 3 szerelvény található. A
BuildVSI.dll azért felölős, hogy a TemplateVSI mappában lévő lefordítatlan sablonokat le tudjuk fordítani. A másik kettő assembly-ről semmilyen infót nem találtam, így inkább róluk nem mondok most semmit. Aki akarja visszafejtheti a bennünk lévő kódot
Reflector-ral, és láthatja, hogy nagyon sok
Token objektum van
.
–
SampleWebSite, ToolKitTest: Ebben a mappában található az SDK, ami egy az egyben a
http://www.asp.net/ajax/control-toolkit/live/ oldal. Tehát kipróbálhatjuk az összes vezérlőt a sajátgépünk anélkül, hogy bármit programoznánk. Ehhez a Control Toolkit gyökérmappájában lévő
solution (
sln) fájlt nyissuk meg, majd futtassuk a SampleWebSite project-et. A
ToolkitTest projekt egy olyan webalkalmazás, mely automatikusan teszteli a Control Toolkit vezérlőket.
A
NoSource-os verziókba csak az AjaxControlExtender mappa illetve a SampleWebSite mappa került bele!
A .NET Framework 3.5 Beta2-höz kiadott CT csomagok, első látásra annyival nyújtanak többet, hogy már van a Toolbox-ban minden vezérlőnek saját képe. Ha másért nem, akkor ezért biztosan megéri már venni Windows Vistát!
Használata
Kétféleképpen használhatjuk az AJAX Control Toolkit-et: Template segítségével, vagy anélkül. Csak a másodikat mutatom meg, hiszen az első használata teljesen egyértelmű, illetve valószínűleg egy már meglévő webalkalmazásunkat szeretnénk, majd felturbózni a CT-vel.
Ahhoz, hogy kényelmesen tudjuk használni az AJAX Control Toolkit vezérlőket érdemes hozzáadni őket a Toolbox-hoz. Ezt úgy tehetjük meg, hogy először létrehozunk egy új csoportot a CT vezérlőknek: Toolbox, jobb klikk >> Add Tab, majd csattogjuk be AJAX Control Toolkit.
Ez után kattintsunk ismét jobb egérgombbal a Toolbox-ra, majd helyi menüből válasszuk ki a Choose Items.. menüpontot. A felugró Choose Toolbox Items ablakban válasszuk a .NET Framework Components fület. Legalul kattintsunk a Browse gombra, és keressük ki az AjaxControlToolkit.dll szerelvényt. Ezt a SampleWebSite projekt Bin mappájában találhatjuk meg! Tehát ha az AJAX Extensions mellé csomagoltuk ki a CT-t, akkor az elérési út:
%systemroot%\Program Files\Microsoft ASP.NET\ASPNET Control Toolkit\SampleWebSite\Bin\AjaxControlToolkit.dll.
(A mappában még van egy jó pár szerelvény, amelyek arra szolgálnak, hogy a CalendarExtender lokalizációja automatikus legyen!).
Kattintsunk az Open gombra, majd láthatjuk a felsorolt listában, hogy mind a 35 vezérlő (folyamatosan bővül) ki van pipálva. Végül kattintsunk az OK gombra, és a Toolbox-ból máris elérhetővé tettük az összes CT vezérlőt.
Ha most ráhúzzuk valamelyik vezérlőt az egyik oldalunkra, akkor bekerül egy Register direktíva a markup fájlba. Ezt elkerülendő a web.config-ban beállítjuk, hogy minden oldalról elérhető legyen a szerelvény, illetve még a Tagprefix-et is megszabjuk. Ehhez először természetesen be kell másolnunk a webalkalmazásunk Bin mappájába az AjaxControlToolkit.dll fájlt. Utána a web.config system.web/pages konfig-szekción belül a controls elem alatt definiálunk egy új bejegyzést, íme:
<system.web>
<pages>
<controls>
<add namespace="AjaxControlToolkit" assembly="AjaxControlToolkit" tagPrefix="ajaxtoolkit"/>
</controls>
</pages>
…
</system.web>
És ennyi! Most már mindent tudunk a CT alapjairól, így a következő cikkben bele is vágunk az Accodion vezérlő elemzésébe.
Külön köszönet Virág Andrásnak a Control Toolkit-es preziért!