Model-View Controller

Slides:



Advertisements
Similar presentations
Connecting to a Database through Programs Database Systems.
Advertisements

Using.NET Platform Note: Most of the material of these slides have been adapted from Nakov’s excellent overview for.NET framework, MSDN and Wikipedia Muhammad.
E-commerce can be seen below as a prototype.
CS Body of Knowledge (ACM) Discrete Structures Programming Fundamentals Algorithms & Complexity Operating Systems Architecture & Organization Social &
Agenda Web Application Web Page development WAMP
Modern Web Application Frameworks CSE 591 – Security and Vulnerability Analysis Spring 2015 Adam Doupé Arizona State University
Using Evernote and Google Docs in your web or mobile application (and potentially Dropbox and Skydrive) By Peter Messenger Senior Developer – Triple Point.
Service-Oriented Architecture INF 123 – Software architecture 1.
Web Services Darshan R. Kapadia Gregor von Laszewski 1http://grid.rit.edu.
INTRODUCTION TO ASP.NET MVC AND EXAMPLE WALKTHROUGH RAJAT ARYA EFECS - OIM DAWG – 4/21/2009 ASP.NET MVC.
Software Engineering 2003 Jyrki Nummenmaa 1 OBJECT ARCHITECTURE DESIGN These slides continue with our example application, based on the simplified.
Presented by Benjamin Kehrer [CSCI 360, CofC, 03/17/08]
Fabian Vilers Hands on ASP.NET MVC.
Introduction to Model-View-Controller (MVC) Web Programming with TurboGears Leif Oppermann,
Developing Smart Client Applications For The Enterprise Keith Elder Team Leader / Sr. Software Engineer Quicken Loans Blog:
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.
27-Jun-15 Rails. What is Rails? Rails is a framework for building web applications This involves: Getting information from the user (client), using HTML.
Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"
Object-Oriented Analysis and Design
ESupport Shifting Customers to the Internet for Support Published: January 2002.
Chapter 13 Web Application Infrastructure. Objectives Explain the components and purpose of a web application platform Describe several common webapp.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
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.
“ Web Application Maker”: the next 11 years Miguel Calejo Declarativa, Portugal 28-Apr-2011 Copyright Declarativa 1.
MVC and MVP. References enter.html enter.html
Model View Controller (MVC) Rick Mercer with a wide variety of others 1.
Lecture 19 Web Application Frameworks Boriana Koleva Room: C54
Tech Terminology for non-technical people Tim Bornholtz 2006 Annual Conference.
MVC Design Pattern Web Developer at Crimshield, Inc Application Developer at IBM Present - Delta Developer at Tides.
Introducing ASP.NET MVC Alan Dean. Model-View-Controller (MVC) is a well-known design pattern The original 1978 implementation is described in depth in.
Model View Controller (MVC) Bigger than a Pattern: It’s an Architecture Rick Mercer with help from many others 1.
Model View Controller A Pattern that Many People Think They Understand, But Has A Couple Meanings.
.  A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate.  Taken advantage of Spring’s multi layer injection.
Model View Controller (MVC) Bigger than a Pattern: It’s an Architecture Rick Mercer with help from many of others 1.
Rich Web Applications for the Enterprise... Creating RWA from Your Oracle Database Presented By: John Krahulec Bizwhazee SEOUC Charlotte February 2009.
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 Lecture 3 Major Architectural Models View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern.
L10: Model-View-Controller General application structure. User Interface: Role, Requirements, Problems Design patterns: Model – View – Controller, Observer/Observable.
Introduction to Model-View-Controller (MVC) Web Programming with TurboGears Leif Oppermann,
ASP.NET Core* Shahed Chowdhuri Sr. Technical WakeUpAndCode.com A Quick Overview of ASP.NET Core * aka ASP.NET 5 before.
ASP.NET Core* Shahed Chowdhuri Sr. Technical WakeUpAndCode.com A Quick Overview of ASP.NET Core RC2 * aka ASP.NET 5 before.
Basics Components of Web Design & Development Basics, Components, Design and Development.
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.
Chapter 13 Web Application Infrastructure
Introduction to Internet Programming (Web Based Application)
Design Patterns Source: “Design Patterns”, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides And Created.
Web Application.
Observer Design Pattern
MVC and other n-tier Architectures
Building Web Applications with Microsoft ASP
Haritha Dasari Josue Balandrano Coronel -
Multitier Architecture, MySQL & PHP
Web App vs Mobile App.
CS5220 Advanced Topics in Web Programming Course Overview
Web Programming Language
A Quick Overview of ASP.NET Core 1.0
Building Graphical User Interface with Swing a short introduction
Model-View-Controller (MVC) Pattern
5 Leading web development Framework is good for developing a Secure Website.
Software framework University of Kurdistan
ASP.NET Core* MVC and Web API Shahed Chowdhuri
WPS - your story so far Seems incredible complicated, already
Dot Net Application PROF. S. LAKSHMANAN, DEPT. OF B. VOC. (SD & SA),
UFCEUS-20-2 Web Programming
CS5220 Advanced Topics in Web Programming Course Overview
Web Application Development Using PHP
Presentation transcript:

