A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Composite Applicatin Guidance Para Windows Presentation Foundation Vasco Oliveira Team Leader, Microfil.

Apresentações semelhantes


Apresentação em tema: "Composite Applicatin Guidance Para Windows Presentation Foundation Vasco Oliveira Team Leader, Microfil."— Transcrição da apresentação:

1

2 Composite Applicatin Guidance Para Windows Presentation Foundation Vasco Oliveira Team Leader, Microfil

3 Agenda O que é o Prism? Modularidade Composição UI Padrões de Apresentação Referências

4 Prism – Porquê? Problemáticas: –Aplicações cliente são um desafio –Como as tornar dinâmicas, customizáveis, extensíveis e fácilmente testáveis? Solução: –Segmentar a aplicação –Gerir interdependências –Compôr a aplicação dinâmicamente Prism - Patterns For Composite Client Apps

5 Prism – "What's in the box"? Prism 1.0 – WPF –Lançado em Julho de 2008 Prism 2.0 – WPF e Silverlight –Q – (Actualmente na Drop 10) Prism – Composite Client Application Guidance para WPF e Silverlight –Libraries –Reference Implementations (RI) –Documentação –Quick-Starts e How-Tos –Comunidade – CodePlex

6 File -> Open -> CWPF\Source\StockTraderRI\StockTraderRI.sln Abrir o Visual Studio In the box: Reference Implementation

7 Compor UI - Regiões Composite Application Guidance: Conceitos Bootstrapper DI/IoC Containers Módulos Shell e View Eventos e Comandos Bootstrapper DI/IoC Containers Módulos Shell e View Eventos e Comandos

8 Bootstrapper

9 Bootstrapper Responsável pela inicialização Fases: –Configuração –Regiões –Shell –Módulo

10 Container

11 Container CAL suporta vários DI Containers –IContainerFacade Implementação Unity –UnityContainerAdapter

12 Módulos

13 Módulos – O que são? Assemblies da aplicação –Colecção de componentes relacionados –Serviços, UI, Acesso a dados Unidade de desenvolvimento –Desenvolvimento independente –Testes independentes

14 Módulos - Carregamento ModuleLoader - Catalogo de Modulos Loading estático, por configuração, dinâmico Inicialização em background ou On-Demand Module Loader

15 Módulos Critérios de segmentação: –Funcionalidades específicas –Sub-sistemas –Serviços –Sistemas Line of Business Separação de equipas

16 Módulos – Loading estático public class MyBootstrapper : UnityBootstrapper {... protected override IModuleEnumerator GetModuleEnumerator() { return new StaticModuleEnumerator().AddModule(typeof(SomeModule)).AddModule(typeof(AnotherModule), "SomeModule").AddModule(typeof(YetAnotherModule), "AnotherModule","SomeModule"); } DependênciasDependências Module Type Localiza Módulos Retorna módulos Referenciados estáticamente Retorna módulos Referenciados estáticamente

17 Módulos - Inicialização public class SomeModule : IModule public SomeModule(SomeDependency myDependency) {...} public void Initialize() { RegisterViewsAndServices(); //Show views here; } Dependência injectada Lógica de Inicialização

18 Dividir uma aplicação em módulos por configuração demo

19 Módulos – Loading Dinâmico public class MyBootstrapper : UnityBootstrapper {... protected override IModuleEnumerator GetModuleEnumerator() { return new } Hot folder

20 Loading dinâmico de módulos demo

21 Composição do UI

22 Regiões Shell – Janela Host da aplicação Regions – Áreas definidas para injecção de Views Views – UI e lógica de apresentação Region IPortfolioPresentationModel presentationModel = …; IRegion mainRegion = regionManager.Regions[ "MainRegion" ]; mainRegion.Add( presentationModel.View ); IPortfolioPresentationModel presentationModel = …; IRegion mainRegion = regionManager.Regions[ "MainRegion" ]; mainRegion.Add( presentationModel.View );

23 Regiões – Registo MyShell.xaml RegionName attached property Maior parte das vezes, Regions são ItemsControls

24 Regiões – Exibição public class MyModule : IModule { public void Initialize (IRegionManager manager) { RegisterViewsAndServices(); IRegion orderRegion = manager.GetRegion("OrderRegion"); var myOrderView = new OrderView(myOrder); orderRegion.Add(myOrderView); } RegionManager é necessário Inicialização da View Obtenção da Região View é exibida

25 Regiões – Templating ("WPF way") public class MyModule : IModule { public void Initialize(IRegionManager manager) { RegisterViewsAndServices(); IRegion orderRegion = manager.GetRegion("OrderRegion"); orderRegion.Add(myOrder); } Objecto é adicionado directamente

26 Compondo o UI com Regions e Views demo

27 Commands

28 Commands SubmitSubmit OrderDetails SubmitSubmit SubmitSubmit Delegate Commands Composite Command Submit All

29 Commands - Binding


Carregar ppt "Composite Applicatin Guidance Para Windows Presentation Foundation Vasco Oliveira Team Leader, Microfil."

Apresentações semelhantes


Anúncios Google