© Copyright SELA software & Education Labs Ltd Baruch Hirsch St.Bnei Brak Israel
MVVM MEF MVVM + MEF Layers © Copyright SELA software & Education Labs Ltd Baruch Hirsch St.Bnei Brak Israel 2
Cleanly separate visual from business Developers focus on logic Designers focus on visual Unit test independently © Copyright SELA software & Education Labs Ltd Baruch Hirsch St.Bnei Brak Israel 3 Model C# Model C# ViewModel C# ViewModel C# View XAML View XAML Data Binding
Library for creating lightweight, extensible applications Discover and use extensions with no configuration Easily encapsulate code and avoid fragile hard dependencies © Copyright SELA software & Education Labs Ltd Baruch Hirsch St.Bnei Brak Israel 4 Part A (export) Part A (export) Import Container Compose Catalog Part B (export) Part B (export) Part C (export) Part C (export)
Combining MEF with MVVM Combining MEF with MVVM – Loosely coupled view components – Easy testing with Mocks and Stubs – Complex view Blendability © Copyright SELA software & Education Labs Ltd Baruch Hirsch St.Bnei Brak Israel 5 View Import Container Compose Catalog Model (export) Model (export) ViewModel (export) ViewModel (export)
Comprises business entities Comprises business entities – Services (Thin client) – Models (Rich client) Lower layer Lower layer – No references to upper layers – No references to WPF! – C#/VB.NET © Copyright SELA software & Education Labs Ltd Baruch Hirsch St.Bnei Brak Israel 6
7 LEGO.net Business Layer
Comprises application logic Comprises application logic – View Models – Workflow Controllers Middle layer Middle layer – No references to upper layers – No references to Visuals (PresentationFrameowrk) – C#/VB.NET © Copyright SELA software & Education Labs Ltd Baruch Hirsch St.Bnei Brak Israel 8
9 LEGO.net Application Layer
Comprises presentation logic Comprises presentation logic – Views (User Controls, Data Templates) – Attached Behaviors – Visual Trees Upper layer Upper layer – XAML © Copyright SELA software & Education Labs Ltd Baruch Hirsch St.Bnei Brak Israel 10
© Copyright SELA software & Education Labs Ltd Baruch Hirsch St.Bnei Brak Israel 11 LEGO.net Presentation Layer
12 © Copyright SELA software & Education Labs Ltd Baruch Hirsch St.Bnei Brak Israel
13 MVVM Cleanly separate visual from business MEF is a Library for creating lightweight, extensible applications MVVM + MEF = Extensible client UI, comprises reusable loosely coupled parts, easy to test, design and maintain
© Copyright SELA software & Education Labs Ltd Baruch Hirsch St.Bnei Brak Israel 14 Thank You!