What is MVC? At the very least it’s just another computer acronym…Model-View-Controller It might be new to you but it’s been around for 30 years In varying.

Slides:



Advertisements
Similar presentations
Introduction to ASP.NET MVC
Advertisements

IT in the Real World A look at IT in a Fortune 500 company Ed Nelson.
COM vs. CORBA.
Lab 9: Code Organization User Interface Lab: GUI Lab October 23 rd, 2013.
{ Model View Controller ASP.NET By Scott Crooks & Maggie Wettergreen.
Fabian Vilers Hands on ASP.NET MVC.
Introduction to Model-View-Controller (MVC) Web Programming with TurboGears Leif Oppermann,
Designer’s Challenge – Web-based Applications using Adobe Flex and OpenInsight Clay Borne President CLB IT.
Technical Architectures
Programming Creating programs that run on your PC
1 Model View Controller. 2 Outline Review Definitions of MVC Why do we need it? Administiriva Changing the display Event flow Dragging at interactive.
James Tam Introduction To Design Patterns You will learn about design techniques that have been successfully applied to different scenarios.
CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.
Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"
CSE 219 COMPUTER SCIENCE III PROPERTIES OF HIGH QUALITY SOFTWARE.
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
By Bob Bunson  Simulation of software development project  Fictitious system from Concept to Code  Oriented around the.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
UNIT-V The MVC architecture and Struts Framework.
2012 National BDPA Technology Conference Creating Rich Data Visualizations using the Google API Yolanda M. Davis Senior Software Engineer AdvancED August.
CodeIgniter - [Overview]
MVC pattern and implementation in java
Jordan Maxwell ADVANCED PROGRAMMING. DEFINITIONS PHP: A server side Programming language often used in websites. API: ( Application programming interface.
Echo2 Java AJAX Web Framework Petar Milev. Contents 1.Introduction to Echo2 2.Echo2 Target – Business Web 3.Why Choosing Echo2? 4.Live Demo 5.How It Works?
ASP.NET and Model View Control Jesper Tørresø ITNET2 F08.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
Lecture 19 Web Application Frameworks Boriana Koleva Room: C54
 Chapter 6 Architecture 1. What is Architecture?  Overall Structure of system  First Stage in Design process 2.
1 Dr Alexiei Dingli Web Science Stream Introducing Rails.
Lecturer: Prof. Piero Fraternali, Teaching Assistant: Alessandro Bozzon, Advanced Web Technologies: Struts–
Nicolas Teirlinckx Made for Software Engineering Groep 1 (2009 – 2010)
Chapter 9 Moving to Design
Fall CIS 764 Database Systems Design L8. Web ….
Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Architecture.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
Model View Controller MVC Web Software Architecture.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Rich Web Applications for the Enterprise... Creating RWA from Your Oracle Database Presented By: John Krahulec Bizwhazee SEOUC Charlotte February 2009.
CS 4720 Model-View-Controller CS 4720 – Web & Mobile Systems.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
Website Design Best Practices. Topics  Navigation  Readability  Portability  Frameworks for Web Design  Model View Architecture MVC  SEO  Performance.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
ASP.NET MVC An Introduction. What is MVC The Model-View-Controller (MVC) is an architectural pattern separates an application into three main components:
Introduction to Model-View-Controller (MVC) Web Programming with TurboGears Leif Oppermann,
START Application Spencer Johnson Jonathan Barella Cohner Marker.
Introduction to Node.js® Jitendra Kumar Patel Saturday, January 31, 2015.
Benjamin Unit Testing & Test-Driven Development for Mere Mortals.
Presented by Alexey Vedishchev Developing Web-applications with Grails framework American University of Nigeria, 2016 Intro To MVC Architecture.
Java Web Development with NetBeans IDE -- Kai Qian Chapter 9 Case Study.
Introduction to .NET Florin Olariu
CS 325: Software Engineering
MVC and other n-tier Architectures
CSC 480 Software Engineering
Haritha Dasari Josue Balandrano Coronel -
Unit 6-Chapter 2 Struts.
#01 Client/Server Computing
Unit Testing & Test-Driven Development for Mere Mortals
Design and Maintenance of Web Applications in J2EE
Web Development Using ASP .NET
Model-View-Controller Patterns and Frameworks
Lecture 1: Multi-tier Architecture Overview
Web Application Architectures
Web Application Architectures
WPS - your story so far Seems incredible complicated, already
SOFTWARE DEVELOPMENT LIFE CYCLE
UFCEUS-20-2 Web Programming
ASP.NET MVC Imran Rashid CTO at ManiWeber Technologies.
Web Application Architectures
#01 Client/Server Computing
Presentation transcript:

What is MVC? At the very least it’s just another computer acronym…Model-View-Controller It might be new to you but it’s been around for 30 years In varying degrees it is probably something you are already doing but didn’t know it But before we explain MVC any further…

Audience Poll Who here already has been or will plan to integrate an OpenInsight application with an alternative visual interface and/or with an alternative database server? If you answered “yes” to this question then MVC should be of interest to you…

“The Shape of Things to Come” 2010 Revelation Software Users’ Conference – 22 total presentations – 10 related to non-traditional visual interfaces or databases servers (at least for Revelation based apps) – 40% of these presentations are telling us that the future requires us to think differently

“The Shape of Things to Come”

Model-View-Controller Architectural pattern for designing software where an application is described in and designed in three separate layers: – Model = Relates to the application’s database and business logic – View = Relates to the application’s presentation of the data – Controller = Relates to the application’s flow and ties the other layers together Generally assumes that application layers are loosely connected – A Bit of History

Model-View-Controller Coined in the late 70’s and made popular in the early 80’s with Smalltalk Developed with Object Oriented technology in mind Early versions assumed dumb clients Spin-off versions include Model-View-Presenter, Model-View-Template, and Model-View-ViewModel – A Bit of History

Who Needs to Know MVC? Anyone who needs to substitute or allow for alternative layers with minimal code rewrite – Presentation layer - WPF, Flex, HTML, iPhone, webOS – Data layer - SQL, U2, AmazonS3, Google App Engine (e.g. Cloud resources – Tom Wilson) – Leverage existing resources – Tom Wilson Anyone who wants easier code management and documentation Anyone who develops with teams who are focused on a specific layer of the application

Who Needs to Know MVC? Anyone who wants better unit testing of their code Anyone who wants more reusability of their code Anyone who wants more scalability in their application Ask a Java, PHP, Ruby,.NET, or Cocoa developer

Who Doesn’t Need to Know MVC? Anyone who prefers a ‘git-r-done’ approach Anyone who never intends to work outside of OpenInsight

Model-View-Controller – A Closer Look Disclaimers – I am not an MVC purist or expert – Much of what I am presenting is a “work-in- progress” effort – While MVC philosophy is always the same, pundits will differ on how to apply it

“The Shape of Things to Come” The Challenge – Move from “direct connection / local data” to “indirect connection / global data” – Preserve the valuable repository of business logic – Allow for easy introduction of new components such as new visual interfaces or new database technologies – Avoid rewriting code

Separation of Concerns (Layers) –M–Model –V–View –C–Controller Model Model View Receivers User Inputs Calls Appropriate Resources Receivers User Inputs Calls Appropriate Resources Controller Model-View-Controller – A Closer Look Handles Data Handles Business Logic Handles Data Handles Business Logic Presents Data to User Handles Event Processing Presents Data to User Handles Event Processing API Events Requests Notifications API Events Requests Notifications API Results Responses Notifications API Results Responses Notifications

Model-View-Controller vs. n-Tier Architecture Logic Tier Presentation Tier Data Tier n-Tier View Controller Model MVC Business Logic Physical Data

Amazon’s Shopping Cart

AREV

OpenInsight

Flex - Form Design Courtesy of Clay Borne

Calculate Shipping - Flowchart Start End Have Zipcode? Have Zipcode? Set “Missing Zipcode” Error Set “Missing Zipcode” Error Shipping Logic Return Shipping Costs NoYes Display Shipping Cost (Color Red if too much) Display Error

MVC Examples – Side by Side Comparison View Controller Model Basic MVC OI Form Basic+ (Commuter) OI Form Basic+ (Commuter) In Process Engine Basic + In Process Engine Basic + Linear Hash Basic+ (MFS) Linear Hash Basic+ (MFS) Pure OI HTML Javascript HTML Javascript OECGI/2 Basic+ OECGI/2 Basic+ Linear Hash Basic+ (MFS) Linear Hash Basic+ (MFS) HTML / OI Flex/Flash ActionScript Flex/Flash ActionScript OECGI/2 Basic+ OECGI/2 Basic+ Linear Hash Basic+ (MFS) Linear Hash Basic+ (MFS) Flex / OI OI Form Basic+ (Commuter) OI Form Basic+ (Commuter) In Process Engine Basic + In Process Engine Basic + SQL Basic+ or Direct SQL Basic+ or Direct OI/ SQL

Final Thoughts Don’t swallow the elephant – Take one bite at a time – Translation: Don’t force yourself to convert everything to MVC. Ease into it Don’t force a square peg in a round hole Build a framework and standards to make this easier