Composite User Interface Application Block Peter Provost Development Lead – patterns & practices

Slides:



Advertisements
Similar presentations
Module 1: Creating an Application by Using Windows Presentation Foundation Overview of WPF Creating a Simple WPF Application Handling Events and Commands.
Advertisements

New Release Announcements and Product Roadmap Chris DiPierro, Director of Software Development April 9-11, 2014
Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:
Service Oriented Architecture
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Microsoft SharePoint 2013 SharePoint 2013 as a Developer Platform
Office 365 Platform Flexible Tools Office Store and App Catalog Discover A marketplace of off-the-shelf solutions to many of the common needs for.
Building Composite Applications with WPF Tomer Shamam Smart Client Manager Sela Group
Access Web Apps – OK, Now What? EXTENDING ACCESS WEB APPS George Young Dawson Butte Software ACCESS DAY – OCTOBER DENVER,
Flexible Tools Office Store and App Catalog Discover A marketplace of off-the-shelf solutions to many of the common needs for business users.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Create with SharePoint 2010 Jen Dodd Sr. Solutions Consultant
Creating Business Workflow Using SharePoint Designer 2007 Presented by Tarek Ghazali IT Technical Specialist Microsoft SQL Server MVP Microsoft SQL Server.
Office 365 Platform Flexible Tools Office Store and App Catalog Discover A marketplace of off-the-shelf solutions to many of the common needs.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
MVC pattern and implementation in java
Module 8 Configuring and Securing SharePoint Services and Service Applications.
Microsoft Confidential Office as a Development Platform Tim Heuer
Virtual techdays INDIA │ Nov 2010 Developing Office Biz Application using WPF on Windows 7 Sarang Datye │ Sr. Consultant, Microsoft Sridhar Poduri.
Todd Kitta  Covenant Technology Partners  Professional Windows Workflow Foundation.
Building an Offline Smart Client using Domain-Driven Design Principles Tim McCarthy.
® How to Build IBM Lotus Notes Components for Composite Applications 정유신 과장 2007 하반기 로터스 알토란.
Microsoft Application Virtualization 5.0: Introduction Mohnish Chaturvedi & Ian Bartlett Premier Field Engineer WCL312.
Smart Client Program Composite UI Application Block patterns & practices Smart Client Team May 2005.
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
ARCH-4: The Presentation Layer in the OpenEdge® Reference Architecture Frank Beusenberg Senior Technical Consultant.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Architectural pattern: Interceptor Source: POSA II pp 109 – 140POSA II Environment: developing frameworks that can be extended transparently Recurring.
Kuali Rice A basic overview…. Kuali Rice Mission First and foremost to provide a consistent development framework and common middleware layer for Kuali.
Office Business Applications Workshop Defining Business Process and Workflows.
A Lap Around Windows Presentation Foundation. Why hasn’t UX taken off in software? It’s Difficult! Animation 2D 3D Documents Styled Controls Video Windows.
ECI – electronic Commerce Infrastructure “ An application to the Shares Market ” Demetris Zeinalipour ( Melinos Kyriacou
Quick overview of ASP.NET Ajax Ajax deep-dive Cover some key real-world problems Discuss solutions, patterns, opportunities Lots of demos And more of.
Building State of the art presentation tiers Nauzad Kapadia
Extending the Operations Dashboard
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
Connect with life Vedant Kulshreshtha Technology Solutions Professional – SharePoint | Microsoft India
Introduction (Continued) Design Patterns (I) Lecture Two.
Adxstudio Portals Training
04 |Sharing Code Between Windows 8 and Windows Phone 8 in Visual Studio Ben Riga
Service Pack 2 System Center Configuration Manager 2007.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Workflow in Microsoft Office SharePoint Server Jessica Gruber Consultant Microsoft Corporation.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
Windows Workflow Foundation Guy Burstein Senior Consultant Advantech – Microsoft Division
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
The Holmes Platform and Applications
Extend Microsoft Dynamics 365 for Retail
Recent trends in estimation methodologies
Building Custom Workflows
Chris Menegay Sr. Consultant TECHSYS Business Solutions
9/4/2018 5:28 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Microsoft Build /13/2018 2:24 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
The Power Of Generic Infrastructure
iVend Retail Extensibility
Top Reasons to Choose Angular. Angular is well known for developing robust and adaptable Single Page Applications (SPA). The Application structure is.
Service-centric Software Engineering
Present by Andie Saizan, MCP
Rich single page applications with SharePoint
Analysis models and design models
The Islamia University Bahawalpur
AIMS Equipment & Automation monitoring solution
TN19-TCI: Integration and API management using TIBCO Cloud™ Integration
Mark Quirk Head of Technology Developer & Platform Group
PnP Partner Pack - Introduction
Presentation transcript:

Composite User Interface Application Block Peter Provost Development Lead – patterns & practices

Application Scenarios Highly intensive, task oriented UIs Client Integration scenarios Call Center  e.g. Microsoft Customer Care Framework Product Configurators Financial or Manufacturing Desktops Tellers The scenarios cover a wide range:  Transactional or data analysis  All new or integration with existing apps  Standalone client or integrate into other applications

Billing Inventory CRM Smart Client Module Composite Solution What Is A Composite Smart Client? Compose solution from discrete functional pieces Environment provides basic smart client services & capabilities Reduces dev cost, can realize smart client benefits more easily Flexible and agile – N:M parts:shells, dynamic composition Smart Client Module Module Host Apps

WorkItem Module Loading State Composite UI – A patterns view View Controller Model View Presenter Model MVCMVC MVPMVP Blackboar d EnumeratorLoader Core Services Crypto Event Broker State Persistence CAB Application AuthN Extension Shell Services Activation Workspaces UI Extension Sites Commands SPInfo Instrum Lifetime Containe r Service Locator ObjectBuilder FactoryFactory BuilderBuilder Injection types 2..6 Injection types 2..6 Strategy presenters for UI CommandCommand Pub/SubPub/Sub PluginsPlugins Workflow Use Case Controlle r

Shell How Does It Work? ModuleCatalog Module UI Extension SiteView View Element Root Work Item Work Item Shared State Shared Events

A Work Item Building a composite application How should I organize my code to facilitate composition? Build the views as independent units with controllers or presenters Prepare to share model state Share infrastructure “services” Encapsulate use cases to facilitate reuse Reduce the number and complexity of dependencies  Use events, services, and bind to interfaces as much as possible Smart Part A Controller A Smart Part B Controller B Business Entities Domain Entities Service1

A Work Item Developing a “Composite User Experience” How does the CAB architecture facilitate UX composition? SmartParts are controls – Workspaces show them in a specific visual frame  Shell developer builds workspaces. Controls can be agnostic to workspaces UI Elements can be added with common approach to specific sites  Can centralize how/when UI gets affected by a use case Commands  Connecting ‘actionable’ set of UI elements to a business logic callback View A Controller A View B Controller B Business Entities Application Shell UI Extension Site Element1 Element2 UI Init Command Command Windows Workspace Tab Workspace

Event Topic topic://Customer/Changed Event Broker – Pub-Sub in your app Publishers and Subscribers agree on:  Topic (identified by a URI)  Message (in case a special EventArgs is required) Publishers set scope of event Publishers Subscribers 1 *.NET Event with Attribute Event Catalog Service.NET method with attribute ThreadOption.Background [EventSubscription(“topic://Customer/Changed”, ThreadOption.Background)] Public void CustomerChanged(object sender, CustArgs args) { //go call some web services or something long-running } ThreadOption.Background [EventSubscription(“topic://Customer/Changed”, ThreadOption.Background)] Public void CustomerChanged(object sender, CustArgs args) { //go call some web services or something long-running } [EventPublication(“topic://Customer/Changed”)] event EventHandler CustomerIdChanged; //fire like a normal.NET event CustomerIdChanged(this, new CustArgs(…) ); [EventPublication(“topic://Customer/Changed”)] event EventHandler CustomerIdChanged; //fire like a normal.NET event CustomerIdChanged(this, new CustArgs(…) ); [EventSubscription(“topic://Customer/Changed”)] Public void CustomerChanged(object sender, CustArgs args){ MessageBox.Show(args.CustomerId,“new customer!”); } [EventSubscription(“topic://Customer/Changed”)] Public void CustomerChanged(object sender, CustArgs args){ MessageBox.Show(args.CustomerId,“new customer!”); } Subscribers have control over the thread in which they process the call  Background (For long-running work)  UI Thread (to update UI controls on appropriate thread)  Publisher (on same thread as publisher)

Commands Commands help you react to UI events in a shell agnostic way One Command can map to multiple UI Elements Commands from parent WorkItems can be used but not removed A Work Item Application Shell Control1 Control 2 Adapter Controller A A Command

WorkItem Extensions Example:  How do I add new views of my customer data to the right workitems w/out changing their code? WorkItem Extensions allows you to affect WorkItems without changing it  Which one(s)? Identified by type implemented  Can be deployed in a separate module, discovered at load time, or registered programatically [WorkItemExtension(typeof(MyWorkItem))] public class MyExtension: WorkItemExtension { protected override OnActivate() { } [WorkItemExtension(typeof(MyWorkItem))] public class MyExtension: WorkItemExtension { protected override OnActivate() { }

Roadmap CAB: Final release targeted for Nov 7 CAB included as foundation for Smart Client Baseline Architecture Toolkit (SC-BAT)  Smart Client Toolkit will also include integration with Entlib, Offline, and project templates Future  UIP: Using WWF, no date yet  Using Avalon + CAB: it is possible Layered design + Winforms interop No public sample before our release

Shameless Plug patterns & practices is hiring See me after the talk or Darrel Snow –

Please Fill Out Your Evals Thanks!