XAML.cz Magazín moderních technologií založených na XAML

Jak dostat MVVM do WPF aplikace - materiály

Napsáno pro WPF od Jarda Jirava  [28.01.2010]

Včera jsem v prostorách české pobočky Microsoftu povídal něco málo na téma Jak dostat MVVM do WPF aplikace. Za hodinu a půl jsem probral postupně nevýhody klasického přístupu k vývoji WPF aplikace a na, snad reálné, ukázce jsem předvedl nevýhody takového přístupu.

Poté jsem krátkým povídáním účastníky obeznámil s tím, jaké jsou možnosti udělat aplikaci snadněji udržovatelnou, lépe testovatelnou, využívající možností WPF - především pak obousměrného DataBindingu. Také jsem na ukázce předvedl, jak do takové aplikace zařadit IoC/DI kontejner, konkrétně Unity a v neposlední řadě jsem demonstroval možnost, kterou nabízí využití prezentačního vzoru MVVM při tvorbě uživatelského rozhraní v Expression Blendu, kdy je možné do xaml zapsat testovací prezentační data.

Doufám, alespoň dle ohlasu, že se přednáška líbila. Osobně jsem z ní měl dobrý pocit. A určitě se budu těšit na setkání při nějakém dalším povídání na obdobné téma zabývající se WPF/Silverlight a xaml.

Materiály

Jelikož byla přednáška jeden velký příklad, a téměř minimum prezentačních slajdů, přikládám poslední fázy dokončené aplikace. Zároveň v nadcházejících článcích projdu celým příkladem a pokusím se jej popsat.

PS: dle předběžné domluvy s MS by se přednáška mohla uskutečnit i v Brně a možná i Ostravě (někdy v březnu či dubnu).

Komentáře

ukládám komentář, vyčkejte prosím..
  1. Marek Beneš

    Přednáška byla fajn, díky.

    Měl bych dotaz, ve své aplikaci používaš View-first přístup. Máš k tomu nějaký dobrý důvod nebo je to čistě pocitové? Já tak nějak intuitivně používám ViewModel-first přístup a View k němu přiřazuji pomocí data template. To mi umožní v případě potřeby ten View vyměnit na jednom místě. Zatím jsem nenarazil na nějaké zásadní omezení, ale možná víš víc ;-)

    Marek

    PS: Doufám, že nevadí, že Ti tykám ;-)

    28.01.2010 @ 12:05
  2. Ahoj, daný přístup byl dán spíše vzniklou situací, kdy to bylo snazší demonstrovat. Jinak, každý z těchto přístupů má něco do sebe a ve výsledku asi záleží na tom, jaký framework použiješ a jaký ten framework dovolí přístup.

    U PRISM třeba používám ViewModel first do kterého injectuji View přes rozhraní. Je to dáno tím, že ta vazba mezi View-ViewModel je 1:1. Pokud bych měl několik různých View, které by mohl obsluhovat právě jeden ViewModel (nikoliv instance, ale typ), tak bych asi použil View-first přístup.

    Těch rozhodovacích vah však může být několik a každému může vyhovovat něco jiného.

    Jinak díky za reakci i účast.

    PS: tykání vůbec nevadí

    28.01.2010 @ 13:19

@xamlcz

  • RT @jvanrhyn: XAML, It's a bit like olives. Takes a while to get used to. But once you're used to it. It is actually pretty good. <3 XAML
  • RT @moser_christian: WPF Inspector 0.9.7 is released. It supports .NET 3.5 and 4.0 The project is now open source and available on CodeP ...
  • Jeff Handley oznámil vydání WCF RIA Services v.1.0 SP1 RTM http://bit.ly/gOgckn ke stažení na http://bit.ly/gVAXdK
  • jedna výzva pro Brno. Byl někdo z vás na přednášce o RIA v MS Akvárku? Dejte o sobě vědět. Děkuji
  • také jste uvažovali o tom, že zkusíte na projekt použít Caliburn Micro nebo naopak Prism 4? A co tak obojí, šlo by to nebo ne? Již brzy