DEV-36: Composite MVP – Building Blocks in Presentation Layer

Slides:



Advertisements
Similar presentations
3 Copyright © 2005, Oracle. All rights reserved. Designing J2EE Applications.
Advertisements

Lab 9: Code Organization User Interface Lab: GUI Lab October 23 rd, 2013.
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Rob Straight SOA-1: Applied SOA: Building Out Your SOA Environment with OpenEdge ® Principal Product Manager.
ARCH-01: Introduction to the OpenEdge™ Reference Architecture Don Sorcinelli Applied Technology Group.
ARCH-13 Developing WebSpeed  Applications Chris Skeldon Principal Consultant.
ARCH-13: Multiple "Views" with WebSpeed® Chris Skeldon Principal Consultant.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented design 2.
Spring 2010CS 2251 Design Patterns. Spring 2010CS 2252 What is a Design Pattern? "a general reusable solution to a commonly occurring problem in software.
Object-Oriented Analysis and Design
Design Patterns academy.zariba.com 1. Lecture Content 1.What are Design Patterns? 2.Creational 3.Structural 4.Behavioral 5.Architectural 6.Design Patterns.
1 Object-Oriented Software Engineering CIS 375 Bruce R. Maxim UM-Dearborn.
1 Architectural Patterns Yasser Ganji Saffar
ARCH-6: UML Modeling with Enterprise Architect Phillip Magnay Technical Architect.
Dependency Injection and Model-View-Controller. Overview Inversion of Control Model-View-Controller.
C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.
MODEL VIEW CONTROLLER A Technical Seminar Report submitted to
SOA-4: Introduction to OpenEdge ® Integration Technologies Jamie Townsend Applied Architect.
MVC and MVP. References enter.html enter.html
Model View Controller (MVC) Rick Mercer with a wide variety of others 1.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
An Introduction to Software Architecture
Model-View-Controller Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information Engineering Da-Yeh University.
INT-11: It’s Monday Morning, Do You Know Where Your Service Has Been? Service Management with Sonic ™ and Actional Marv Stone Progress Software.
University of Southern California Center for Systems and Software Engineering Approaching the Design Stages Pongtip Aroonvatanaporn November 25, /25/20091.
Unified Modeling Language, Version 2.0
1 Another group of Patterns Architectural Patterns.
DaveAndAl.net Do Application Design Patterns Make Sense in ASP.NET? Alex Homer You may like to write these down now...
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
ARCH-4: The Presentation Layer in the OpenEdge® Reference Architecture Frank Beusenberg Senior Technical Consultant.
DEV-16: Leveraging the Power of Advanced GUI Power is nothing without control Erwin in ‘t VeldCCS Tony VertentenIntris Eric DebeijProgress Roland de PijperProgress.
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
ARCH-2: UML From Design to Implementation using UML Frank Beusenberg Senior Technical Consultant.
Model View Controller (MVC) Bigger than a Pattern: It’s an Architecture Rick Mercer with help from many others 1.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
ConfluentMinds™, Socializing Knowledge Introduction to ConfluentMinds ™ The Enterprise Social Knowledge Network Presented by: ConfluentMinds Solutions.
Dr.Basem Alkazemi
Title Carolina First Steering Committee October 9, 2010 Online Voting System Design Yinpeng Li and Tian Cao May 3, 2011.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
ARCH-11: Building your Presentation with Classes John Sadd Fellow and OpenEdge Evangelist Sasha Kraljevic Principal TSE.
Model View Controller (MVC) Bigger than a Pattern: It’s an Architecture Rick Mercer with help from many of others 1.
Nikhil Kothari Software Architect Microsoft Corporation Session Code: WUX312.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
1 Unified Modeling Language, Version 2.0 Chapter 2.
1 Lecture 3 Major Architectural Models View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern.
ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect.
SEA Side – Extreme Programming 1 SEA Side Software Engineering Annotations Architectural Patterns Professor Sara Stoecklin Director of Software Engineering-
ARCH-5: Service Interfaces in Practice Christian Stiller Technical Architect.
ARCH-04 Before You Begin Your Transformation Project… Phillip Magnay Architect – Applied Technology.
Mike Ormerod C1: Applied SOA: Building Out Your SOA Environment with OpenEdge ® Applied Architect.
Model View Controller (MVC) an architecture Rick Mercer with help from many of others 1.
Christian Stiller Technical Account Manager SOA-23: Enterprise Integration Patterns in Sonic ™ ESB.
ARCH-06 Redesign & Harvest Mike Ormerod - Architect Christian Stiller - Senior Consultant Applied Technology Group.
Model-View-Controller A Design Pattern SE-2030 Dr. Rob Hasker 1 Based on slides written by Dr. Mark L. Hornick Used with permission.
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with IBM Rational Software Architect V7.5 Module 0: About This Course.
Basic Characteristics of Object-Oriented Systems
Building J2EE Applications Based on Design Patterns with Business Components for Java Olivier LE DIOURIS Principal Product Manager Oracle Corporation.
High degree of user interaction Interactive Systems: Model View Controller Presentation-abstraction-control.
Class Diagrams, MVC and Design Patterns CS153P Session 4.
DEV-21: Embracing OpenEdge ® Architect Sunil S Belgaonkar Software Architect.
Model View Presenter Design Pattern Jay Smith PMO Architect and Evangelist Tyson Foods, Inc.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Model-View-Controller
ARCH-1: Application Architecture made Simple
An Introduction to Software Architecture
Introduction to Pattern Oriented Analysis and Design (POAD)
Model-view-controller
ARCH-2: OpenEdge Reference Architecture (OERA) Latest Thinking
Presentation transcript:

