2011. október 2., vasárnap

WPF Alapok - Bevezetés

Egy ideje már tanulom a WPF-et  (Windows Presentation Foundation) és úgy gondoltam, hogy a kezdeti tapasztalataimat megosztom másokkal is. Mindezt azért teszem, mert ez a technológia teljesen lenyűgözött és szeretnék kis segítséget adni a Windows Forms-ról WPF-re való áttéréshez. Mert ez sajnos a legtöbbünknek nem fájdalommentes és főleg nem küzdelemmentes folyamat.
Az elmúlt időben a Silverlight ragyogó fénye elvonta a figyelmet a WPF-ről, pedig szerepe egyértelmű, leváltani a Windows Forms technológiát. A WPF nem a múlt, hanem a jelen és a jövő! Pontosan ezért érdemes a hobbi fejlesztőknek is lassan szépen áttérni erre a platformra, hogy még nagyobbra nyíljon a fejlesztők világa számukra is.
A bejegyzés írása közben találtam rá Ruzsinszki Gábor kiváló írására, amit itt egy az egyben újra le is közlök, mert tartalmát tekintve ugyanezt írtam volna le én is, csak más szavakkal (annak pedig sok értelme nem lenne). Az eredeti bejegyzés itt olvasható: WPF Alapok - 1. rész
A szerző ugyancsak érdekes blogja pedig itt követhető nyomon: http://www.webmaster442.hu/ amit mindenkinek csak ajánlani tudok. Akkor most következzen a bevezető írás...

Bevezetés

A WPF a jövő a .NET alapú grafikus alkalmazások terén. Egy ideje már elérhető technológia, azonban sokan még nem váltottak Windows Forms technológiáról, vagy ha váltottak is, akkor nagyjából egy éve tették meg ezt. (mint én is) Ezen cikksorozat a WPF alapjaival fog foglalkozni, és leginkább Windows Forms alapismeretekkel rendelkező felhasználóknak szánom. A cikksorozat elején tisztázni szeretném, hogy nem vagyok egy WPF guru, úgyhogy a tapasztaltabb fejlesztők találhatnak majd az írásokban hibákat, pontatlanságokat. Mivel senki sem tökéletes, ezért azt kérném, hogy az esetleg előforduló pontatlanságokat hozzászólásban jelezzék.

Mi fog kelleni a fejlesztéshez ?

Egy számítógép biztosan :) Ezen kívül szükség lesz még egy Visual Studio-ra, valamint Expression Blend-re. Az egyetemi/főiskolás hallgatók itt előnyben vannak, mert MSDNAA-ról letölthető mindkét termékből a legfrissebb változat. Ezen cikksorozatban a minta programok Visual Studio 2010-el és Expression Blend 4-el fognak készülni. Emiatt a cél keretrendszer a 4.0-ás .Net lesz. A számítógép, amin fejlesztünk, legalább legyen felszerelve egy hardver szinten DirectX 9 képes videokártyával, valamint az sem árt, ha az operációs rendszer Vista vagy újabb. Processzorból is ajánlott egy kétmagosat beszerezni, mivel néha igen lassú tud lenni a Visual Studio 2010 egy egymagos rendszeren (tapasztalatból mondom).

Mi is az a WPF?

A WPF egy DirectX alapú grafikus rendszer, amit arra terveztek, hogy leváltsa a Windows 95-től folyamatosan használt GDI grafikus rendszert és utódait. Az utóbbi pár évben a GDI legnagyobb problémája a kora mellett az lett, hogy a videokártya gyártók elkezdték hanyagolni a GDI hardveres gyorsítását lehetővé tévő driverek fejlesztését, ezért a processzornak kellet minden rajzolást végeznie. Kisebb alkalmazásoknál ez nem jelent gondot, de nagyobb alkalmazásoknál igen zavaró tud lenni a darabos rajzolás és a többi hasonló grafikai hiba. A kor azért jelent gondot a GDI esetén, mivel kompatibilitási okokból nem lehetett újra tervezni a mai kor elvárásainak, amik messze nem azok, mint amik 1995-ben voltak.
Emellett előnyt jelent a WPF esetén, hogy vektor grafikus a rendszer. Ez azért jó nekünk, mert a 16:9-es arányú monitorok megjelenésével beköszöntött a kismillió egy felbontás korszaka. Így igen nehéz olyan alkalmazásokat tervezni, amik jól néznek ki több felbontáson.

