Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Realizacja aplikacji internetowych MVVM, Prism i inni.

Podobne prezentacje


Prezentacja na temat: "Realizacja aplikacji internetowych MVVM, Prism i inni."— Zapis prezentacji:

1 Realizacja aplikacji internetowych MVVM, Prism i inni

2 MVC, MVP

3 MVVM Anemiczny model ?

4 MVVM services Model

5 MVVM czytanki 5/Model-View-ViewModel-MVVM- Explained

6 Widok 1 Widok 2 Widok 1 Widok 2 Tradycyjna aplikacja

7 Widok 1 Widok 2 Widok 1 Widok 2 MVVM Model(e) i serwisy Model(e) i serwisy Model Widoku Model Widoku Model Widoku Model Widoku Model Widoku Model Widoku Model Widoku Model Widoku

8 Prism 2.X 4.0 – WPF 4.0, SL – WPF 4.0, SL – WPF 4.5, SL5.0 Podstawowe pojęcia: Shell Bootstapper Moduł Region Widok

9 Prism – architektura aplik.

10 Prism – bootstrapper Inicjalizacja : Aplikacji Serwisów infrastukturalnych (core services) Serwisów aplikacji

11 Prism – bootstrapper UnityBootstrapper / MefBootstrapper Core services: IModuleManager, IModuleCatalog, IModuleInitializer, IRegionManager, IEventAggregator, ILoggerFacade, IServiceLocator

12 Prism – shell Główne okno/strona Anlogia do masterpage Obejmuje regiony Tworzony w Bootstrapperze (wstrzykiwany z Unity/MEF)

13 Prism – Region placeholder dla dynamicznego kontentu Adaptery:

14 Prism – Wstrzykiwanie widoków Kod pobiera (np. z RegionManagera) referencję do regionu, tworzy i wstrzykuje widok IRegion region = regionManager.Regions["MainRegion"]; var ordersView = container.Resolve (); region.Add(ordersView, "OrdersView"); region.Activate(ordersView);

15 Prism – Odkrywanie widoków Definiujemy w RegionViewRegistry relacje Region vs. Typ Widkoku i podczas tworzenia regionu automatycznie tworzony jest odpowiedni widok this.regionManager.RegisterViewWithRegion("MainRegion, () => this.container.Resolve ());

16 Prism – Region adapter-y ContentControlRegionAdapter – dla kontrolek System.Windows.Controls.ContentControl i pochodnych SelectorRegionAdapter - dla pochodnych klas System.Windows.Controls.Primitives. (np. System.Windows.Controls.TabControl control). ItemsControlRegionAdapter – dla kobtrolek typu System.Windows.Controls.ItemsControl i pochodnych TabControlRegionAdapter – (tylko SL) Custom adapter np. dla stack pannel mappings.RegisterMapping(typeof(StackPannel), new StackPannelRegionAdapter());

17 Prism – custom adapter protected override void Adapt(IRegion region, ContentControl regionTarget) { region.Views.CollectionChanged += (sender, e) => { if (e.Action == NotifyCollectionChangedAction.Add) foreach(FrameworkElements element in e.NewItems) { regionTarget.Children.Add(element); } // handle removing of elemts }; }

18 Prism – Komunikacja Komendy DelegateCommand – zwykle lokalna, używa delegatów, nie wymaga handlerów DelegateCommand – bez paramerów DelegateCommand - wymaga parametrów (XAML-> commandParameter=…) CompositeCommand - zwykle globalna, służy do składania komend, składanie komend (dziala CanExecute -> wszystkie muszą być dostępne) Shared Services EventAggregator Region Context

19 Prism – Komendy DelegateCommand – zwykle lokalna, używa delegatów, nie wymaga handlerów DelegateCommand – bez paramerów DelegateCommand - wymaga parametrów (XAML-> commandParameter=…) CompositeCommand - zwykle globalna, służy do składania komend, składanie komend (dziala CanExecute -> wszystkie muszą być dostępne)

20 Prism – EventAggregator

21 EA – subskrypcja eventAggregator.GetEvent ().Subscribe(ShowNews); wątki: PublisherThread BackgroundThread UIThread. eventAggregator.GetEvent ().Subscri be(ShowNews, ThreadOption.UIThread); Filtrowanie: fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == _customerId);

22 EA – publikacja, rezygnacja z s. Publikacja: EventAggregator.GetEvent ().Publish(STOCK0); Rezygnacja z subskrypcji: FundAddedEvent fundAddedEvent = eventAggregator.GetEvent (); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false); fundAddedEvent.Unsubscribe(subscriptionToken);

23 Region Context Obiekt współdzielony przez hosta i widoki w regionie Widoczny w XML i w kodzie Wymaga dependancy object To nie to samo co DataContext Definicja: RegionManager.Regions["Region1"].Context = employeeId; Odwołanie ObservableObject viewRegionContext = RegionContext.GetObservableContext(this); Lub cal:RegionManager.RegionContext="{Binding Path=SelectedEmployee.EmployeeId}"

24 Prism linki HomePage HOL - us/library/gg405475%28v=pandp.40%29.a spx Dokumentacja us/library/gg aspx

25 Inne MVVM Caliburn Micro Knockout (JavaScript framework) I inne…


Pobierz ppt "Realizacja aplikacji internetowych MVVM, Prism i inni."

Podobne prezentacje


Reklamy Google