„The WOW starts now!“ – tokiu šūkiu daugiau nei prieš du mėnesius buvo pristatyta naujoji „Windows Vista“ operacinė sistema. Tačiau šis „Wow“ efektas pasiekė ne visus. Dažnai „Vista“ nuvertinama iki pagražintos „Windows XP“, pamirštant iš esmės atnaujintus langų vaizdavimo, tinklo ryšių, tvarkyklių, saugumo valdymo ir kitus mechanizmus. Daug naujovių pateikiama drauge su operacine sistema išleistame .NET3.0 karkase (framework), kuris yra ypač svarbus „Windows Vista komponentas“.
Apie skaitmeninės asmens tapatybės valdymą internete ir tam skirtą .NET3.0 naujovę „Windows InfoCard“ jau rašėme gruodžio mėnesio „Kompiuterijoje“. Šįkart mūsų dėmesio centre – „Windows Presentation Foundation“ (WPF, anksčiau vadintas „Avalon“). Tai galingas posistemis, leidžiantis kurti modernias, visus grafinius kompiuterio pajėgumus išnaudojančias vartotojo sąsajas. Pažvelkime, ką jis geba ir kaip žada pakeisti kasdien naudojamas programas bei interneto tinklalapius.
Animuojant vektorinį objektą, jo kokybė nenukenčia. Kairėje — įprasto paveikslėlio didinimas.
„Windows Presentation Foundation“: techninė dalis
Pažintį su WPF derėtų pradėti nuo XAML. Jei techninės naujosios technologijos subtilybės jūsų nedomina, šią dalį galite praleisti. XAML (eXtensible Application Markup Language) – XML pagrindu sukurta kalba vartotojo sąsajos elementams (UI) aprašyti. Paprasčiausias XAML dokumentas galėtų atrodyti maždaug taip:
<Page x:Class="MyNamespace.MyPageCode">
<Button Click="ClickHandler">Labas :)</Buttton>
</Page>
XAML sąsajos elementai – vektoriniai objektai, tad animuojant (pavyzdžiui, gerokai didinant) jų grafinė kokybė nesuprastėja. Tokiu pat principu jau daugelį metų veikia „Adobe Flash“ animacijos ir W3C konsorciumo kuriamas bei XML pagrįstas SVG (Scalable Vector Graphics) formatas.
XAML dokumente galima kurti tam tikras animacijas, tačiau visavertė interaktyvi programa naudosis C# programiniu kodu, esančiu atskirame faile. Toks išvaizdos ir programinio kodo atskyrimas lengvina bendrą programuotojų bei dizainerių darbą. Nuo šiol dizainerio sukurtą programos išvaizdą (XAML dokumentą) galima pritaikyti tiesiogiai, taip išvengiant varginamo grafinių elementų perkėlimo iš .jpg ar kitokių eskizų.
Taigi WPF – programinė sąsaja (API), leidžianti valdyti XAML dokumentų objektus. Tai gali būti paprasti paveikslėliai, trimačiai objektai, vaizdo klipai, garso įrašai, XPS (XML Paper Specification) dokumentai ir t. t. Grafiniais objektais manipuliuoti pasitelkiamos visos vaizdo plokštės galimybės, tad trimačiai vaizdai mažiau apkrauna pagrindinį procesorių. Iki šiol galingų vaizdo plokščių pajėgumus išnaudodavo tik kompiuteriniai žaidimai, o dabar šiais privalumais mėgausimės ir naujų WPF programų aplinkose. Verta žinoti ir tai, kad „Windows Vista“ operacinės sistemos aplinka „Aero“ taip pat sukurta WPF pagrindu.
Keturios .NET3.0 dalys: „Windows Presentation Foundation“, „Windows Workflow Foundation“, „Windows InfoCard ir Windows Communication Foundation“ |
WPF programos gali veikti įprastai arba naršyklėje. Veikiančios naršyklėje (XBAP – XAML Browser Application) iš pažiūros nesiskiria nuo įprasto tinklalapio. Jose gali būti „back“ ir „forward“ funkcijos, programa saugoma laikinojoje naršyklės atmintinėje (cache). XBAP objektas gali būti ir tinklalapio dalis, apsupta įprasto (X)HTML kodo. Žinoma, naršyklėje veikiančių programų teisės griežtai ribojamos – joms neleidžiama rašyti ir skaityti kompiuteryje saugomų duomenų, bendrauti su prie kompiuterio prijungtais įrenginiais. Kiekvienai tokiai programai diske skiriama 512 KB svarbiausiai informacijai apie vartotoją išsaugoti. Tai prilygsta įprastuose tinklalapiuose naudojamiems slapukams (cookies).
Šiuo metu XBAP programos veikia tik „Windows Vista“ ir „Windows XP“ (su .NET3.0) sistemose ir tik Internet Explorer naršyklėje. Tačiau WPF grupės vadovas Ellisonas Tayloras žada, jog XBAP priedas, skirtas „Mozilla Firefox „naršyklei, bus išleistas šių metų viduryje kartu su .NET3.5 pataisomis ir naująja „Visual Studio „Orcas“ versija. Na, o sėkmingo .NET klono „Mono“, skirto „Linux“, „FreeBSD“, „Mac OS“ ir kitoms operacinėms sistemoms, kūrėjai yra pasiryžę sukurti ir trečiosios .NET versijos programinių bibliotekų alternatyvas.
Nepaisant to, XBAP programos lieka „Windows“ pasaulio atstovėmis. Norintiems visiško suderinamumo su įvairiomis naršyklėmis ir operacinėmis sistemomis „Microsoft“ sukūrė „WPF/E – WPF Everywhere“. Tai naršyklių priedų rinkinys, leidžiantis išnaudoti nemažai WPF galimybių visose populiariose naršyklėse, operacinėse sistemose ir net skirtinguose įrenginiuose (kompiuteriuose, delninukuose, mobiliuosiuose telefonuose). WPF/E kol kas dar kuriamas, galima atsisiųsti jo demonstracinę „Community Preview“ versiją „Windows“ ir „Mac OS“ sistemoms. XAML dokumentai gali būti kuriami paprasta tekstų rengykle (Notepad, XAMLPad) arba specialiomis priemonėmis. Šiuo metu tam geriausiai tinka „Microsoft Expression Blend“ ir „Electricrain ZAM3D“. Programinis C# kodas rašomas „Microsoft Visual Studio“ priemonėmis.
WPF programų pavyzdžiai
Kitaip nei daugybės kitų „Windows Vista“ funkcijų, naujojo .NET3.0 (anksčiau vadinto „WinFX“) privalumus vartotojai pastebės ne iš karto. Reikia palaukti, kol programinės įrangos gamintojai išleis naujas .NET3.0 technologijas išnaudojančias programų versijas. Šiuo metu dauguma programų, turinčių WPF vartotojo sąsajas, sukurtos demonstraciniais arba eksperimentiniais tikslais. Pasirinkome keletą įdomiausių ir įspūdingiausių programų, geriausiai atskleidžiančių ateities vartotojo sąsajų tendencijas.
„The New York Times Reader“
Tai viena pirmųjų komercinių WPF programų. „The digital newspaper that reads like the real thing“ (skaitmeninis laikraštis, kurį skaitysi lyg tikrą) – taip apie naująją programą rašo „NY Times“. WPF technologija tekstus leido rašyti 1950 m. Edwino W. Shaaro sukurtu „Imperial“ šriftu, kuris popieriniame laikraštyje naudojamas nuo 1967 m. Ekrane matomas vaizdas panašesnis į originalų.
Keičiant lango arba šrifto dydį, WPF automatiškai performatuoja stulpelių plotį bei skaičių, nuotraukų dydžius, tad tekstą galima lengviau skaityti, išlaikomas norimas laikraščio stilius. Pažymėjus tekstą žymekliu, galima prisegti ranka rašytas pastabas. Patogi ir „Topic Explorer“ (temų naršymo) funkcija, rodanti panašios tematikos straipsnius ir skatinanti žvelgti plačiau. „The New York Times Reader“ straipsnių sąrašą atnaujina kas 30 minučių arba nustatytu laiku. Pagrindinė programos paskirtis – naujienų skaitymas metro ir kitose vietose, kur nėra interneto ryšio arba juo naudotis pernelyg brangu. Įprastam naujienų skaitymui identiška programos kopija galėtų būti pateikiama įprastai, interneto naršyklėje. Kol kas tokia naršyklėje veikianti „The New York Times Reader“ versija nesukurta.
Šią WPF programą galite atsisiųsti iš nytimes.com svetainės. Kaip ir kitos čia minimos programos, ji veikia visose „Windows Vista“ ir „Windows XP +.NET3.0“ sistemose.
„Forbes reader“
Šiek tiek paprastesnę, tačiau labai panašią į „The New York Times Reader“ programą sukūrė ir žymus verslo žurnalas „Forbes“. Ji taip pat skirta skaitytojams, norintiems vartyti „Forbes“ ten, kur nėra interneto ryšio. Programa naudojasi jau minėtomis WPF stulpelių formatavimo ir grakščių animuotų perėjimų tarp puslapių funkcijomis.
Galite atsisiųsti iš „Forbes Reader“ svetainės.
„Turning The Pages“
Vieną pirmųjų naršyklėje veikiančių WPF programų drauge su „Microsoft“ sukūrė Nacionalinė Didžiosios Britanijos biblioteka (The British Library). Šioje unikalioje bibliotekoje galima rasti pačių vertingiausių šedevrų – nuo „Codex Sinaiticus“ (330-350 mūsų eros metais parašytas Naujasis Testamentas), Leonardo da Vinci užrašų ar pirmojo Gerarduso Mercatoro sukurto Europos žemėlapio iki iliustruoto Lewiso Carrollo rankraščio „Alisa stebuklų šalyje“ ir Mozarto dienoraščio. Patys vertingiausi kūriniai nuskenuoti didele raiška ir pateikti virtualių knygų pavidalu. Trimates knygas galima sukti, didinti, skaitant naudotis virtualiu didinamuoju stiklu. Verčiamas puslapis sklandžiai animuojamas, taip sukuriant tikroviškumo įspūdį. Peržiūrint knygą, galima klausytis garsiai skaitomų mokslininkų komentarų. Vartyti L. da Vinci rankraščius – išties nepakartojamas jausmas. Iki šiol toks virtualių trimačių knygų pateikimas tiesiog naršyklėje buvo sunkiai įmanomas. Galbūt programos kūrėjams vertėtų šiek tiek patobulinti vartotojo sąsają, tačiau tai, be abejo, viena įspūdingiausių WPF programų šiuo metu.
Knygas galite pavartyti užsukę į http://ttpdownload.bl.uk/browserapp.xbap.
„Yahoo Messenger“
Yahoo – viena pirmųjų, rengiančių populiarios programos WPF versiją „Windows Vista“ sistemai. Kol kas dar neišleistos programos funkcijų vaizdo pateiktį rasite http://messenger.yahoo.com/windowsvista.php puslapyje. „Windows Vista“ sistemai skirta „Yahoo Messenger“ programa išsiskirs visiškai nauja vartotojo sąsaja, bus geriau integruota į dalijimosi nuotraukomis portalą „Flickr“, turės daugybę malonių smulkmenų, kurios ankstesnėse „Windows“ platformose buvo sunkiai įmanomos arba reikalavo daug sistemos išteklių ir programuotojų pastangų.
2005 m. pabaigoje sujungtais „Yahoo“ ir MSN greitųjų žinučių tinklais šiuo metu naudojasi keli šimtai milijonų žmonių. Akivaizdu, kad naujosios „Yahoo Messenger“ populiarumas – neišvengiamas.
„OTTO store“
Drąsi vokiečių elektroninė parduotuvė „OTTO“ (otto.de) WPF pagrindu sukūrė el. drabužių parduotuvę. Įdomu tai, kad ši „OTTO“ programa sužadinama „ClickOnce“ principu: jai įdiegti nereikia administratoriaus teisių, o pats diegimo procesas gerokai paprastesnis. Programa sužadinama paspaudus nuorodą tinklalapyje ir įdiegiama teigiamai atsakius į vienintelį saugumo perspėjimą. Kiekvieną kartą prieš pradėdama darbą ji patikrina, ar nėra naujesnės programos versijos, o ją radusi automatiškai atsinaujina. Įdiegtą programą galima rasti ir įprastame „Windows „Start“ meniu. Tai labai paprastas ir efektyvus būdas platinti programas, nereikalaujančias gilios integracijos į operacinę sistemą.
„OTTO“ parduotuvė nesibaigiančioje modelių galerijoje leidžia išsirinkti patikusius drabužius, pasitelkus virtualią manekenę kurti jų derinius ir išsirinktą aprangą nedelsiant įsigyti. Tai naujos kartos elektroninės parduotuvės, kuriose pirkėjas jaučiasi patogiau galėdamas eksperimentuoti ir vartyti trimačius pirkinių modelius. Tiesa, „OTTO“ nepateikia trimačių modelių; juos matėme „Fluid“ ir „Microsoft“ sukurtoje „North Face“ demonstracinėje elektroninėje parduotuvėje.
Įspūdingą septynių minučių trukmės vaizdo įrašą rasite „Channel9“ portale. Kita populiari „Microsoft“ sukurtos WPF programos demonstracija.
„Snowboarding“
Ši „Metaliq“ sukurta programėlė turėtų patikti ne tik snieglentininkams. Trimatį „Aspen“ kalno vaizdą galima sukinėti, iš arčiau pažvelgti į įvairias trasas. Pateikiamas tiesioginis kurorto vaizdas (webcam) ir informacija apie orą. Nusileidus nuo kalno, prie kompiuterio galima prijungti GPS imtuvą, ir ši gudri programa tiksliai atkurs visą nusileidimo eigą. Sportininko judesius kartoja virtualus snieglentininkas. Diagramoje galima stebėti, kaip kinta nusileidimo greitis, aukštis, sportininko širdies ritmas. Šią WPF programą atsisiųsite iš www.metaliq.com/wpf.
„Roxio Central“
„Roxio Central“ – išvaizdi ir labai draugiška programa kompaktiniams diskams rašyti. Jos kūrėjai siekė ne „Nero Burning ROM“ funkcionalumo, o vaikiško paprastumo. Regis, jiems tai pavyko. Pasiklysti tarp keleto aiškiai išdėstytų funkcijų nesugebės nė vienas. Vienintelis trūkumas – „Audio CD“ diskus programa geba kurti tik iš .wav ir .wma garso įrašų, o daugelis melomanų savo muzikos kolekcijas saugo .mp3 formatu. Nepaisant to, tai išties neblogas ateities vartotojo sąsajos pavyzdys. Laikinai veikiančią versiją rasite „Roxio Central“ svetainėje.
„Chess“
Tai puikus WPF programos, veikiančios naršyklėje, pavyzdys. Ateityje turėtume išvysti ne tik trimačių šachmatų, bet ir daugybės kitų internetinių žaidimų, išradingai išnaudojančių pribloškiančias WPF ir visose platformose veikiančios WPF/E galimybes. Iki šiol interneto puslapiuose nebuvo įmanoma išnaudoti modernių vaizdo plokščių galimybių. Neabejojame, kad kas nors ims ir sukurs „Quake“ versiją, veikiančią tiesiog naršyklėje!
Šachmatais galite pažaisti svetainėje www.valil.com/winfx/ Valil.Chess.WinFX.xbap. Ieškantiems daugiau WPF programų siūlome apsilankyti „Channel9“ forumuose ir išmėginti „Wikipedia Explorer“, naujovišką nuotraukų albumą „Photobook“, pažiūrėti beprotišką japonų 3D animaciją „Dominoken“. O galbūt imti ir ką nors sukurti patiems!
Prognozės
Turėdami tiek laisvės ir galimybių, ne visi programų kūrėjai geba jomis pasinaudoti. Nors išvysime daugybę įspūdingų pavyzdžių su naujoviškomis, išradingai įgyvendintomis ir patogiomis vartotojo sąsajomis, tačiau bus ir baisių, neskoningų, kvailai sukonstruotų programų. Visi WPF programuotojai ir dizaineriai turėtų perskaityti „Microsoft“ išleistus patarimus „Windows Vista User Experience Guidelines“. Nors WPF sutiktas entuziastingai, tačiau kol kas tai visiškai nauja ir gerai neišbandyta technologija. Rimtos programinę įrangą kuriančios bendrovės lėtai perpranta naujoves, kuriomis „Microsoft“ pastaruoju metu užvertė rinką. Dalis programuotojų linkę palaukti tobulesnių XAML kūrimo priemonių arba palūkėti, kol technologija „subręs“.
Kita vertus, migracija WPF link užtruks dar ir dėl to, kad svarbi dalis vartotojų vis dar neturi tinkamos aparatinės įrangos (galingo procesoriaus, vaizdo plokštės, RAM), tad tobulesnės, tačiau sisteminiams reikalavimams reiklios programos jų nedomins. Internete taip pat dar keletą metų nematysime didelio WPF ir WPF/E proveržio. Nors XAML objektai yra atviri, o WPF/E programos nelaužo įprasto naudojimosi internetu modelio (veikia „back“ ir „forward“ funkcijos, tokius tinklalapius gali indeksuoti paieškos robotai ir t. t.), tačiau interaktyvaus animuoto turinio erdvėje tvirtai karaliauja „Adobe Flash“. Iki WPF/E objektų tinklalapiuose dar reikia šiek tiek „paaugti“, o tada jau būsime „Microsoft“ ir „Adobe“ kovos liudininkai.
Kad ir kaip susiklostytų įvykiai, nugalėtojai bus vartotojai ir programų kūrėjai. Naujos kartos programinė įranga leis ne tik nuvažiuoti iš taško A į tašką B, bet ir mėgautis kelione. Kiekviename darbe svarbu mėgti savo darbo priemones. Regis, ateityje kompiuteriai mus supras geriau, nes mums bus lengviau pasakyti, ko iš jų norime. Tad ir simpatija bus abipusė.