1 / 24

C omposite Application Guidance For WPF

Level: 400. C omposite Application Guidance For WPF. Ivan Pavlovi ć MCSD, MCDBA, MCT, MVP For Visual C# Hive Studios paki@hive-studios.com. Sadržaj. Modularne aplikacije Neke specifičnosti Dizajn Modularnost, kompozicija UI-a, MVP i MVC Tehnički koncepti i duga šetnja kroz kod

lindsey
Download Presentation

C omposite Application Guidance For WPF

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Level: 400 Composite Application GuidanceFor WPF Ivan Pavlović MCSD, MCDBA, MCT, MVP For Visual C# Hive Studios paki@hive-studios.com

  2. Sadržaj • Modularne aplikacije • Neke specifičnosti • Dizajn • Modularnost, kompozicija UI-a, MVP i MVC • Tehnički koncepti i duga šetnja kroz kod • Bootstrapper, kontejneri, moduli, regioni, shell & view, komande, dogadjaji, komunikacija ....

  3. Razvoj velikih klijentskih aplikacija • Problemi • Sinhronizacija članova tima (ili timova) • Dizajniranje sistema za lako menjanje • Odvajanje grafičkog dizajna • Organizovanje testiranja • Odgovori • Monolitna aplikacija • Niz nezavisnih aplikacija • Kompozitna (modularna) aplikacija

  4. Ciljeviiprincipi • Zamenljivost delova • Lako učenje • Proširivost • Kompatibilnost • Jednostavnost • Proveriv delovi • Performanse • Opterećenje • Nadgradnja

  5. Recept za kompozitnu aplikaciju • Potrebni sastojci • Jedna monolitna aplikacija ili okvirni zahtevi za novu (veliku) desktop aplikaciju • Razvojno okruženje (C# Express je OK) • Jedna dobra implementacija module Loadera • UnityContainer ili Windsor da uvežu masu • Aplikacija će ispasti mnogo ukusnija ukoliko se na početku sprema polako a kasnije brže • Servirati vruće, najbolje dok se još puši

  6. Komponenete CAG-a Host Application (entry point) Service/Dependancy Injection Container Loader ModuleEnumerator Shell Shell Presenter Module Loader Region Core RegionManager View(s) Presenter Logging EventAggregator Model Module Proffered Services Modules

  7. Bootstrapper – Pokretanje

  8. Core Services • IModuleEnumerator • Directory, Config File • IModuleLoader • Instancira implementacije interfejsa Imodule • Statičko i on-deman učitavanje • IRegionManager • Veza sa Shellom • IEventAggregator • Razmena poruka između nevezanih delova aplikacije • LoggerFacade • ContainerFacade

  9. Code Dive Boot Process

  10. Shell • Glavni prozor aplikacije, može da ih bude više • Sadrži regione u koje moduli mog da dodaju view-ove (WPF kontrole) • Definiše raspored glavnih delova • Navigacija, sadržaj, status bar....

  11. Regioni SHELL Navigation Region Main Content Window Order 1 Order 2 Order 3 Order 4 ..... Order Details Item QTY Cost Item QTY Cost Item QTY Cost Views

  12. Code Dive Pravljenje Shell-a Markiranje regiona Upotreba regiona Kako se prikazuju view-ovi

  13. Moduli Predstavljaju logičke celine u koje su upakovane forme, kontrole, servisi, resursi, definicije modela i/ili prezentaciona logika • IModule • Međuzavisnosti (ModuleDependencyAttribute) • ModuleInfo i metapodaci • Registracija tipova

  14. Prezentacioniobrasci • Presentation Model • Supervising Controller View(1…n) Presentation Model Model Method Calls 2-way binding Property Access View (1…n) Presenter Data Binding Model

  15. Komunikacija među modulima Moduli u principu ne smejudadirektnozaviseoddrugihmodulaistognivoa (DependsOn) Staff Management PoS Module Common Interfaces Security Module Logging Module

  16. Code Dive Struktura modula Učitavanje i inicijalizacija

  17. EventAggregator • Obezbeđuje notifikaciju o dogadjajima i razmeniu informacija između slabo ili nepovezanih vezanih modula • Multi Publisher/Multi Subscriber • CompositeWpfEvent<T> obezbeđuje type safety tokom kompajliranja Subscriber Publisher IEventAggregator Subscriber CompositeWpfEvent Subscriber CompositeWpfEvent Publisher Subscriber

  18. Code Dive Definisanje dogadjaja Pretplaćivanje na dogadjaj Obrada dogadjaja

  19. Commands • Obezbeđuju obradu akcija korisnika na UI-u • Vezane su za kontrole • DelegateCommand obezbeđuje delegiranje obrade događaja van code-behind klase

  20. Code Dive Definisanje komandi Binding Izvršavanje komande

  21. Šta smo videli? Host Application (entry point) Service/Dependancy Injection Container Loader ModuleEnumerator Shell Shell Presenter Module Loader Region Core RegionManager View(s) Presenter Logging EventAggregator Model Module Proffered Services Modules

  22. Reference • Članci Getting Up and Running with the Composite UI Application Block for WPF Composite Application Guidance for WPF Tour • Komponente (Open Source) Composite Application Guidance for WPF Codeplex sajt

  23. Priključi se na msforge.net !!!Microsoft Forge zajednicai User Grupa Druženje, forum, blogovi. Mesto okupljanja za sve Windows, .NET iSQL Server fanove.

  24. Submit a session feedback form, within 2 hours of the session ending, and you can win a special prize! Thank you

More Related