DEV-36: Composite MVP – Building Blocks in Presentation Layer Sasha Kraljevic Principal TS Engineer

Agenda Presenter Layer Design Patterns MVP Composite Pattern What do we want to achieve? An all-in-one MVP MVP Triad Tree Let’s make building blocks Putting it all together What have we achieved? DEV-36: Composite MVP – Building Blocks in Presentation Layer

OpenEdge® Reference Architecture Business Components Data Access Data Sources Common Infrastructure Enterprise Services Presentation OpenEdge Reference Architecture defines guidelines and principles used to address and solve specific problems in the domain of software architecture. The purpose of the OERA therefore is to provide a roadmap to the best practices for architecting competitive, modern applications. As with any roadmap, the OERA allows decisions to be made within each layer of the model. It serves as the high-level blueprint that enables us to separate concerns within different application architecture layers, so that it is easier for the designers and developers to come up with “clean ‘n lean” code, easier to understand, self-contained (encapsulating specific feature) and therefore straightforward to test, maintain and eventually replace. We could say that OERA lands itself to test driven development. DEV-36: Composite MVP – Building Blocks in Presentation Layer

OpenEdge Reference Architecture Presentation Enterprise Services Business Components Common Infrastructure Data Access The most visible layer from the human interaction perspective is the Presentation Layer. The biggest challenge in the design of the Presentation layer is to separate concerns in the application architecture so that the end result represents the clean and maintainable code, flexible enough to deal with different types of UI clients. There is an obvious need for a clear separation and boundary between the Presentation and other layers, in order to achieve loosely coupling, but still having high cohesion, enabled through specific protocols implemented by the means of standard messaging, or an interface. In this document we will focus on the Presentation layer, having in mind that its relationship with surrounding layers must be taken into account. Data Sources Presentation controls the user interface and requests data and other services DEV-36: Composite MVP – Building Blocks in Presentation Layer

Presentation Layer – Design Patterns Model-View-Controller Model-View-Presenter - Supervising Controller - Passive View The Presentation-Abstraction-Control (PAC) DEV-36: Composite MVP – Building Blocks in Presentation Layer

Model-View-Controller MVC – Model View Controller The Model refers to the data and business functionality of the application The View is the visual representation of the Model and is comprised of the screens and widgets used within an application The Controller is a component which responds to user input such as data entry and commands issued from a keyboard or mouse DEV-36: Composite MVP – Building Blocks in Presentation Layer

Model-View-Presenter MVP – Supervising Controller Presenter Model View MVP – Passive View DEV-36: Composite MVP – Building Blocks in Presentation Layer

Model-View-Presenter The Model refers to the data and business functionality of the application The View is the visual representation of the Model and is comprised of the screens and widgets used within an application The Presenter is a component which contains the presentation logic which interacts with the Model DEV-36: Composite MVP – Building Blocks in Presentation Layer

MVC – Model View Controller MVC <> MVP Controller Model View MVC – Model View Controller Presenter Model View MVP – Passive View DEV-36: Composite MVP – Building Blocks in Presentation Layer

The Presentation– Abstraction-Control DEV-36: Composite MVP – Building Blocks in Presentation Layer

Design Patterns – Back to the OERA Common Infrastructure Business Components MODEL PRESENTER VIEW SERVICE ADAPTER DEV-36: Composite MVP – Building Blocks in Presentation Layer

Design Patterns – Back to the OERA DEV-36: Composite MVP – Building Blocks in Presentation Layer

Agenda Presenter Layer Design Patterns MVP Composite Pattern What do we want to achieve? An all-in-one MVP MVP Triad Tree Let’s make building blocks Putting it all together What have we achieved? DEV-36: Composite MVP – Building Blocks in Presentation Layer

Design Patterns – MVP Triad DEV-36: Composite MVP – Building Blocks in Presentation Layer

Design Patterns – Composite pattern for Presenters DEV-36: Composite MVP – Building Blocks in Presentation Layer

Design Patterns – Composite pattern for Views DEV-36: Composite MVP – Building Blocks in Presentation Layer

