• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Ca Gv2 Uxmagic Presentation
 

Ca Gv2 Uxmagic Presentation

on

  • 1,789 views

Introduction to Composite Application Guidance

Introduction to Composite Application Guidance

Statistics

Views

Total Views
1,789
Views on SlideShare
1,479
Embed Views
310

Actions

Likes
1
Downloads
6
Comments
0

3 Embeds 310

http://www.uxmagic.com 294
http://uxmagic.com 15
http://static.slidesharecdn.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Ca Gv2 Uxmagic Presentation Ca Gv2 Uxmagic Presentation Presentation Transcript

    • Composite Application Guidance An Introduction..
    • Introduction to Composite Application Guidance aka “Prism” Building Silverlight and WPF applications with Composite Applications Guidance and Composite Application Library Don Burnett http://blog.donburnett.com
    • Prism is compliant with your development process • design patterns like Model- • Code-Behind minimalist View-View Model and • Modular, Composite Model-View-Presenter Application • Test-Driven Development • Distributed Agile Team (TDD) • Fluent Interfaces • Loosely Coupled • Multi-Targeting Silverlight • Separation of Concerns and WPF (SoC) • Routed Commands & • Interface-based Routed Events Programming • High Performance Dev • Dependency Injection (DI) • Data Binding • Inversion of Control (IoC) Containers
    • Topics • Targeting Silverlight or WPF – Managing complexity – Best practices for testing and design patterns • Focus around UI concerns – XAML, Code-behinds, Data Binding • Using Prism – Runtime Library + Guidance + Project Linker
    • Related Technologies • Windows Presentation Foundation (WPF), Silverlight, XAML • Unit Testing (nUnit), TDD • Dependency Injection (DI), Inversion of Control (IoC), Loose coupling • UI Design Patterns (MVC, MVP)
    • Goals • Appreciate value of C-A-G for Silverlight and WPF • Demonstrate a few key Prism concepts • A little WPF, Silverlight; discuss a couple of Design Patterns / Anti-Patterns
    • Terminology • Composite Application Guidance for WPF and Silverlight Version 2 • Composite Application Library for WPF and Silverlight  runtime support included – sometimes called “CAL”
    • Composite Applications Guidance v2 Patterns & Practices Group microsoft.com/patterns
    • • Long development cycles Product Groups • Strategic • Big Teams • Costs • Support Patterns & Practice Group • Rapid cycle times • Small, focused agile teams • Ship tactical solutions now • EntLib, Unity, Arch Guide – Code and Guidance • CAB, Prism v1, Prism v2 • Open Source • Legacy free
    • Composite Applications Key Concepts
    • Shell, Regions, Views • Shell is main window for applications • Shell defines (visual) Regions • Regions control where UI will appear -dynamic • Views are displayed within a region • WPF/Silverlight design, code, tooling is complimentary – Composite Application Guidance brings it together
    • Views and Modules • Modules are DLLs (Projects) • You can decide which modules to load • Modules can be configured to load code, XML, or XAML • Modules can be downloaded – Can write your own rules for loading • Modules have Views (usually)
    • Events • .NET events are tightly coupled (references in both directions) • WPF events – Loosely coupled and limited to same visual tree • Composite events – Loose coupling; not limited to same visual tree • More: Force to UI thread; event filtering • Events are triggered through commanding.
    • CAG/Prism Conventions • Bootstrapper • Shell • One module per DLL • M-V-VM pattern
    • Why Separate UI from Code? • Improves Developer / Designer interaction • Develop in Visual Studio and Design in Expression Blend • Easier Testing- now possible to Unit Test (vs. Integration Test) – Simpler issue of isolation • Reuse opportunity goes way up – Same ViewModel can be reused with UI variations • Better organized code is easier to understand and maintain. SE Principles: SoC, coupling, cohesion, SRP (rendering, mouse & keyboard, disabled, hover)
    • How to Separate Concerns in UI? • Use Code-Behinds reluctantly + M-V-VM • M-V-VM Model-View-ViewModel Pattern • Abbreviated as M-V-VM, MVVM • Referred to as ViewModel • Presentation Model pattern where View knows about ViewModel • Documentation refers to it as Presentation Model • ViewModel pattern is the more common term.
    • Advantages Commanding also spans View & ViewModel No UI in VM MVP is a delegation model – MVVM handles this with data binding – way less code in the code-behind Silverlight controls don’t automatically implement Icommand so this is extremely useful.
    • ViewModel Pattern Load external data from web services, etc. View Data Binding ViewModel Your Code Model Supported by WPF / SL C-A-G provides an Automapper to smartly map your data to the view.
    • Code-Behind Pattern (Old Way) Load external data from web services, etc. View Observable Collections/Code Model Code Behind for each Control Supported by WPF / SL
    • Prism Still In the Wild • You build it • Microsoft Patterns and Practice does not ship a binary at this time. • No Prism-specific templates for Visual Studio (YET!) • Cannot unload a Module.. Choose what you load WISELY..
    • When to go Composite? • You are designing “complex” WPF or Silverlight applications, helpful in Line of Business situations. • You are building an application that presents information from multiple sources through an integrated user interface. • You are developing, testing, and deploying modules independently of other modules.
    • When to go Composite? • Your application will add more views and more functionality over the coming years, or… • You must be able to change the app quickly and safely to meet emergent business requirements, or… • Your application is being developed by multiple collaborating teams; or… • Your application targets both WPF and Silverlight, and you want to maximize code sharing between platforms.
    • When to NOT go Composite? • Your applications do not require any of the above scenarios. • Your application consists of a few simple screens. • You are prototyping. • Your developers do not have the time to learn about Composite Application Guidance.
    • Advantages • SoC + SRP + reducing plumbing code + Unit Tests is the best way to handle complexity and enable ability to respond rapidly to changing requirements. • M-V-VM  best design/development pattern to support application development in Silverlight and WPF.
    • Official Site http://microsoft.com/compositewpf -- or -- http://codeplex.com/compositewpf
    • Watch these spaces • “Contrib” site @ http://compositewpfcontrib.codeplex.com/ • Channel 9 for tutorial videos – http://channel9.msdn.com/tags/Prism/ • Infragistics control adapters for Prism @ http://ncal.codeplex.com/ – Region Adaptors for Prism
    • Prism v2 References • http://www.microsoft.com/downloads/details.aspx?FamilyI D=fa07e1ce-ca3f-4b9b-a21b- e3fa10d013dd&DisplayLang=en • http://blogs.msdn.com/jmeier/archive/2009/02/18/new- release-composite-application-guidance-for-wpf-and- silverlight-v2-0-prism.aspx • http://timheuer.com/blog/archive/2009/02/18/prism-2- released-composite-guidance-for-silverlight-lob.aspx • http://msdnrss.thecoderblogs.com/2009/02/18/composite- application-guidance-for-wpf-and-silverlight-v20-prism/
    • Other Resources • Josh Smith on MVVM with WPF: http://msdn.microsoft.com/en- us/magazine/dd419663.aspx • Brian Noyes on Understanding Routed Events and Routed Commands in WPF: http://msdn.microsoft.com/en- us/magazine/cc785480.aspx • WPF Commanding Overview: http://msdn.microsoft.com/en-us/library/ms752308.aspx • Martin Fowler’s description of Presentation Model pattern: http://martinfowler.com/eaaDev/PresentationModel.html • XAML Guidelines for Creating a Composite UI: http://msdn.microsoft.com/en-us/library/dd458877.aspx
    • Thanks for Attending.. Building Silverlight and WPF applications with Composite Applications Guidance and Composite Application Library Don Burnett http://blog.donburnett.com
    • Composite Application Guidance An Introduction..