A WPF fő szolgáltatásai 
A mai alkalmazásoknál az is elvárás, hogy nézzenek is ki valahogy, mert nem elég, ha működik a program ezért pofásan is kell kinéznie. Ez kulcsszerepet kapott a WPF tervezése esetén, mivel nagyjából minden áttervezhető, módosítható, animálható, anélkül, hogy egy tonna saját kezűleg megírt programkóddal kellene megtámogatni az alkalmazásunkat. Mindezen tulajdonságok megvalósításához szükség volt egy új jelölő nyelvre is. Ez a XAML nevet kapta. Ez egy XML alapú jelölő nyelv, ami .net objektumok leírására szolgál. Manuálisan is szerkeszthető, de ha komolyabb dolgokat szeretnénk csinálni, vagy csak időt szeretnénk spórolni, akkor érdemes megismerkedni az Expression Blend programmal, amit lényegében XAML szerkesztőnek terveztek.
Ezen koncepció hátterében az állt, hogy a tervezőknek ne kelljen Visual Studio-ban dolgozniuk, amit nem éppen grafikus feladatok megvalósítására terveztek. Ez szép és jó, ha többen dolgozunk egy projekten, ám az esetek nagy többségében saját fejlesztéseknél csak egy pattanás lesz a fenekünkön, mert 2 programot kell egymás mellet futtatnunk. Egyikben a kinézetet tervezzük, másikban meg a kódot írjuk. Elsőre nem hangzik vészesen, de több óra tervezés után kezd idegesítő lenni az ALT+TAB nyomogatása, vagy az egérrel való váltogatás. Ezért aki komolyan gondolja, annak azt tudom javasolni, hogy vegyen 2 monitort.

Tanuló anyagok

Mivel a WPF igen nagy (nagyobb, mint hinnénk elsőre), ezért sok mindennel nem fogunk foglalkozni. Ezért ajánlom a Google-t, ami megfelelő kulcsszavak hatására igen sokat tud segíteni. Könyvet is ajánlanék, de mivel eddig nem találtam megfelelőt, ezért nem teszem. Leginkább az Expression Blend-ről érdemes könyveket keresni. A magyarul is megjelent „Tanuljuk meg a WPF használatát 24 óra alatt” könyv talán jó alapot adhat azoknak, akiknek bejöttek a korábbi 24 óra alatt könyvek. Személy szerint nekem nem jött be, nem sokat segített. A Kiskapu kiadótól itt lehet megrendelni.
Internetes tanuló anyagnak tudom ajánlani az angolul tudóknak a http://windowsclient.com WPF tanuló videóit, amelyek letölthetőek wmv formátumban a hozzájuk tartozó mintakódokkal együtt. Az Expression Blend használatáról videók leginkább Silverlight-os témában találhatóak a http://channel9.msdn.com-on. Valamint a DevPortal-nak is van egy igen jó Silverlight alapok videó sorozata, ami innen érhető el: link

[Primusz Péter] Ha már szóba került a devPortal itt van pár igen hasznos videó az elinduláshoz:
Valamint még ajánlott megnézni a devPortalTV anyagai közül a 12 órás Silverlight 4 képzés a Train4Business keretében c. előadássorozatot.

Itt megjegyezném azért, hogy a Silverlight és WPF igen hasonló, de a Silverlight nem azonos a WPF-el, tehát bizonyos dolgok másképpen vannak megvalósítva a WPF-ben, vagy egyelőre nincsenek. Elvileg majd az 5-ös Silverlight és az 5-ös WPF orvosolni fog sok ilyen gondot. A következő részben elkezdünk kódolni. Egyvalamit azonban megígérhetek: Nem lesz egyszerű egy út, sokszor frusztráló lesz a Windows Forms felhasználóknak, de ez majd egy idő után elmúlik és meglátja az ember a logikát a WPF mögött, még ha elsőre nem is tűnik logikusnak  :)

0 megjegyzés :

Megjegyzés küldése