Download presentation
Presentation is loading. Please wait.
Published byRobert Walker Modified over 9 years ago
1
Composite Applications with WPF and PRISM 4.0 Eyal Vardi CEO E4D Solutions LTD Microsoft MVP Visual C# blog: www.eVardi.com
2
About ConsultingMentoringProjects
3
Agenda How to build Composite application? ModularityModularity ProductivityProductivity ExtensibilityExtensibility SecuritySecurity CommunicationCommunication DeploymentDeployment Multi-LanguageMulti-Language
4
Outlook Sample
5
Shell & Region == Master Page Ribbon App Nav App’s BodyPane Status Bar
6
DEMO Shell & Region
7
View-Based Navigation _container.RegisterType ("ViewName"); _regionManager.RequestNavigate( "RegionName", new Uri( "ViewName", UriKind.Relative) ); _container.RegisterType ("ViewName"); _regionManager.RequestNavigate( "RegionName", new Uri( "ViewName", UriKind.Relative) ); public interface INavigationAware { void OnNavigatedTo(NavigationContext navigationContext); bool IsNavigationTarget(NavigationContext navigationContext); void OnNavigatedFrom(NavigationContext navigationContext); } public interface INavigationAware { void OnNavigatedTo(NavigationContext navigationContext); bool IsNavigationTarget(NavigationContext navigationContext); void OnNavigatedFrom(NavigationContext navigationContext); }
9
DEMO Navigation
10
Event Aggregator Publisher / Subscriber Publisher Publisher Subscriber Subscriber
11
DEMO Event Aggregator
12
Visual State Manager (VSM) Data States Communication States SecurityStatesSecurityStates
13
Visual State Manager (VSM) State Transition State Groups
14
DEMO Visual State Manager
15
State-Based Navigation <DataStateBehavior Binding="{Binding IsChecked, ElementName= ShowAsListButton}" TrueState="ShowAsList" FalseState="ShowAsIcons"/> <DataStateBehavior Binding="{Binding IsChecked, ElementName= ShowAsListButton}" TrueState="ShowAsList" FalseState="ShowAsIcons"/>
16
[TemplateVisualState(Name="Normal", GroupName="CommonStates")] [TemplateVisualState(Name="MouseOver", GroupName="CommonStates")] [TemplateVisualState(Name="Pressed", GroupName="CommonStates")] public class NumericUpDown : Control } { [TemplateVisualState(Name="Normal", GroupName="CommonStates")] [TemplateVisualState(Name="MouseOver", GroupName="CommonStates")] [TemplateVisualState(Name="Pressed", GroupName="CommonStates")] public class NumericUpDown : Control } { Initiating State Changes The authors is responsible for telling VisualStateManager when a visual state change should occur. private void GoToState(bool useTransitions) } if (isPressed) VisualStateManager.GoToState(this, "Pressed", useTransitions); else if (isMouseOver) VisualStateManager.GoToState(this, "MouseOver", useTransitions); else VisualStateManager.GoToState(this, "Normal“, useTransitions); { private void GoToState(bool useTransitions) } if (isPressed) VisualStateManager.GoToState(this, "Pressed", useTransitions); else if (isMouseOver) VisualStateManager.GoToState(this, "MouseOver", useTransitions); else VisualStateManager.GoToState(this, "Normal“, useTransitions); {
17
Behaviors & Actions are Everywhere ConditionalConditional MotionMotion DataData AnimationAnimation
18
XAMLAdd-onXAMLAdd-on Attached property Drag & Drop Behavior is a…
19
DEMO Behaviors & Actions
20
SHSH PP PP CommunicationWCF Event Aggregator Interfaces Communication Module
21
Summary Keep the client thin. Defined your visual state with VSM. Use Behaviors & Actions for RAD. Use the Prism for modularity.
22
QUESTIONS?
23
Eyal Vardi CEO E4D Solutions LTD Microsoft MVP Visual C# blog: www.eVardi.com
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.