Object Arts.com “Twisting the Triad” The evolution of the Dolphin Smalltalk MVP framework Andy Bower Blair McGlashan Object Arts Ltd.

Slides:



Advertisements
Similar presentations
Introduction to .NET Framework
Advertisements

Tahir Nawaz Introduction to.NET Framework. .NET – What Is It? Software platform Language neutral In other words:.NET is not a language (Runtime and a.
Software Engineering 2003 Jyrki Nummenmaa 1 OBJECT ARCHITECTURE DESIGN These slides continue with our example application, based on the simplified.
9.5 Software Architecture
OOP Design Patterns Chapters Design Patterns The main idea behind design patterns is to extract the high level interactions between objects and.
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
March R McFadyen1 Architecture Architecture involves the set of significant decisions about the organization of a software system, decisions.
6/13/20151 CS 160: Lecture 13 Professor John Canny Fall 2004.
R R R CSE870: Advanced Software Engineering: Frameworks (Cheng, Sp2003)1 Frameworks A Brief Introduction.
Interpret Application Specifications
Page 1 Building Reliable Component-based Systems Chapter 18 - A Framework for Integrating Business Applications Chapter 18 A Framework for Integrating.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Object-Oriented Analysis and Design
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
CMPT 370: Information Systems Design Instructor: Curtis Cartmill, Simon Fraser University – Summer 2003 Lecture Topic: Layered Architecture Class Exercise:
March R McFadyen1 Figure 30.2 Layers in NextGen They only have three layers in this architecture Each layer is shown as a UML Package No separate.
Tutorial -01. Objective In this session we will discuss about : 1.What is MVC? 2.Why MVC? 3.Advantages of MVC over ASP.NET 4.ASP.NET development models.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
UNIT-V The MVC architecture and Struts Framework.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
MVC pattern and implementation in java
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
5/5/2005Toni Räikkönen Internet based data collection from enterprises using XML questionnaires and XCola engine CoRD Meeting May 11th 2005.
MVC and MVP. References enter.html enter.html
Model View Controller (MVC) Rick Mercer with a wide variety of others 1.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
An Introduction to Software Architecture
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Component-based software architecture Overview Divides the problem into sub-problems each associated with component partitions. The interfaces of the components.
Case Study + MVC Lec Error Pages By means of the page directive, a JSP can be given the responsibility of an Error page An Error JSP will be called.
January 25, 2006copyright Thomas Pole , all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by.
(c) University of Washington08-1 CSC 143 Models and Views Reading: Ch. 18.
ARCH-4: The Presentation Layer in the OpenEdge® Reference Architecture Frank Beusenberg Senior Technical Consultant.
Software Architecture and Patterns
3461 Model-View Controller Advanced GUI concepts.
GWT Development with Activities and Places
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.
Model View Controller MVC Web Software Architecture.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
Model View Controller (MVC) Bigger than a Pattern: It’s an Architecture Rick Mercer with help from many of others 1.
Review Class Inheritance, Abstract, Interfaces, Polymorphism, GUI (MVC)
Advanced Web Technologies Lecture #3 By: Faraz Ahmed.
1 CSE 331 Model/View Separation and Observer Pattern slides created by Marty Stepp based on materials by M. Ernst, S. Reges, D. Notkin, R. Mercer, Wikipedia.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
Model-View-Controller Architecture. 2 Give someone a program, you frustrate them for a day; teach them how to program, you frustrate them for a lifetime.
Zen Update 2008 Bill McCormick. 禅 What is Zen? A component-based framework for rapidly developing Rich Internet Applications (aka Web 2.0) A component-based.
Introduction 1 Lars Vogel 4/22/2009.  Who am I?  Eclipse as a platform  What is Eclipse RCP?  Extension Points / Extensions  Equinox  SWT & JFace.
L10: Model-View-Controller General application structure. User Interface: Role, Requirements, Problems Design patterns: Model – View – Controller, Observer/Observable.
High degree of user interaction Interactive Systems: Model View Controller Presentation-abstraction-control.
Presented by Alexey Vedishchev Developing Web-applications with Grails framework American University of Nigeria, 2016 Intro To MVC Architecture.
J2EE Platform Overview (Application Architecture)
Design Patterns Source: “Design Patterns”, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides And Created.
MVC and other n-tier Architectures
Web Service Modeling Ontology (WSMO)
OO Methodology OO Architecture.
Software Design and Architecture
ASP.NET Web Forms Vs. ASP.NET MVC ASP.NET is Microsoft’s big leap after Active Server Pages (ASP), ASP.NET provides flexible and unified web development.
What is MVC Category: System MVC=Model-View-Controller
Chapter 5: MVC Architecture Chapter 5.
Model-View-Controller Patterns and Frameworks
Layered Style Examples
Komponentbasert utvikling Den sanne objektorientering
An Introduction to Software Architecture
Advanced ProgramMING Practices
OBJECT ARCHITECTURE DESIGN
Model-view-controller
Advanced ProgramMING Practices
Presentation transcript:

Object Arts.com “Twisting the Triad” The evolution of the Dolphin Smalltalk MVP framework Andy Bower Blair McGlashan Object Arts Ltd.

Object Arts.com Some History… Intuitive Solution Intuitive Solution/ Intuitive Solution/3

Object Arts.com Intuitive Solution

Object Arts.com Intuitive Solution/3 Windows client Pure Object Oriented Memory footprint suitable for laptops Relational Database connectivity Component-based GUI

Object Arts.com Dolphin Smalltalk

Object Arts.com Learning from our mistakes? PROCESS FOR dayBookEntry …... ENDPROCESS PROCESS FOR Update … ENDPROCESS Intuitive Solution employed a widget based framework

Object Arts.com “Widgets” - 1 Dolphin UI should be widget based –Precedents were... Visual Basic/Windows Dialogs/MFC –Typically not hierarchical Widgets –UI components where data/display/behaviour are combined in a single entity. –#createLayout method to construct composite UI –Events routed via individual methods

Object Arts.com “Widgets” - 2 Easy to draw UI first and code later But poor re-use… e.g. SmalltalkWorkspace

Object Arts.com Model-View-Controller ModelView Controller dependency

Object Arts.com Basic MVC Model is a domain object –Refined into ValueModel View is an output device –Linked by Observer to display model contents Controller is an input device –Maps UI gestures into changes to model MVC gives a pluggable widget –Usually a generic value component –Not suitable for composite “application” components

Object Arts.com Enhanced MVC

Object Arts.com MVC - 2 Application Model –Mediator between domain classes and UI M,V,C are all pluggable –Much improved reuse cf Widgets

Object Arts.com MVC Anomalies Observcr pattern applied in wrong place –AM and View are loosely coupled –Leads to #componentAt: problem –in turn breaks Observer Controllers –inappropriate for modern event driven OS

Object Arts.com Model-View-Presenter

Object Arts.com Presenters as components MVP components based around presenter –Hierarchical Views are the presenters’ “skins” –Hierarchical, but independent of presenter hierarchy –Multiple views available for each presenter Models are the presenters’ data –Initially owned by presenter –Can be reattached

Object Arts.com Resources Models (domain logic) are class based Presenters (UI logic) are class based Views are often instance based –Composite views built with View Composer –Saved down as resources

Object Arts.com Dependency vs Events Dependency –legacy Observer mechanism from ST-80 –register interest in all updates –explicit disconnect via #release Events (SASE) –introduced in Digitalk ST –#when:send:to: –target specific events –finalization can automatically disconnect

Object Arts.com Does Dolphin have “Balls”? Visual Basic had VBX COM has ActiveX Java has Beans Dolphin has.. –Published Aspects –Instance streaming I think so!

Object Arts.com MVP in a Nutshell Models first / UI second Model is mutable or immutable? –Immutable models require value components Basic Component –implement view class –implement presenter class –install view instance as a named resource on presenter Composite component –implement presenter class –draw composite view with View Composer –install view as a named resource on presenter

Object Arts.com Web components

Object Arts.com MVP Potential (1) Schematics

Object Arts.com MVP Potential (2) Portable Smalltalk UI –Models and Presenters are already ANSI portable –Require views for target platform –Useful for Camp Smalltalk/ Refactoring Browser

Object Arts.com Summary MVP is modern Observer style framework Keeps advantages of MVC without disadvantages More suitable for event driven OS Spread the Word!