Upload
robert-walker
View
216
Download
0
Tags:
Embed Size (px)
Citation preview
Composite Applications Composite Applications with WPF and PRISM 4.0with WPF and PRISM 4.0
Eyal VardiEyal VardiCEO E4D Solutions LTDCEO E4D Solutions LTDMicrosoft MVP Visual C#Microsoft MVP Visual C#blog: www.eVardi.comblog: www.eVardi.com
AgendaAgenda
How to build Composite application?How to build Composite application?
ModularitModularityy
ProductivityProductivity
ExtensibilityExtensibility
SecuritySecurity CommunicatioCommunicationn
DeploymentDeployment
Multi-Multi-LanguageLanguage
Outlook SampleOutlook Sample
Shell & Region == Master Shell & Region == Master PagePage
RibbonRibbon
App NavApp Nav
App’sApp’s
BodyBody PanePane
Status BarStatus Bar
DEMO
Shell & Shell & RegionRegion
View-Based NavigationView-Based Navigation
_container.RegisterType<Object, ViewName>("ViewName"); _regionManager.RequestNavigate( "RegionName", new Uri( "ViewName", UriKind.Relative) );
_container.RegisterType<Object, ViewName>("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); }
DEMO
NavigationNavigation
Event AggregatorEvent Aggregator
Publisher / SubscriberPublisher / Subscriber
PublisherPublisher
PublisherPublisher
PublisherPublisher
SubscriberSubscriber SubscriberSubscriber SubscriberSubscriber
DEMO
Event AggregatorEvent Aggregator
Visual State Manager Visual State Manager (VSM)(VSM)
Data StatesData States
Communication Communication StatesStates
SecuritySecurityStatesStates
Visual State Manager Visual State Manager (VSM)(VSM)
StateState
TransitionTransition
State GroupsState Groups
DEMO
VVisual isual SState tate MManageranager
State-Based NavigationState-Based Navigation
<DataStateBehavior Binding="{Binding IsChecked, ElementName= ShowAsListButton}" TrueState="ShowAsList" FalseState="ShowAsIcons"/>
<DataStateBehavior Binding="{Binding IsChecked, ElementName= ShowAsListButton}" TrueState="ShowAsList" FalseState="ShowAsIcons"/>
[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 ChangesInitiating 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); {
Behaviors & Actions are Behaviors & Actions are EverywhereEverywhere
ConditionalConditional
Motion Motion
DataData
AnimationAnimation
<Button Content="Click Me">
</Button>
<Button Content="Click Me">
</Button>
XAML XAML Add-onAdd-on
Attached Attached propertyproperty
Drag & DropDrag & Drop
<E4D:MyAction TargetName="lbTrace" /> <E4D:MyAction TargetName="lbTrace" />
<i:EventTrigger EventName="Click">
</i:EventTrigger>
<i:EventTrigger EventName="Click">
</i:EventTrigger>
<i:Interaction.Triggers>
</i:Interaction.Triggers>
<i:Interaction.Triggers>
</i:Interaction.Triggers>
Behavior is a…Behavior is a…
DEMO
Behaviors & Behaviors & ActionsActions
SHSH
PP
PPCommunication
Communication
WCFWCF
Event AggregatorEvent Aggregator
InterfacesInterfaces
Communication ModuleCommunication Module
SummarySummary
Keep the client thin.
Defined your visual state with VSM.
Use Behaviors & Actions for RAD.
Use the Prism for modularity.
QUESTIONS?QUESTIONS?
Eyal VardiEyal VardiCEO E4D Solutions LTDCEO E4D Solutions LTDMicrosoft MVP Visual C#Microsoft MVP Visual C#blog: www.eVardi.comblog: www.eVardi.com