Zoom alebo záhuba?

Posledných pár mesiacov to bolo rušné, frustrujúce, no zároveň zaujímavé a obohacujúce obdobie. Všetko to začalo, keď som sa rozhodol napísať vlastnú webovú aplikáciu „Deep Zoom“ pomocou Silverlight, ako som sľúbil vo svojom poslednom stĺpci. Niekedy sa pri skoršom beta kóde oplatí počkať pár týždňov, kým začnete, a to bol aj môj prípad. Očakával som, že budem musieť napísať obslužné nástroje udalostí myši, aby používateľ mohol priblížiť a posúvať obrázok, ale kým som bol stále po premýšľaní nad tým bola vydaná nová verzia Deep Zoom Composer, ktorá napísala celý tento kód za mňa a vytvorila projekt Silverlight 2 naštartovať!

Zoom alebo záhuba?

"Výborne," pomyslel som si, "tento projekt bude hračka." Projekt využívajúci skorú beta technológiu s beta programovacími nástrojmi – čo by sa mohlo pokaziť? Vlastne takmer všetko. Rovnako ako úplné preinštalovanie balíka Visual Studio Service Pack 1, doplnku Silverlight pre Visual Studio a Silverlight SDK. Na opravu jednej chyby.

Dokonca aj vtedy tam bola ďalšia chyba – tá, ktorá mi spôsobila dva dni naťahovania sa – stále tam bola. Keď napíšete aplikáciu Silverlight vo VS2008, panel návrhu je iba ukážkou, aj keď sa nazýva „Design“ a kurzor sa zmení, keď sa naň pokúsite umiestniť ovládací prvok! Toto je známa chyba, ktorá bude opravená v neskorších zostavách, ale koľko času to premrhalo, pretože som veril, že to bolo spôsobené zlou inštaláciou nástrojov.

Aplikácie Silverlight bežne navrhujete v Expression Blend, ktorý bol tiež aktualizovaný z marcového náhľadu na júnový náhľad, keď som kódoval. Vzhľadom na to všetko sekanie a obmieňanie Silverlightu sa možno pýtate „prečo sa obťažovať“? No, Deep Zoom je jeden dôvod a druhý je jeho dátová väzba. Predtým, ako zívate pri vyhliadke na ďalší spôsob prístupu k databázam spoločnosti Microsoft, tentoraz je väzba skutočne iná, úprimná! Dátová väzba je od základu zabudovaná do Silverlight a WPF, takže takmer každý objekt na a stránka môže byť dátovo viazaná buď na tradičný databázový zdroj alebo, čo je ešte zaujímavejšie, na akýkoľvek iný objekt.

Čo to znamená? Predstavte si, že chcete posuvný ovládač na stránke zmeniť uhol objektu, povedzme ukazovateľ na číselníku. Predtým ste napísali nejaký kód udalosti, takže keď sa posúvač zmení, prekreslíte druhý objekt pod novým uhlom. Vo WPF/Silverlight jednoducho dátovo spojíte metódu „Rotate Transform“ objektu s vlastnosťou value posuvníka – a jednoducho to funguje!

Práve na demonštrácii spoločnosti Microsoft od Josha Twista som sa prvýkrát dozvedel o tomto použití dátovej väzby a jeho prezentácia a kód sú k dispozícii na stiahnutie na adrese www.pcpro.co.uk/links/168webapps. Po tejto prezentácii nastal medzi publikom skutočný rozruch a veľa sa hovorilo o tom, čo by sa dalo dosiahnuť pomocou tejto techniky. Zmenilo sa to, že sme videli, ako vývojár vytvára pekne vyzerajúcu grafiku, kým sme sa pozerali mrmle „nie som dizajnér“ a nakreslím červený štvorec do modrého kruhu s textovým poľom, ktorý má predstavovať používateľské rozhranie. No tak, chlapci, vo svojich ukážkach máte vopred napísané úryvky kódu, tak prečo nám neposkytnúť slušné návrhy, aby sme videli, čo sa dá dosiahnuť? Všetci vývojári a dizajnéri vedia, že je to detail, ktorý potopí alebo nadnáša projekt. K tejto téme sa vrátim v budúcom čísle, ale medzitým sa pozrite na pracovný príklad na www.pcpro.co.uk/links/168webapps2.

Toto demo bolo jedným z mnohých na zábavnom Fest08, každoročnom podujatí používateľskej skupiny NxtGen (NxtGenUG). Na podujatie ma pozval jeden zo zakladateľov NxtGenUG, Richard Costall, s ktorým som sa stretol vo Vegas na konferencii Microsoft Mix08. Táto nezisková užívateľská skupina bola založená v roku 2006 av súčasnosti má približne 200 členov. Jeho cieľom je pomôcť vývojárom zostať v obraze s najnovšími technológiami od Microsoftu (nie je to zlý nápad vzhľadom na neustále bombardovanie z Redmondu). Tam, kde sa NxtGen snaží byť iný, je zábavný prvok, ktorý charakterizuje jeho udalosti: atmosféra bola uvoľnená a spoločenská na rozdiel od mnohých takýchto „geek festov“, na ktorých som bol. A k tomu všetkému bola zadarmo aj pizza! Pozrite sa na týchto chlapcov na www.nxtgenug.net: Rozhodol som sa zaplatiť a pripojiť sa, takže možno sa tam stretneme.