Top Banner
Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University
29

Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Dec 25, 2015

Download

Documents

August Russell
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Model-View-Controller Architecture in a Systems Analysis and Design Course

Dr. Robert F. Zant

Illinois State University

Page 2: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

The Plan

• Curriculum overview

• MVC Concepts

• Example MVC implementation

Page 3: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Curriculum Structure

Systems Development I

Systems Development II Object Oriented Systems DevelopmentSystems Development/Analyst Web Application Development

Directed Project in Information Technology

Page 4: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Systems Development I

• Taken by all IS majors

• Covers Traditional and Object-Oriented SAD

Page 5: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Systems Development II

• Taken by IS majors in Systems Development/Analyst Sequence

• Covers Traditional SAD

• Includes Simulated Project

Page 6: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

OO Systems Development

• Taken by IS majors in Web Application Development Sequence

• Covers Object Oriented SAD

• Includes Simulated Project

Page 7: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Directed Project in Information Technology

• Taken by IS majors in both sequences

• Includes Real-World Project

Page 8: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Curriculum Structure

Systems Development I

Systems Development II Object Oriented Systems DevelopmentSystems Development/Analyst Web Application Development

Directed Project in Information Technology

Page 9: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

MVC Architecture

• Used in both second level courses as a unifying theme

• Provides an architectural template for novice system developers

• Use is prevalent in industry

Page 10: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

MVC Structure

Page 11: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

MVC

• Controller - Interprets user requests and invokes Model and View

• Model - contains application logic and access logic for persistent data

• View - displays model results to user

Page 12: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Primary Data Flow

Page 13: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Server Side Programming

Page 14: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Client Side Interface Design

Page 15: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Guidelines

• All responses from users are processed first by a Front Controller

• Communication of user responses to the Front Controller is by name (e.g., field names on HTML forms)

• A Front Controller invokes a Page Controller, not a Model or View

• A Page Controller invokes one Model and one View

Page 16: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Guidelines (cont.)

• A Model executes application logic and accesses data stores (contains no HTML)

• A Model creates an XML file or an object containing its results

• Communication of Model results to a View are by name (e.g., tags in XML)

Page 17: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Guidelines (cont.)

• A View creates a presentation stream

• A View contains no application logic

• A View obtains all non-constant text data from the XML file or result object produced by the Model

• A View does not directly reference any data in a Model or URL for the site

Page 18: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Example Front Controller

<% NOTE: This is the Front Controller ; DEFAULT pc = "menu", sys_base = $path_Translated_dir$"/", url_base = http:"//"$server_name$$path_info_dir$"/", home = $url_base$index.odb ;

SESSION LOGIN = "login.odb?from=$pc$", TIMEOUT = 10 ;

INCLUDE $sys_base$"c/"$pc$".c"; %>

Page 19: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Example Page Controller

<% NOTE: Page Controller to List Products ;

INCLUDE $sys_base$m/Products/table1.m ;

INCLUDE $sys_base$v/Products/table1.v ; %>

Page 20: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Example Model

<% NOTE: Model to List Products ; DATABASE "DSN=myProducts" ; SELECT Category, ProductID, Heading, Description, UnitPrice, UnitsOnHand FROM Products ORDER BY ProductID ; OUTPUT $xmlfile$ ; NOTE: xmlfile defined during login;%> <?xml version="1.0" ?> <?xml-stylesheet type="text/xsl” href="$xslt$”?>

<root> <links> <home>$home$</home> </links>

Page 21: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Example Model (cont.)

<products><% EACHROW %> <row> <ProductID>$ProductID$</ProductID> <Category>$Category$</Category> <Description>$Description$</Description> <UnitPrice>$UnitPrice$</UnitPrice> <UnitsOnHand>$UnitsOnHand$</UnitsOnHand> </row><% ENDROW %> </products> </root> <% OUTPUT %>

Page 22: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Example XML File

<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="$xslt$" ?><root> <links> <home>http://localhost/new/widgets/index.odb</home> </links> <products> <row> <ProductID>3</ProductID> <Heading>Reinforced plastic 8 inch</Heading> <Category>Plastic Widgets</Category> <Description>Oversized polyethelene with steel</Description> <UnitPrice>10.0000</UnitPrice> <UnitsOnHand>70</UnitsOnHand> </row> </products> </root>

Page 23: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Example View

SET xslt = $url_base$"v/Products/xslt/table1.xslt" ;

INCLUDE $xmlfile$ ;

Page 24: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Example XSL

<?xml version="1.0"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:output method="html" omit-xml-declaration="yes"/><xsl:template match="/"><html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><meta http-equiv="content-type" content="text/html" /><title>World Wide Widgets</title><style type="text/css"> @import url(v/widgets.css);</style></head><body>

Page 25: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Example XSL (cont.)

<div id="pageHeader"><a><xsl:attribute name="href"> <xsl:value-of select=“root/links/home"/> </xsl:attribute><h1>World Wide Widgets</h1></a></div> <!-- End of Page Header --><xsl:apply-templates /><div id="pageFooter">[<a><xsl:attribute name="href"> <xsl:value-of select=“root/links/home"/> </xsl:attribute>Continue...</a>]</div> <!-- End of Page Footer --></body></html></xsl:template>

Page 26: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Example XSL (cont.)

<xsl:template match=“products"> <table> <caption>Products<br />by Product ID</caption> <tr> <th>Product ID</th><th>Product</th> <th>Category</th><th>Description</th> <th>Price</th><th>On Hand</th> </tr> <xsl:apply-templates select=“row"/> </table></xsl:template>

Page 27: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Example XSL (cont.)

<xsl:template match=“row"> <tr> <td><xsl:value-of select=“ProductID" /></td> <td><xsl:value-of select="Heading" /></td> <td><xsl:value-of select="Category" /></td> <td><xsl:value-of select="Description" /></td> <td><xsl:value-of select="format-number (UnitPrice,'$###,##0.00')" /></td> <td><xsl:value-of select="UnitsOnHand" /></td> </tr></xsl:template></xsl:stylesheet>

Page 28: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Recommended Software

• ODB Script– http://odbscript.com/

• Abyss Web Server– http://www.aprelium.com/

• Cooktop– http://xmlcooktop.com/

• TextPad– http://www.textpad.com/

Page 29: Model-View-Controller Architecture in a Systems Analysis and Design Course Dr. Robert F. Zant Illinois State University.

Thank You

Questions?