0% found this document useful (0 votes)
106 views17 pages

Transitioning from RAD to MVC Explained

This document discusses the evolution from rapid application development (RAD) approaches to model-view-controller (MVC) architectures. It describes how RAD approaches led to "big balls of mud" that were difficult to maintain and evolve. MVC is presented as a pattern that isolates domain logic from the user interface, allowing independent development and testing. The roles of models, views, and controllers are explained. Variations like MVVM that provide even more separation of concerns are also covered.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
106 views17 pages

Transitioning from RAD to MVC Explained

This document discusses the evolution from rapid application development (RAD) approaches to model-view-controller (MVC) architectures. It describes how RAD approaches led to "big balls of mud" that were difficult to maintain and evolve. MVC is presented as a pattern that isolates domain logic from the user interface, allowing independent development and testing. The roles of models, views, and controllers are explained. Variations like MVVM that provide even more separation of concerns are also covered.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

From RAD to MVC

Arnaud Bouchez
June 2015
From RAD to MVC
 RAD
 MVC
 MVVM
 n-Tier / SOA

From RAD to MVC


June 2015
Rapid Application Development
 Our beloved Delphi
 WYSIWYG

 Quick prototyping
 Less typing

 Component-based

 Ownership to handle memory

 Reusability

From RAD to MVC


June 2015
Rapid Application Development
 Big Ball of Mud
 Mixes User Interface and logic
 Mixes UI, logic and database

 Modules did not help

 Difficult to maintain and evolve

 Manual testing

 Platform specific (web application?)

 Fat clients (SaaS?)

From RAD to MVC


June 2015
Rapid Application Development
 To be fair
 Bad programmers write bad code;
Good programmers write good code.
 RAD lets bad programmers write bad code faster;
RAD does NOT cause good programmers to
suddenly start writing badly.

From RAD to MVC


June 2015
Model-View-Controller (MVC)
 Architecture pattern which:
 Isolates “Domain Logic”
 Applicationlogic for the end-user
 Business logic e.g. for data persistence

 From “User Interface”


 Input and presentation
 Permitting
independent
development, testing and maintenance of each
 Separation of concerns

From RAD to MVC


June 2015
Model-View-Controller (MVC)
 Model What it is
 Manages the behavior of the data

 View What it looks like


 Renders the model for interaction

 Controller What it does


 Receives User inputs
 Instructs the Model and View

From RAD to MVC


June 2015
Model-View-Controller (MVC)
 The Model
 Contains all business logic
 Contains data for the application
 Often linked to a database or REST
 Contains state of the application
 e.g. what orders a customer has
 Notifies the View of state changes
 If needed, e.g. not for stateless views
 No knowledge of user interfaces
 So it can be reused

From RAD to MVC


June 2015
Model-View-Controller (MVC)
 The View
 Generates the user interface
which presents data to the user
 Passive (doesn’t do any processing)

 Many views can use


the same model for different reasons

From RAD to MVC


June 2015
Model-View-Controller (MVC)
 The Controller
 Receives events from the outside world
 Usually through views
 Interactswith the model
 Displays the appropriate view to the user

From RAD to MVC


June 2015
Model-View-Controller (MVC)
 MVC Process
Use
Model
Notify updates

Controller Refresh

Command View

From RAD to MVC


June 2015
MVC, MVVM, MVCVM
 MVVM and MVCVM
 Even more uncoupled
 For better testing

 The ViewModel
 May (or not) replace the controller
 Expose data and command objects for the view

 Eases two-way communication

From RAD to MVC


June 2015
MVVM, MVCVM
 Model
 Holds the actual data
(various context, store or other methods)

 View
 Displays a certain shape of data
Has no idea where the data comes from

 ViewModel
 Holds a certain shape of data and commands
Does not know where the data, or code, comes from or how it is displayed
Is re-usable for several views

 Controller
 Listens for, and publishes, events
Provides the logic to display the data
Provides the command code to the ViewModel

From RAD to MVC


June 2015
MVVM
 MVVM Process

From RAD to MVC


June 2015
MVVM in Delphi
 LiveBindings
 Effective since XE3

 DSharp
 Convention-Over-Configuration interfaces

 MGM pattern used in hcOPF


 Mediator component to bind the UI at design time

From RAD to MVC


June 2015
MVC and n-Tier / SOA
Client 1 (Delphi) Client 2 (AJAX)
Presentation Tier View
Presentation Tier Presentation Tier

Application Server
Application Tier Controller Application Tier

Business Logic Tier Model Business Logic Tier

DB Server

Data Tier
Data Tier

From RAD to MVC


June 2015
From RAD to MVC
June 2015

You might also like