Egy remek kis cikk, a Visual Studio 2008 és a WPF használatáról.
Rögtön egy remek hírrel, ugyanis megjelent a Visual Studio 2008 (igen, kezdjük el szokni) Beta 2, ami innentől kezdve abban az állapotba van, amit funkcionálisan késznek tekinthetünk.
Ez azt jelenti, hogy aki veszi a fáradságot és letölti a telepítőkészletet, az már a mindent úgy láthat, ahogy az a végleges - a következő év elején megjelenő - termékben benne lesz.
Mivel ez a blog elsősorban a prezentációs technológiákról szól, ezért most eltekintek az összes új feature felsorolásától, inkább csak az első élményekre fókuszálok a WPF támogatással (aka. Cider) kapcsolatban.
Aki a WPF-be beleásta magát, annak nem kell mondanom, milyen fontos ez a pillanat, hiszen közismert, mindezidáig komoly fejlesztőeszköz támogatás nincs a WPF-hez, aki eddig neki akart indulni egy projektnek, az bizony kezdhette az alapoktól: msbuild fájlok (.csproj) kézzel történő létrehozása, "meztelen" XAML szerkesztés, ugyanis a VS 2005 alatt design time támogatást nem létezett stb.
Tovább bonyolította a helyzetet, hogy közben elkészült a Blend, ami egy profi designer felület, de ha a kódolásra kerül a sor, nos, nincs igazán a helyzet magaslatán, ugyanis képességei odáig terjednek, hogy képes egy .cs fájlt egy editorban megnyitni, s aztán filmszakadás...
Ezzel kapcsolatban elő is jön egy kérdés, nevezetesen, hogy miben kezdjünk el egy WPF alkalmazást fejleszteni: Blend-el vagy VS-el hozzuk létre a szoftver vázát?
Egyáltalán milyen helyzetben használjuk a designer, s mikor a fejlesztő eszközt?
Most hogy végre látszik, mi lesz pontosan a VS 2008-ban, szerintem kitisztult a kép, ugyanis innentől kezdve minden támogatást megkapunk az eszközben. Gyakorlatilag teljes szabadsággal fejleszthetünk Windows alkalmazásokat, úgy mint a WinForms-ban, természetesen azzal a rengeteg plusszal (pl. vezérlők testreszabása) amit a WPF ad, ráadásul a két technologiát szabadon kombinálhatjuk, mindkét irányban.
Nézzük hát mi fogad bennünket, amikor rányitunk egy már korábban elkezdett projektre (megj: az új multitargeting-nek köszönhetően egy kattintással átváthatunk 3.0-ról 3.5-rem így tettem én is egy demó alkalmazásommal):
tovább képernyőképek itt...
Néhány dolgot szeretnék kiemelni:
- a designer felület tényleg gyors, nagyítható és végre jól szinkronban van a XAML editorral, ami gyakorlatilag gépelés közben úgy ellenőrzi (interpretálja!) a kódot, hogy az ne pusztán csak az XML sémának, hanem a WPF visual tree előírásainak is megfeleljen, illetve fel van készítve minden extrára (markup extension-ök, resource-ok, stílusok, adatkötés):
- egy igazi felület számos layout vezérlő és azok gyermekobjektumainak beágyazásából áll, minek következtében másodpercek alatt el lehet veszni a markup ingoványban. Erre ad megoldást az új Document Outline panel (kedvencem), ami nem csak navigálni enged, hanem még előnézeti képet is az elemről ami felett az egerem áll:
- mivel a XAML editor menetközben validál ezért, remek hibajelzéseket kapunk, anélkül, hogy build-elnénk:
- remek jól működik a WPF tartalom hosztolása egy Winform-on (Elementhost) illetve a Winform vezérlők beágyazása WPF-be (WindowsFormsHost):

Összeségében elmondhatjuk, hogy végre kikerekedett a kép a WPF fejlesztők számára is, a megvalósítás minden fázisa tökéletesen lefedődik eszköz és design time támogatással és most már az is tiszta mikor mit használjunk: a projekt vázát készítsük el VS 2008-ban, hozzuk létre a felső szintű layout konténereket (pl. canvas, grid, dockpanel), tervezzük meg és implementáljuk az adatkötést támogató osztályokat felhasználva pl. a LinQ to SQL támogatást, majd pedig menjünk át a Blend-be és polírozzuk ki a UI-t (layout, control template, databinding).
Jó ismerkedést Mindenkinek!