Vibor Cipan,
Microsoft Student Consultant
Microsoft Akademski programiŠto je to Windows Presentation Framework (WPF), ranije poznat pod nazivom Avalon? Ako autor ovih redaka može istaknuti svoju omiljenu tehnologiju koja će nam se uskoro predstaviti – onda je to za njega svakako WPF. A vi pročitajte ovaj članak i za svoju aktivnost možete osvojiti vrijednu knjigu!
Za one manje pjesnički raspoložene duše možemo reći kako je WPF grafički podsustav Windowsa. Doći će nam s Vistom, no moći ćemo ga koristiti i na Windows XP SP2 i Windows Server 2003 SP1 kao dio novog .NET 3.0 Frameworka (koji se donedavno nazivao WinFX).
WPF ipak nije samo rezerviran za Vistu već će se moći instalirati i kao posebna komponenta za Windows XP SP2 i Windows Server 2003 SP1 kao dio WinFX Runtime Components – programerskog okruženja koje omogućava razvoj u managed kodu proširujući Microsoftovu .NET platformu. Omogućava konzistentan programerski model za izgradnju aplikacija – bez obzira bile one predviđene za pokretanje na stolnom (desktop) računalu ili za pokretanje korištenjem web preglednika. WPF omogućava i bogatije upravljanje, dizajn i razvoj vizualnih elemenata za Windows okruženje. Drugim riječima, ujedinit će korisničko sučelje, 2D i 3D crtanje, fiksne i prilagodljive dokumente, vektorsku i rastersku grafiku, animacije, povezivanje s izvorima podataka (dana binding), audio i video.
Osim standardnog WPF-a, tu je još i WPF/E – Windows Presentation Foundation Everywhere koji možemo smatrati dijelom WPF-a koji je temeljen na JavaScriptu i XAML-u (eXtensible Application Markup Language). U slučaju WPF/E 3D osobine nisu podržane, no dobra svojstva WPF-a poput vektorske grafike, XPS-a i hardverske akceleracije se podržana.
Pregled mogućnosti WPF-aPremda je na jednom mjestu teško dati pregled svih mogućnosti WPF-a i njegovih karakteristika (a to nije niti cilj u ovom članku), ovdje ću istaknuti samo najvažnije karakteristike koje će se najviše doticati kako krajnjih korisnika, tako i razvojnih inženjera.
Grafički sustavSvi grafički elementi se oslanjaju na Direct3D, a ovo uključuje i elemente poput prozora, izbornika, gumba… Ideja je da se na ovaj način postavi jedinstven i jasan način za prikazivanje grafike kao i nekih naprednijih svojstava. Dodatna je prednost što će se time koristiti GPU (Graphics Processing Unit) koji se nalazi na grafičkim karticama i time će se samom CPU (Central Processing Unit) na računalu ostaviti više mogućnosti vremena za druge zadatke – dakle, rasterećuje se procesor, a grafički se zadaci dodjeljuju procesoru na grafičkoj kartici. Cijeli će grafički sustav biti temeljen na vektorima, a to konkretno znači da će gumbi, ikone i ostali elementi imati mnogo bolju prilagodbu na promjene dimenzija i razlučivosti nego dosadašnji elementi temeljeni na rasterima. Upravo zbog boljeg skaliranja, Vista će i na zaslonima visokih razlučivosti izgledati odlično, a to također možemo zahvaliti WPF-u koji se brine da se PPI (pixels per inch) na zaslonima povećava u skladu s potrebama! Još je jedna važna prednost činjenice da se sustav sada temelji na vektorskoj grafici – skaliranje dokumenata će sada biti značajno elegantnije (to se još dodatno povezuje s XML Paper Specification svojstvom).
Deployment
Ono što mi se osobito sviđa je činjenica da WPF nije namijenjen samo kreiranju tipičnih desktop temeljenih rješenja. Umjesto toga, WPF vam daje slobodu izbora – možete kreirati tipična desktop samostojeća rješenja, a možete koristiti i XAML Browser Application model. Ono što je odlično jest i činjenica da je programski model za oba tipa aplikacija u potpunosti jednak! Samostojeće aplikacije se smatraju „full trust“ aplikacijama i imaju pristup svim računalnim resursima. S druge strane, XBAP-ovi su programi koji si izvršavaju unutar vašeg preglednika Internet Explorera i izvršavaju se kao „partial trust“ aplikacije. Ukoliko iz XBAP-a želite pokrenuti nekih HTML ili obrnuto, neće dobiti nikakav sigurnosni upit ili sličnu pojavu… Izvoženjem XBAP-ova u „partial trust“ modu se sprječavaju sigurnosni problemi.
InteroperabilnostJednom riječju – podržana. A sada malo više o tome… Ukoliko napišete svoju aplikaciju u standardnom Win32 obliku, u nju ćete moći ugraditi svoj WPF kod… i naravno, pogađate, obrat vrijedi – možete koristiti svoj Win32 kod s novim WPF-om. Podržana je i interoperabilnost s Winodws Forms i to kroz klase ElementHost i WindowsFormsHost.
MultimedijaGDI+ s WPF-om odlazi u prošlost. Sjetite se samo kako je bilo naporno i često frustrirajuće pokušati nacrtati nešto u Visual Basicu 6. Stvar se bitno popravila s novim VB .net (i općenito s .NET platformom), no i dalje je bilo „filckeringa“, i nije bilo moguće napraviti neku lijepu animaciju ili fizikalnu simulaciju bez poznavanja DirectX-a i dobrano se uhvatiti pisanja koda. I dok to za neke možda predstavlja poseban doživljaj i užitak, drugi će znati cijeniti ono što im donosi WPF a to su, između ostalog, tzv „shape primitives“ za 2D grafiku u skup raznih geometrija, transformacija… Naravno 3D svojstva WPF su ograničenja od samog Direct3D-a, no WPF daju mnogo tješniju vezu s korisničkim sučeljem, dokumentima i multimedijom. Podrška za većinu uobičajenih slikovnih zapisa se podrazumijeva, a podržani su WMV, MPEG i AVI formati zapisa. Tekst je moguće prikazivati uporabom ClearType tehnologije, no i nešto starije OpenType tehnologije za fontove.
Korisničko sučelje
Uz WPF dolazi niz kontrola poput gumba, padajućih lista i izbornika… Ono što je uistinu ovo jest odvojenost samog izgleda sučelja od koda koji se može izvršavati u pozadini. Predloške kontrola je moguće modificirati do te mjere da se izgled iste u potpunosti može izmijeniti, a koliko je cijela arhitektura fleksibilna, možda najbolje govori činjenica da bilo koja kontrola može u sebi sadržavati neku drugu kontrolu. Screenshot koji se ovdje nalazi to možda najbolje dočarava.
Slika prikazuje jedan veliki gumb koji na sebi ima gradijent s tri različita prijelaza. Na taj je gumb dodan još jedan bijeli gumb na kojem se nalaze crveni gumb s tekst „Drugi gumb“, CheckBox kontrola s tekstom „Označi me“ te ComboBox koji kao jedan od svojih „itema“ sadrži Slider kontrolu. Pojedine kontrole su rotirane, iskrivljene i modificirane na razne načine kako bi mogli steći dojam o realnoj snazi i fleksibilnosti WPF-a.
Ukoliko se i sami želite poigrati s WPF-om, ohrabrujem vas do to i učinite. Kreirajte svoja korisnička sučelja uporabom WPF tehnologije, pošaljite nam ih na vibor.cipan@studentconsultant.org i možete osvojiti knjigu u izadnju MS Pressa. Kao alat za izradu sučelja i upoznavanje s WPF-om, predlažem vam Microsoft Expression Interactive Designer u kombinaciji s Microsoft Expression Graphic Designer alatom. Oba su dostupna za preuzimanje s Microsoft Download stranica.