Design Patterns – Composite MVP DEV-36: Composite MVP – Building Blocks in Presentation Layer

Agenda Presenter Layer Design Patterns MVP Composite Pattern What do we want to achieve? An all-in-one MVP MVP Triad Tree Let’s make building blocks Putting it all together What have we achieved? DEV-36: Composite MVP – Building Blocks in Presentation Layer

Demo – What do we want to achieve? DEV-36: Composite MVP – Building Blocks in Presentation Layer

Demo – What do we want to achieve? VIEW PRESENTER MODEL DEV-36: Composite MVP – Building Blocks in Presentation Layer

Demo – What do we want to achieve? DEV-36: Composite MVP – Building Blocks in Presentation Layer

Agenda Presenter Layer Design Patterns MVP Composite Pattern What do we want to achieve? An all-in-one MVP MVP Triad Tree Let’s make building blocks Putting it all together What have we achieved? DEV-36: Composite MVP – Building Blocks in Presentation Layer

An All-In-One MVP One Presenter managing One View having One or More Models When to use: One-off situation No reusable components Complex interaction between UI components When NOT to use: Template UI Having reusable components Standardized interaction between UI components DEV-36: Composite MVP – Building Blocks in Presentation Layer

Agenda Presenter Layer Design Patterns MVP Composite Pattern What do we want to achieve? An all-in-one MVP MVP Triad Tree Let’s make building blocks Putting it all together What have we achieved? DEV-36: Composite MVP – Building Blocks in Presentation Layer

MVP Triad Tree DEV-36: Composite MVP – Building Blocks in Presentation Layer

MVP Triad Tree – Initialization Sequence DEV-36: Composite MVP – Building Blocks in Presentation Layer

Agenda Presenter Layer Design Patterns MVP Composite Pattern What do we want to achieve? An all-in-one MVP MVP Triad Tree Let’s make building blocks Putting it all together What have we achieved? DEV-36: Composite MVP – Building Blocks in Presentation Layer

Let’s make building blocks Start with UI analysis Perform decomposition of UI to reusable blocks using following rules: Each UI block must have specific role Enforce encapsulation Create use cases followed by sequence diagrams & state diagrams Document API and messages going in and out of MVP Triad DEV-36: Composite MVP – Building Blocks in Presentation Layer

Agenda Presenter Layer Design Patterns MVP Composite Pattern What do we want to achieve? An all-in-one MVP MVP Triad Tree Let’s make building blocks Putting it all together What have we achieved? DEV-36: Composite MVP – Building Blocks in Presentation Layer

Putting it all together Presenter from parent MVP Triad is responsible for contained MVP Triad(s) instantiation Parent Presenter should instantiate only contained Presenter(s) Each Presenter is responsible to instantiate its own Model and View component(s) There must be a mechanism to propagate signals (events, state etc.) up and down the MVP Triad Tree DEV-36: Composite MVP – Building Blocks in Presentation Layer

Putting it all together …cont’d. Caveat: We can’t (yet) use PUBLISH/SUBSCRIBE mechanism in the classes But we can establish communication channels between each MVP Triad using class methods doConnect(Object1, Signal1, Object2, Channel1) DEV-36: Composite MVP – Building Blocks in Presentation Layer

Agenda Presenter Layer Design Patterns MVP Composite Pattern What do we want to achieve? An all-in-one MVP MVP Triad Tree Let’s make building blocks Putting it all together What have we achieved? DEV-36: Composite MVP – Building Blocks in Presentation Layer

Demo – What have we achieved? DEV-36: Composite MVP – Building Blocks in Presentation Layer

Demo – What have we achieved? DEV-36: Composite MVP – Building Blocks in Presentation Layer

In Summary Simplify Complex UI design Leverage reusable components Use proven design patterns Simplify Complex UI design because it is easier to debug and maintain. DEV-36: Composite MVP – Building Blocks in Presentation Layer

For More Information, go to… PSDN OpenEdge Reference Architecture http://www.psdn.com/library/kbcategory.jspa?categoryID=54 Implementing the OpenEdge Reference Architecture with Classes http://www.psdn.com/library/kbcategory.jspa?categoryID=1212 Building your Presentation with Classes - OpenEdge Webinar http://www.psdn.com/library/entry.jspa?externalID=2951 Documentation: OpenEdge Getting Started: Object-oriented Programming DEV-36: Composite MVP – Building Blocks in Presentation Layer

Relevant Exchange Sessions Exchange 2007 ARCH-11: Building your Presentation with Classes DEV-11: Architecting Your Application in OpenEdge 10 DEV-35: Modeling Existing ABL Systems with UML DEV-36: Composite MVP – Building Blocks in Presentation Layer

? Questions DEV-36: Composite MVP – Building Blocks in Presentation Layer

Thank You DEV-36: Composite MVP – Building Blocks in Presentation Layer

DEV-36: Composite MVP – Building Blocks in Presentation Layer