Model-View Controller Design pattern presentation and discussion Rajat arya (rajata@u) EFECS * OIM DAWG MVC Presentation

Agenda Definition History / Origins Functional Description what is this fancy thing called MVC? History / Origins where does it come from? Functional Description how does MVC actually work? Goal / Benefits why is it important? Example Scenarios where could MVC be used? Sample MVC Implementation Review lets see this thing actually working Modern Implementations where does it exist right now? Questions? Reference Materials DAWG MVC Presentation

MVC Definition The Model-View Controller Paradigm is a triad of classes used to build modular applications. MVC consists of three components (objects): Model – application object (data) View – user interface (presentation) Controller – defines how user interface reacts to user action DAWG MVC Presentation

History First Appeared Formally in: “A cookbook for using the model-view controller user interface paradigm in Smalltalk-8” by Glenn E. Krasner and Stephen T. Pope Journal of Object-Oriented Programming, 1(3):26-49 August/September 1988 DAWG MVC Presentation

Functional Description Intro – Observer Pattern MVC utilizes two applications of the Observer Pattern Observer Pattern (aka Publish-Subscribe) Attach / Detach / Notify Decouples Subjects from Observers, subjects do not know about observers directly Observer Docs: http://www.research.ibm.com/designpatterns/example.htm http://msdn.microsoft.com/en-us/library/ms954621.aspx http://en.wikipedia.org/wiki/Observer_pattern DAWG MVC Presentation

MVC Functional Description MVC Definition: Specific application of the Observer Design Pattern Model is application object (data) View is the user interface (presentation) – observes Model Controller defines way user interface reacts to input – observes View Observer Pattern Used Twice (Controller observes View and View observes Model) View Controller Model DAWG MVC Presentation

MVC Functional Description (2) Controller maintains knowledge of both View and Model, View has knowledge of Model Controller observes changes in View (1), informs Model (2) View observes changes in Model (3) and updates View (1) Controller (3) (2) Model DAWG MVC Presentation

Goal / Benefits Modularity Flexibility Maintainability Testability decoupling components allows each component to be versioned independently worked on by individuals on team (UI person, DB person, etc) Flexibility multiple Views for one Model (web frontend, desktop frontend, mobile frontend, etc) replace one component (replace data storage from flat file to database) Maintainability only change one component where bug exists, less risk in late changes Testability each component communicates through contract so each component can be unit-tested independently DAWG MVC Presentation

Example Scenarios Spreadsheet application (classic) same data (model) spreadsheet can have multiple charts (views) updating spreadsheet should result in updated charts example of multiple views, single controller, single model Scaling an application view is desktop or web, model is a flat-file database updating the database to clustered set of SQL servers only model needs to take changes for architecture, controller connects to new model and doesn’t know that the model is now backed by several DBs instead of one file Multiple user interfaces to application web interface, mobile phone interface, point-of-sale interface, desktop interface multiple views, multiple controllers, single model DAWG MVC Presentation

Sample Implementation Review Small WPF Application written in C# to illustrate how MVC. Email me if you would like a copy of the source code. DAWG MVC Presentation

Modern Implementations GUI Frameworks for desktop applications Application Kit – part of Cocoa for OS X desktop apps GTK+ - part of GTK libraries, used in lots of apps Microsoft Foundation Classes (MFC) – Document/View Architecture Java Swing Windows Presentation Framework (WPF) TK Toolkit – part of Tcl/Tk Implementations of MVC in web-based frameworks ASP .NET MVC Framework (.NET) ProMesh.NET (.NET) Grails (Java) Struts (Java) Spring (Java) PureMVC (JavaScript) Ruby on Rails (Ruby) Zend Framework (PHP) Django (Python) Pylons (Python) DAWG MVC Presentation

Fin. Questions? DAWG MVC Presentation

Reference Links Design Patterns: Elements of Reusable Object-Oriented Software If you get nothing else from this talk, please go look this up – it is the most important book I’ve read regarding object-oriented programming: http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1233361435&sr=8-1 MVC http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller http://www.ootips.org/mvc-pattern.html http://c2.com/cgi/wiki?ModelViewController http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html Observer Pattern http://www.research.ibm.com/designpatterns/example.htm http://en.wikipedia.org/wiki/Observer_pattern http://msdn.microsoft.com/en-us/library/ms954621.aspx DAWG MVC Presentation