Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Nowoczesna architektura w aplikacjach Windows Store Wojciech Poniatowski.

Podobne prezentacje


Prezentacja na temat: "Nowoczesna architektura w aplikacjach Windows Store Wojciech Poniatowski."— Zapis prezentacji:

1 Nowoczesna architektura w aplikacjach Windows Store Wojciech Poniatowski

2 Head of Windows iApps Technologies MVP MCT, MCPD Śląska Regionalna Grupa Microsoft Prelegent Autor webcastów

3 O co chodzi? Narzędzia Frameworki Abstrakcja Wzorce MVVM IOC/DI Cechy charakterystyczne aplikacji Windows 8 Testy jednostkowe

4 Co chemy osiągnąć? Separacja Testowalność Abstrakcja Klocki LEGO Stabilność Wspólny kod Windows 8, Windows Phone 8 Może nawet WPF oraz Silverlight

5 Narzędzia Visual Studio 2012 JetBrains R# JetBrains dotCover nCrunch jest prawie gotowy na WinRT

6 Frameworki WinRT Callisto MVVM Light MetroIOC xUnit

7 Przydatne wzorce projektowe Singleton Repository Messenger Factory DI/IOC MVVM Locator

8 Foo : IFoo Każda klasa implementuje interface AboutView : IAboutView MainViewModel : IMainViewModel MyRepository : IMyRepository DialogService : IDialogService Itd…

9 IoC/DI oraz InstanceFactory Każdy interface i class są zajerestrowane (zamapowane) w InstanceFactory InstanceFactory Wrapper dla IoC (MetroIOC) Fabryka obiektów

10 MVVM Idealny dla XAMLa Binding Commanding Messaging Podstawowa implementacja jest prosta Za mało abstrakcji

11 MVVM Commanding Brak kodu w code-behind WinRT jest ograniczone Przyciski – Command (Click) TextBlock – Tapped ( ? ) Potrzebna proteza EventToCommand

12 Nuget WinRtBehaviors Win8nl

13 Messenger Messenger aka Mediator aka Pub/Sub aka EventAggregator ViewModele niezależne od siebie Brak wzajemnych referencji (nawet po interface) Komunikacja VM poprzez Messengera Mam takie dane, niech zainteresowany je sobie odbierze

14 Locator Własna klasa Rejestruje (mapuje) interface i klasy Udostępnia właściwości ze wszystkimi ViewModelami Przydaje się dla silnie typowanych wyrażeń Binding w XAM

15 A co z cechami Windows 8?

16 Okna dialogowe DialogWindow Element UI (View) Sterowany przez ViewModel DialogService : IDialogService Własna klasa (wrapper/Serwis) zarejestrowana w IoC

17 Nawigacja Wbudowana w WinRT Jak nawigować z poziomu MVVM? Trzeba się odciąć Utworzyć osobny Serwis Sterowanie z poziomu ViewModel To ViewModel decyduje o przepływie aplikacji NavigationService : INavigationService Własna klasa (wrapper) zarejestrowana w IoC

18 Charms / Settings Opcje aplikacji About Polityka prywatności Zbudować wartwę abst Globalne Per widok

19 Charms / Schare Przekazywanie danych między 2 aplikacjami Inicjalizowane z ViewModel Nie używam DataTransferManager w ViewModel Potrzebna separacja (abstrakcja) ScharingService : IScharingService Klasa (wapper) zarejestrowany w IoC

20 SemanticZoom ISemanticZoom ListView GridView ZoomIn Nie ma sprawy Zwykły Binding ZoomOut Potrzebny ekstra code-behind

21 Testy jednostkowe Są ważne Nie są łatwe Zła architektura Legacy code Mogą być łatwe Dobra architektura Mock, Fake

22 Podsumowanie Interface do każdej klasy Rozdzielenie aplikacji na warstwy View ViewModel Model (Repository) Wszystko jest sklejone poprzez InstanceFactory oraz IoC/DI Łatwość wymiany klocków Różne implementacje tych samych interfaceów Testowalność

23 Q & A

24 Dziękuję za uwagę


Pobierz ppt "Nowoczesna architektura w aplikacjach Windows Store Wojciech Poniatowski."

Podobne prezentacje


Reklamy Google