Model-View-Controller: A Design Pattern for Software. June 2004
|
|
|
- Darleen McCarthy
- 10 years ago
- Views:
Transcription
1 Model-View-Controller: A Design Pattern for Software June 2004
2 Introduction Why focus on Model-View-Controller Architecture? What's a Software Design Pattern? Why should programmers care about Design Patterns?
3 Why focus on Model-View- Controller Architecture? The topic of this presentation is MVC - Model-View-Controller - architecture in web applications. This topic was selected because it allows us to look at web appliation development in overview, before getting into the nitty gritty of the many component parts of implementing a web app. MVC is a fundamental and high-level design pattern for programming in the J2EE architecture toward which the UC Berkeley campus is gravitating in response to the E-Architecture guidelines established by the campus's Information Technology Architecture Committee (ITAC) in 2001.
4 What's a Software Design Pattern? The idea of Design Patterns in software engineering grew out of work by Emeritus Professor Christopher Alexander of UC Berkeley's own architecture department. Professor Alexander's ideas were most notably applied to Software Engineering by four authors of the book Design Patterns: Elements of Reusable Object-Oriented Software, collectively nicknamed the "Gang of Four." This book identifies about two dozen fundamental patterns for solving recurring problems in software engineering. Brad Appleton's article Patterns and Software: Essential Concepts and Terminology gives a good overview of Design Patterns applied to software programming. The Design Patterns... book, by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, is a resource of inestimable value.
5 Why should programmers care about Design Patterns? It has become widely accepted among software engineers and architects that designing applications in explicit conformity to these patterns facilitates the re-use of insight and experience gleaned by the best and brightest among us over the course of thousands of real-world software development efforts. In short, thinking in terms of Design Patterns will make you a better programmer.
6 What is MVC? MVC - Model-View-Controller - is a design pattern for the architecture of web applications. It is a widely adopted pattern, across many languages and implementation frameworks, whose purpose is to achieve a clean separation between three components of most any web application: Model: business logic & processing View: user interface (UI) Controller: navigation & input In general, J2EE applications - including those built on top of the Streek project - follow the MVC design pattern. Generic MVC Structure, courtesy of Sun (
7 What are the benefits of MVC? MVC benefits fall into multiple categories: Separation of concerns in the codebase Developer specialization and focus Parallel development by separate teams In looking at these in a little more detail, it will become clear that the second two bullet-points are corollaries of the first.
8 Separation of concerns (1) Separation of Model, View, and Controller: allows re-use of business-logic across applications allows development of multiple UIs without touching business logic codebase discourages "cut-&-paste" repetition of code, streamlining upgrade & maintenance tasks Looking at the other side of the same coin, intermingling M, V, and C code makes for: bigger, knarlier, harder-to-maintain classes repetition of code in multiple classes (upgrade & maintenance issues)
9 Separation of concerns (2) Here's a snippet of what Martin Fowler, a respected and much-published author of design-oriented software literature, has to say on the subject of separation of concerns: Following this principle leads to several good results. First, this presentation code [View] separates the code into different areas of complexity. Any successful presentation requires a fair bit of programming, and the complexity inherent in that presentation differs in style from the domain [Model] with which you work. Often it uses libraries that are only relevant to that presentation. A clear separation lets you concentrate on each aspect of the problem separately and one complicated thing at a time is enough. It also lets different people work on the separate pieces, which is useful when people want to hone more specialized skills. - Martin Fowler, Separating User Interface Code
10 Developer specialization and focus UI developers can focus exclusively on UI, without getting bogged down in business logic rules or code Business logic developers can focus on business logic implementation and changes, without having to slog through a sea of UI widgets
11 Parallel Development by Separate Teams Business logic developers can build "stub" classes that allow UI developers to forge ahead before business logic is fully implemented. UI can be reworked as much as the customer requires without slowing down the development of code that implements business rules. Business rule changes are less likely to require revision of the UI (because rule changes don't always affect structure of data the user sees).
12 APIs: Contracts that Bind APIs: The Glue between Model, View, and Controller Simple MVC Example Controller can call methods on model in different ways Model can read/write from different or multiple databases
13 APIs: The Glue between Model, View, and Controller "Separation of concerns" means that one layer doesn't care how another layer is implemented Each layer relies soley on the behavior specified in the API of other layers. The API specifies the behavior of the interface between a layer and the layers that interact with it. The APIs may be considered contracts to which each development team agrees before going off to implement the behavior promised by the interface.
14 Simple MVC Example
15 Controller can call methods on model in different ways The controller can call whatever model methods it wishes to accomplish the desired behavior
16 Model can read/write from different or multiple databases Two ways to persist contact information
17 Model (Detail) The application s model includes: Application State Application Rules Persistent data
18 Application State The data model represents the "noun" objects needed by the application and/or its users, such as: people (faculty, staff, students, customers, visitors, application administrators) widgets needed by application users (shopping carts, transcripts, contact information, merchandise) The data model defines these objects abstractly. The instances of the data objects currently in-play, and the value of those objects, constitutes the "application state."
19 Application Rules Application rules are the business logic of the application. Examples of business logic are: A student may not alter the data in her transcript Only the student herself and application administrators may modify a student's contact information A faculty member may view a student transcript only if she is the student's designated advisor
20 Persistent data (1) Persistence refers to long-term storage of data - beyond the scope and time-frame of the user's session in the application. Persistence is taken care of "behind the facade" of the data model. That is, the application's Model layer exposes a facade representing the data model; and behind-thescenes the Model takes care of reading & writing data that populates instances of the model objects. If the data store used by the application changes (from flat files to a relational database, for example), other layers of the application (such as the View) don't need to be altered: they are shielded from persistence details by the Model facade.
21 Persistent Data (2) The persistence layer is part of the Model
22 Model Implementation Technologies Within the J2EE framework, there are a range of technologies that may be applied to implementation of the model layer. These include: Object-Relational Mapping Frameworks (Java Objects <-> Relational Databases): Hibernate, an open-source persistence framework Oracle's TopLink Sun's EJB (Enterprise Java Beans) Sun's JDO (Java Data Objects) Hand-coded data accessors via the JDBC API The attributes and merits of each of these solutions are outside the scope of this presentation. In general, however, Object-Relational mapping frameworks involve a layer of abstraction and automation between the application programmer and data persistence, which tends to make application development faster and more flexible. Differences between specific O-R Mapping technologies turn on the array of services offered by each technology, vendor specificity, and how well these differences map to a particular application's development and deployment requirements.
23 View (Detail) Elements of the View View Techologies Templating Styling The Decorator Pattern
24 Elements of the View The application's View is what the user sees. In a web application, the View layer is made up of web pages; in a web application that can be accessed by non-traditional browsers, such as PDAs or cell-phones, the View layer may include user interfaces for each supported device or browser type. In any case, the View includes: Core data - the subject of a page's business Business logic widgets (e.g., buttons to perform Edit or Save) Navigation widgets (e.g., navigation bar, logout button) Skin (standard look of the site: logos, colors, footer, copyright, etc.)
25 View Technologies (1) In the context of a web application, view technologies are used to render the user interface (UI) in a way that properly and dynamically links it to the application's business-logic and data layer (i.e., to the model). Java Server Pages (JSPs) are a widely-utilized technology for constructing dynamic web pages. JSPs contain a mix of static markup and JSP-specific coding that references or executes Java. In brief: JSP Tags call compiled Java classes in the course of generating dynamic pages. JSP Directives are instructions processed when the JSP is compiled. Directives set page-level instructions, insert data from external files, and specify custom tag libraries. Java code - in sections called "scriptlets" - can be included in JSP pages directly, but this practice is strongly discouraged in favor of using JSP Tags
26 View Technologies (2) XML Pipelining is another technique for rendering the User Interface. Apache's Cocoon and Orbeon's OXF are technologies that use this technique. (For the record, XML pipelining simply means executing a series of transformations of XML documents in a proscribed order. For example, a data structure pulled from a persistent store may be rendered as an XML document, then - in a pipeline - may be augmented with data from a separate data structure; sorted; and rendered in HTML format using a series of XSLT transformations. A simple example of an XML pipeline using Apache's Ant tool can be viewed in this article.)
27 Templating In order to maintain a consistent look-and-feel on a site, pages are often templated. Templated web-page layout, courtesy of Sun The web page's <body> is where core business content of a page can be found. Using a template to render a consistent header, footer, and navigation UI around the core business content standardizes a site's graphic presence, which tends very strongly toward making users' experience smoother and less prone to error.
28 Styling Web Pages with CSS Cascading Style Sheets are a critical component of rendering a consistent look and feel in a web site (cf. this CSS Tutorial for more on Cascading Style Sheets). CSS is used to specify colors, backgrounds, fonts and font-size, block-element alignment, borders, margins, list-item markers, etc. By specifying the designer's choices in a single file (or group of files), and simply referring to the style sheet(s) in each web page, changes in style can be accomplished without altering the pages themselves. The breadth of design choices that can be achieved simply by applying different CSS to a web page is vividly illustrated at the CSS Zen Garden website.
29 The Decorator Pattern (1) Templating and styling are aspects of an important "Gang of Four" design pattern, called the Decorator Pattern. Using the Decorator Pattern simply means wrapping some core object in something that gives it additional functionality. In the context of building a user interface for the web - the View layer of an MVC-architected application - this might mean wrapping: core business information in a template (e.g., header + footer + navigation), which includes (in the common HTML header) reference to a CSS stylesheet (where background, colors, fonts, etc. are specified) In order to implement this design pattern in the view layer, page decorating frameworks, such as OpenSymphony's SiteMesh can simplify the process. SiteMesh intercepts HTML pages produced statically and/or dynamically, and applies a uniform "skin" to them, as specified in configuration files. Here's a diagram showing how SiteMesh works.
30 The Decorator Pattern (2)
31 The Decorator Pattern (3) Web page generation in a local J2EE application
32 Controller Detail Responsibilities of the Controller Controller Technologies
33 Responsibilities of the Controller The Controller will do the following: Parse a user request (i.e., "read" it) Validate the user request (i.e., assure it conforms to application's requirements) Determine what the user is trying to do (based on URL, request parameters, and/or form elements) Obtain data from the Model (if necessary) to include in response to user Select the next View the client should see The sequencing of calls to the Model (business-logic layer), and/or the sequencing of views and required input from the user defines the application's workflow. Workflow is thus defined in the Controller layer of the application. The Controller layer is, essentially, a traffic cop...
34 Controller Technologies There are numerous application frameworks that can be used to provied the control layer in an MVC-architected application. These include: Struts Java Server Faces WebWork Spring Which of these (or others) is most appropriate to an application is a question to discuss with an experienced application architect.
35 Deployment Descriptors: Function What Deployment Descriptors Do Deployment Descriptors are Declarative Additional Externalization
36 What Deployment Descriptors Do A "Deployment Descriptor" is a configuration file. It is not code, and it is never compiled. Deployment Descriptors are used to configure an application as it starts up in its container (i.e., in its application server). Configuring an application includes wiring its components together: declaring what responses correspond to which requests. In the J2EE environment, the mother of all deployment descriptors is the file web.xml. The contents of this file are specified in the Java Servlet specification; depending on the version of the specification the file must conform to a particular DTD or XSD: DTD for Servlet Spec 2.3 web.xml XSD for Servlet Spec 2.4 web.xml
37 Deployment Descriptors are Declarative Deployment Descriptors are "declarative" and are utilized in the context of J2EE's declarative programming model. What that boils down to is that: Many of the important attributes of J2EE classes are not hard-coded Deployment Descriptors are read when the components are started (deployed), and used to configure deployed modules and classes This means one can declare (via the Deployment Descriptor) what such attributes ought to be without changing or recompiling any code. The attributes in question are ones that specify application components, workflow, security, etc. There's nothing magical about this in the J2EE framework. What's important is that many of the attributes that might have been hard-coded in older frameworks are, in J2EE, "externalized." Externalization allows applications to be more modular.
38 Additional Externalization Additional externalization is built on the pattern established with web.xml. Additional functionality declared outside outside the application codebase might include: * page flow - defined by web application frameworks such as Struts * page decoration (skins) - are defined by web page layout and decoration frameworks such as SiteMesh
39 Benefits of Deployment Descriptors (1) The chief advantage of externalizing configuration via Deployment Descriptors is that the binding between different modules or layers is "looser"; that is, changes can be implemented without rewriting or recompiling code. Deployment Descriptors can be used in J2EE applications to specify: Which persistent data stores are to be used (e.g., which database on which host) Which security framework should be used What security should apply to each part of the application (i.e., which user-roles are authorized to do what actions or see what pages) Which class should handle each user-requested URL What the application workflow should be Which View page should be used to respond to each user request, and how application state (values of data in the Model) should be taken into account in this determination Which "skin" should be used to decorate each View page presented to the user
40 Benefits of Deployment Descriptors (2) For example, deployment descriptor elements defining the Controller layer of an application map user-requested URLs to the classes that will fulfill the requests. The mapping defines the application's workflow. Because the mapping is declared in a Deployment Descriptor, the workflow can be changed without altering code, as in this example: Workflow Changes for Secure Encryption Software On-line Purchase: the order in which a user is presented pages can be externalized in the Deployment Descriptor
41 Example Deployment Descriptor: The next slides show an example of a struts-config.xml file, from the Streek client application BearFacts. Without getting into too many details, these are the steps that connect a user's request with the sequence of actions described by this deployment descriptor: At application startup, Struts ActionServlet is initialized with data in struts-config.xml web.xml deployment descriptor maps all URL requests of this form to a Struts ActionServlet (whose class is also specified in web.xml) User requests URL, of the form The action path is the part of the URL that follows "student/do" Depending on the action-path part of the requested URL: An "Action Class" specific to the type of operation requested is identified (the "type" attribute of <action>) The specified "Action Class" calls appropriate Model classes to performs business logic, processing data (e.g., form data) in the user's request The View that the user will see next is selected based on which forward name ("name" attribute of the <forward> element) is set as a result of processing performed by the Model class(es)
42 struts-config.xml (1 of 2) <?xml version="1.0" encoding="iso "?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" " <struts-config> <global-forwards> <forward name="systemmessage" path="/systemmessage.jsp"/> </global-forwards> <action-mappings> <action path="/studentmain" type="edu.berkeley.sis.bearfacts.student.action.studentmainaction" scope="request" validate="false" parameter="bfaction"> <forward name="welcome" path="/student/welcome.jsp"/> <forward name="logout" path="/login/logout.jsp" redirect="true"/> </action> <action path="/studentcontact" type="edu.berkeley.sis.bearfacts.student.action.studentcontactaction" scope="request" validate="false" parameter="bfaction"> <forward name="displayprofile" path="/student/personal/displayprofile.jsp"/> <forward name="displaycontacts" path="/student/personal/displaycontact.jsp"/> <forward name="updatecontact" path="/student/personal/updatecontact.jsp"/> <forward name="confirmcontactupdate" path="/student/personal/confirmcontactupdate.jsp"/> </action> <action path="/registration" type="edu.berkeley.sis.bearfacts.student.action.studentregistrationaction" scope="request" validate="false" parameter="bfaction"> <forward name="classschedules" path="/student/registration/classschedules.jsp"/> <forward name="regfeesummary" path="/student/registration/regfeesummary.jsp"/> <forward name="summerregfee" path="/student/registration/sumregfee.jsp"/> <forward name="registrationblocks" path="/student/registration/registrationblocks.jsp"/> <forward name="finalexamschedule" path="/student/registration/finalexamschedule.jsp"/> <forward name="telebearsappointment" path="/student/registration/telebearsappointment.jsp"/> </action> [...]
43 struts-config.xml (2 of 2) [...] <action path="/academicrecord" type="edu.berkeley.sis.bearfacts.student.action.studentacademicrecordaction" scope="request" validate="false" parameter="bfaction"> <forward name="currenttermgrades" path="/student/academic/studentcurrentgrades.jsp"/> <forward name="priortermgrades" path="/student/academic/studentpriorgrades.jsp"/> </action> <action path="/financialaid" type="edu.berkeley.sis.bearfacts.student.action.studentfinancialaidaction" scope="request" validate="false" parameter="bfaction"> <forward name="offerletter" path="/student/fin-aid/fin-aid-offer.html"/> <forward name="financialaidstatus" path="/student/fin-aid/finaidstatus.jsp"/> <forward name="financialaidawardsummary" path="/student/fin-aid/finaidawardsummary.jsp"/> <forward name="missingdocuments" path="/student/fin-aid/finaidmissingdocs.jsp"/> </action> <action path="/cars" type="edu.berkeley.sis.bearfacts.student.action.studentcarsaction" scope="request" validate="false" parameter="bfaction"> <forward name="classschedules" path="/student/personal/classschedules.jsp"/> <forward name="refundsummary" path="/student/cars/refundsummary.jsp"/> <forward name="awardssummary" path="/student/cars/awardssummary.jsp"/> <forward name="paymentsummary" path="/student/cars/paymentsummary.jsp"/> <forward name="quickstatement" path="/student/cars/quickstatement.jsp"/> </action> <action path="/loans" type="edu.berkeley.sis.bearfacts.student.action.studentloansaction" scope="request" validate="false" parameter="bfaction"> <forward name="directloan" path="/student/loans/directloan.jsp"/> </action> </action-mappings> </struts-config>
44 Sample Application Requirements Elements in Model, View, and Controller Use-case: User Login
45 Sample App: Requirements A student logs in. If authenticated, she is presented with multiple contact-information sets (e.g., Local, Billing, Permanent). She may choose to edit any set of information individually, or may edit all types at once. Certain rules must be enforced: Local contact info must include address Local contact info must be in California Billing contact info must include postal address Permanent contact info must include postal address (etc.)
46 Sample App: Elements in MVC Views, Controller mappings, and Model elements derived from requirements: Elements in Model, in View, and in Controller layers The View layer includes one view for each use-case with which the user will be presented. The Model contains objects representing entities; objects that perform actions; and representation of rules to which edited data are required to conform. The Controller maps user requests to Model actions, and the response of the Model to appropriate Views.
47 Sample App: Login Use-case Key: user actions; application actions User points browser at welcome screen Controller receives root URL request, returns Welcome view User clicks a button to log in Controller receives Welcome request, presents Login view User supplies UID and Password, clicks button to authenticate Controller receives Login request, passes control to Login action in Model Controller receives response from Model (indicates login success or failure) Controller presents DisplayContacts or LoginFailure view, based on Model response [...]
48 Fini...
DTS Web Developers Guide
Apelon, Inc. Suite 202, 100 Danbury Road Ridgefield, CT 06877 Phone: (203) 431-2530 Fax: (203) 431-2523 www.apelon.com Apelon Distributed Terminology System (DTS) DTS Web Developers Guide Table of Contents
Tutorial: Building a Web Application with Struts
Tutorial: Building a Web Application with Struts Tutorial: Building a Web Application with Struts This tutorial describes how OTN developers built a Web application for shop owners and customers of the
In this chapter, we lay the foundation for all our further discussions. We start
01 Struts.qxd 7/30/02 10:23 PM Page 1 CHAPTER 1 Introducing the Jakarta Struts Project and Its Supporting Components In this chapter, we lay the foundation for all our further discussions. We start by
CrownPeak Java Web Hosting. Version 0.20
CrownPeak Java Web Hosting Version 0.20 2014 CrownPeak Technology, Inc. All rights reserved. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical,
Course Name: Course in JSP Course Code: P5
Course Name: Course in JSP Course Code: P5 Address: Sh No BSH 1,2,3 Almedia residency, Xetia Waddo Duler Mapusa Goa E-mail Id: [email protected] Tel: (0832) 2465556 (0832) 6454066 Course Code: P5 3i
An introduction to creating JSF applications in Rational Application Developer Version 8.0
An introduction to creating JSF applications in Rational Application Developer Version 8.0 September 2010 Copyright IBM Corporation 2010. 1 Overview Although you can use several Web technologies to create
MVC pattern in java web programming
MVC pattern in java web programming Aleksandar Kartelj, Faculty of Mathematics Belgrade DAAD workshop Ivanjica 6. -11.9.2010 Serbia September 2010 Outline 1 2 3 4 5 6 History Simple information portals
GenericServ, a Generic Server for Web Application Development
EurAsia-ICT 2002, Shiraz-Iran, 29-31 Oct. GenericServ, a Generic Server for Web Application Development Samar TAWBI PHD student [email protected] Bilal CHEBARO Assistant professor [email protected] Abstract
ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS
ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS Lech MADEYSKI *, Michał STOCHMIAŁEK Abstract. Architectural design is about decisions which influence characteristics of arising system e.g. maintainability
Client-server 3-tier N-tier
Web Application Design Notes Jeff Offutt http://www.cs.gmu.edu/~offutt/ SWE 642 Software Engineering for the World Wide Web N-Tier Architecture network middleware middleware Client Web Server Application
SSC - Web development Model-View-Controller for Java web application development
SSC - Web development Model-View-Controller for Java web application development Shan He School for Computational Science University of Birmingham Module 06-19321: SSC Outline Outline of Topics Java Server
Portals, Portlets & Liferay Platform
Portals, Portlets & Liferay Platform Repetition: Web Applications and Model View Controller (MVC) Design Pattern Web Applications Frameworks in J2EE world Struts Spring Hibernate Data Service Java Server
Red Hat Enterprise Portal Server: Architecture and Features
Red Hat Enterprise Portal Server: Architecture and Features By: Richard Li and Jim Parsons March 2003 Abstract This whitepaper provides an architectural overview of the open source Red Hat Enterprise Portal
How to Build an E-Commerce Application using J2EE. Carol McDonald Code Camp Engineer
How to Build an E-Commerce Application using J2EE Carol McDonald Code Camp Engineer Code Camp Agenda J2EE & Blueprints Application Architecture and J2EE Blueprints E-Commerce Application Design Enterprise
WEB APPLICATION DEVELOPMENT. UNIT I J2EE Platform 9
UNIT I J2EE Platform 9 Introduction - Enterprise Architecture Styles - J2EE Architecture - Containers - J2EE Technologies - Developing J2EE Applications - Naming and directory services - Using JNDI - JNDI
ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET
ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET PRODUCTIVE ENTERPRISE MOBILE APPLICATIONS DEVELOPMENT KEY FEATURES Visual and declarative development Mobile optimized user experience Simplified access to
ORACLE ADF MOBILE DATA SHEET
ORACLE ADF MOBILE DATA SHEET PRODUCTIVE ENTERPRISE MOBILE APPLICATIONS DEVELOPMENT KEY FEATURES Visual and declarative development Java technology enables cross-platform business logic Mobile optimized
Complete Java Web Development
Complete Java Web Development JAVA-WD Rev 11.14 4 days Description Complete Java Web Development is a crash course in developing cutting edge Web applications using the latest Java EE 6 technologies from
zen Platform technical white paper
zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant
Modern Web Application Framework Python, SQL Alchemy, Jinja2 & Flask
Modern Web Application Framework Python, SQL Alchemy, Jinja2 & Flask Devert Alexandre December 29, 2012 Slide 1/62 Table of Contents 1 Model-View-Controller 2 Flask 3 First steps 4 Routing 5 Templates
How To Understand The Architecture Of Java 2Ee, J2Ee, And J2E (Java) In A Wordpress Blog Post
Understanding Architecture and Framework of J2EE using Web Application Devadrita Dey Sarkar,Anavi jaiswal, Ankur Saxena Amity University,UTTAR PRADESH Sector-125, Noida, UP-201303, India Abstract: This
Oracle Identity Analytics Architecture. An Oracle White Paper July 2010
Oracle Identity Analytics Architecture An Oracle White Paper July 2010 Disclaimer The following is intended to outline our general product direction. It is intended for information purposes only, and may
Japan Communication India Skill Development Center
Japan Communication India Skill Development Center Java Application System Developer Course Detail Track 2a Java Application Software Developer: Phase1 SQL Overview 70 Introduction Database, DB Server
Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat
Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat Page 1 of 14 Roadmap Client-Server Architecture Introduction Two-tier Architecture Three-tier Architecture The MVC Architecture
Developing ASP.NET MVC 4 Web Applications MOC 20486
Developing ASP.NET MVC 4 Web Applications MOC 20486 Course Outline Module 1: Exploring ASP.NET MVC 4 The goal of this module is to outline to the students the components of the Microsoft Web Technologies
A Guide to Understanding Web Application Development Corey Benson, SAS Institute, Inc., Cary, NC Robert Girardin, SAS Institute, Inc.
Paper 024-29 A Guide to Understanding Web Application Development Corey Benson, SAS Institute, Inc., Cary, NC Robert Girardin, SAS Institute, Inc., Cary, NC ABSTRACT You have been asked by your manager
Customer Bank Account Management System Technical Specification Document
Customer Bank Account Management System Technical Specification Document Technical Specification Document Page 1 of 15 Table of Contents Contents 1 Introduction 3 2 Design Overview 4 3 Topology Diagram.6
Design Approaches of Web Application with Efficient Performance in JAVA
IJCSNS International Journal of Computer Science and Network Security, VOL.11 No.7, July 2011 141 Design Approaches of Web Application with Efficient Performance in JAVA OhSoo Kwon and HyeJa Bang Dept
IBM Rational Web Developer for WebSphere Software Version 6.0
Rapidly build, test and deploy Web, Web services and Java applications with an IDE that is easy to learn and use IBM Rational Web Developer for WebSphere Software Version 6.0 Highlights Accelerate Web,
Esigate Module Documentation
PORTAL FACTORY 1.0 Esigate Module Documentation Rooted in Open Source CMS, Jahia s Digital Industrialization paradigm is about streamlining Enterprise digital projects across channels to truly control
JBoss Portlet Container. User Guide. Release 2.0
JBoss Portlet Container User Guide Release 2.0 1. Introduction.. 1 1.1. Motivation.. 1 1.2. Audience 1 1.3. Simple Portal: showcasing JBoss Portlet Container.. 1 1.4. Resources. 1 2. Installation. 3 2.1.
Building and Using Web Services With JDeveloper 11g
Building and Using Web Services With JDeveloper 11g Purpose In this tutorial, you create a series of simple web service scenarios in JDeveloper. This is intended as a light introduction to some of the
SOA REFERENCE ARCHITECTURE: WEB TIER
SOA REFERENCE ARCHITECTURE: WEB TIER SOA Blueprint A structured blog by Yogish Pai Web Application Tier The primary requirement for this tier is that all the business systems and solutions be accessible
JAVA/J2EE DEVELOPER RESUME
1 of 5 05/01/2015 13:22 JAVA/J2EE DEVELOPER RESUME Java Developers/Architects Resumes Please note that this is a not a Job Board - We are an I.T Staffing Company and we provide candidates on a Contract
Title Page. Hosted Payment Page Guide ACI Commerce Gateway
Title Page Hosted Payment Page Guide ACI Commerce Gateway Copyright Information 2008 by All rights reserved. All information contained in this documentation, as well as the software described in it, is
An Architecture for Web-based DSS
Proceedings of the 6th WSEAS Int. Conf. on Software Engineering, Parallel and Distributed Systems, Corfu Island, Greece, February 16-19, 2007 75 An Architecture for Web-based DSS Huabin Chen a), Xiaodong
Enterprise Application Development In Java with AJAX and ORM
Enterprise Application Development In Java with AJAX and ORM ACCU London March 2010 ACCU Conference April 2010 Paul Grenyer Head of Software Engineering [email protected] http://paulgrenyer.blogspot.com
Mastering Tomcat Development
hep/ Mastering Tomcat Development Ian McFarland Peter Harrison '. \ Wiley Publishing, Inc. ' Part I Chapter 1 Chapter 2 Acknowledgments About the Author Introduction Tomcat Configuration and Management
Developing XML Solutions with JavaServer Pages Technology
Developing XML Solutions with JavaServer Pages Technology XML (extensible Markup Language) is a set of syntax rules and guidelines for defining text-based markup languages. XML languages have a number
Services. Custom Tag Libraries. Today. Web Development. Role-Based. Development. Code Reuse. Tag Libraries Custom Tags. Tag Lifecycle.
JSP, and JSP, and 1 JSP, and Custom Lecture #6 2008 2 JSP, and JSP, and interfaces viewed as user interfaces methodologies derived from software development done in roles and teams role assignments based
Oracle Application Development Framework Overview
An Oracle White Paper June 2011 Oracle Application Development Framework Overview Introduction... 1 Oracle ADF Making Java EE Development Simpler... 2 THE ORACLE ADF ARCHITECTURE... 3 The Business Services
Japan Communication India Skill Development Center
Japan Communication India Skill Development Center Java Application System Developer Course Detail Track 2b Java Application Software Developer: Phase1 SQL Overview 70 Introduction Database, DB Server
JEE Web Applications Jeff Zhuk
JEE Web Applications Jeff Zhuk From the book and beyond Integration-Ready Architecture and Design Cambridge University Press Software Engineering With XML, Java,.NET, Wireless, Speech and Knowledge Technologies
Pro<DOC/> e-commerce Technology An Introduction
Pro e-commerce Technology An Introduction From Rightangle Technologies Private Limited (www.rigthangle.co.in) 1 P a g e R i g h t a n g l e T e c h n o l o g i e s P v t. L t d. 1 Problem Statement
Portals and Hosted Files
12 Portals and Hosted Files This chapter introduces Progress Rollbase Portals, portal pages, portal visitors setup and management, portal access control and login/authentication and recommended guidelines
Commercial software development with the help of J2EE architecture and MVC
Journal of The International Association of Advanced Technology and Science Commercial software development with the help of J2EE architecture and MVC Anup Kumar Ranjeeta chauhan 1. Abstract The Java 2
How To Change Your Site On Drupal Cloud On A Pcode On A Microsoft Powerstone On A Macbook Or Ipad (For Free) On A Freebie (For A Free Download) On An Ipad Or Ipa (For
How-to Guide: MIT DLC Drupal Cloud Theme This guide will show you how to take your initial Drupal Cloud site... and turn it into something more like this, using the MIT DLC Drupal Cloud theme. See this
Developing Web Views for VMware vcenter Orchestrator
Developing Web Views for VMware vcenter Orchestrator vcenter Orchestrator 5.1 This document supports the version of each product listed and supports all subsequent versions until the document is replaced
IBM Rational Rapid Developer Components & Web Services
A Technical How-to Guide for Creating Components and Web Services in Rational Rapid Developer June, 2003 Rev. 1.00 IBM Rational Rapid Developer Glenn A. Webster Staff Technical Writer Executive Summary
: Test 217, WebSphere Commerce V6.0. Application Development
Exam : IBM 000-217 Title : Test 217, WebSphere Commerce V6.0. Application Development Version : R6.1 Prepking - King of Computer Certification Important Information, Please Read Carefully Other Prepking
Japan Communication India Skill Development Center
Japan Communication India Skill Development Center Java Application System Developer Course Detail Track 1B Java Application Software Developer: Phase1 DBMS Concept 20 Entities Relationships Attributes
Developing ASP.NET MVC 4 Web Applications
Course M20486 5 Day(s) 30:00 Hours Developing ASP.NET MVC 4 Web Applications Introduction In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5 tools
Crystal Reports for Eclipse
Crystal Reports for Eclipse Table of Contents 1 Creating a Crystal Reports Web Application...2 2 Designing a Report off the Xtreme Embedded Derby Database... 11 3 Running a Crystal Reports Web Application...
Core J2EE Patterns, Frameworks and Micro Architectures
Core J2EE Patterns, Frameworks and Micro Architectures [email protected] Patterns & Design Expertise Center Sun Software Services January 2004 Agenda Patterns Core J2EE Pattern Catalog Background J2EE
Research Article. ISSN 2347-9523 (Print) *Corresponding author Lili Wang Email: [email protected]
Scholars Journal of Engineering and Technology (SJET) Sch. J. Eng. Tech., 2015; 3(4B):424-428 Scholars Academic and Scientific Publisher (An International Publisher for Academic and Scientific Resources)
MyCompany Professional Web Developer Certification Examination Specification
MyCompany Professional Web Developer Certification Examination Specification Introduction This is a sample of an exam specification and is not representative of any actual exam specification. The exam
An Oracle White Paper May 2013. Creating Custom PDF Reports with Oracle Application Express and the APEX Listener
An Oracle White Paper May 2013 Creating Custom PDF Reports with Oracle Application Express and the APEX Listener Disclaimer The following is intended to outline our general product direction. It is intended
Performance Comparison of Persistence Frameworks
Performance Comparison of Persistence Frameworks Sabu M. Thampi * Asst. Prof., Department of CSE L.B.S College of Engineering Kasaragod-671542 Kerala, India [email protected] Ashwin A.K S8, Department
10CS73:Web Programming
10CS73:Web Programming Question Bank Fundamentals of Web: 1.What is WWW? 2. What are domain names? Explain domain name conversion with diagram 3.What are the difference between web browser and web server
Oracle WebLogic Server 11g: Administration Essentials
Oracle University Contact Us: 1.800.529.0165 Oracle WebLogic Server 11g: Administration Essentials Duration: 5 Days What you will learn This Oracle WebLogic Server 11g: Administration Essentials training
Java (J2SE & J2EE) and Web Development Training Catalog
Java (J2SE & J2EE) and Web Development Training Catalog 2013 US Techie Technology Solutions P a g e 1 CONTENTS S.No Topic Page No I. Know About Java Technology 3 II. Why Software Developers Choose Java
Terms and Definitions for CMS Administrators, Architects, and Developers
Sitecore CMS 6 Glossary Rev. 081028 Sitecore CMS 6 Glossary Terms and Definitions for CMS Administrators, Architects, and Developers Table of Contents Chapter 1 Introduction... 3 1.1 Glossary... 4 Page
Spring Security 3. rpafktl Pen source. intruders with this easy to follow practical guide. Secure your web applications against malicious
Spring Security 3 Secure your web applications against malicious intruders with this easy to follow practical guide Peter Mularien rpafktl Pen source cfb II nv.iv I I community experience distilled
http://msdn.microsoft.com/en-us/library/4w3ex9c2.aspx
ASP.NET Overview.NET Framework 4 ASP.NET is a unified Web development model that includes the services necessary for you to build enterprise-class Web applications with a minimum of coding. ASP.NET is
What Is the Java TM 2 Platform, Enterprise Edition?
Page 1 de 9 What Is the Java TM 2 Platform, Enterprise Edition? This document provides an introduction to the features and benefits of the Java 2 platform, Enterprise Edition. Overview Enterprises today
Sports Management Information Systems. Camilo Rostoker November 22, 2002
Sports Management Information Systems Camilo Rostoker November 22, 2002 Introduction We are in the information age The availability of technology has brought forth a new problem domain how do we manage
WebObjects Web Applications Programming Guide. (Legacy)
WebObjects Web Applications Programming Guide (Legacy) Contents Introduction to WebObjects Web Applications Programming Guide 6 Who Should Read This Document? 6 Organization of This Document 6 See Also
Software Requirements Specification For Real Estate Web Site
Software Requirements Specification For Real Estate Web Site Brent Cross 7 February 2011 Page 1 Table of Contents 1. Introduction...3 1.1. Purpose...3 1.2. Scope...3 1.3. Definitions, Acronyms, and Abbreviations...3
<Insert Picture Here> Betting Big on JavaServer Faces: Components, Tools, and Tricks
Betting Big on JavaServer Faces: Components, Tools, and Tricks Steve Muench Consulting Product Manager, JDeveloper/ADF Development Team Oracle Corporation Oracle's Betting Big on
Web Frameworks. web development done right. Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.
Web Frameworks web development done right Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.ssa Anna Corazza Outline 2 Web technologies evolution Web frameworks Design Principles
Practical Example: Building Reports for Bugzilla
Practical Example: Building Reports for Bugzilla We have seen all the components of building reports with BIRT. By this time, we are now familiar with how to navigate the Eclipse BIRT Report Designer perspective,
Macromedia Dreamweaver 8 Developer Certification Examination Specification
Macromedia Dreamweaver 8 Developer Certification Examination Specification Introduction This is an exam specification for Macromedia Dreamweaver 8 Developer. The skills and knowledge certified by this
Ruby on Rails. a high-productivity web application framework. blog.curthibbs.us/ http://blog. Curt Hibbs <[email protected]>
Ruby on Rails a high-productivity web application framework http://blog blog.curthibbs.us/ Curt Hibbs Agenda What is Ruby? What is Rails? Live Demonstration (sort of ) Metrics for Production
WEB DEVELOPMENT IA & IB (893 & 894)
DESCRIPTION Web Development is a course designed to guide students in a project-based environment in the development of up-to-date concepts and skills that are used in the development of today s websites.
PowerTier Web Development Tools 4
4 PowerTier Web Development Tools 4 This chapter describes the process of developing J2EE applications with Web components, and introduces the PowerTier tools you use at each stage of the development process.
A Modular Approach to Teaching Mobile APPS Development
2014 Hawaii University International Conferences Science, Technology, Engineering, Math & Education June 16, 17, & 18 2014 Ala Moana Hotel, Honolulu, Hawaii A Modular Approach to Teaching Mobile APPS Development
Introduction to XML Applications
EMC White Paper Introduction to XML Applications Umair Nauman Abstract: This document provides an overview of XML Applications. This is not a comprehensive guide to XML Applications and is intended for
Hello World Portlet Rendered with JSP for WebSphere Portal Version 4.1
1 of 11 16.10.2002 11:41 Hello World Portlet Rendered with JSP for WebSphere Portal Version 4.1 Table of Contents Creating the directory structure Creating the Java code Compiling the code Creating the
Application of MVC Platform in Bank E-CRM
Application of MVC Platform in Bank E-CRM Liancai Hao (School of Management, Harbin Institute of Technology, Harbin P. R. China 150001) [email protected] Abstract Customer relationship management (CRM)
Xtreeme Search Engine Studio Help. 2007 Xtreeme
Xtreeme Search Engine Studio Help 2007 Xtreeme I Search Engine Studio Help Table of Contents Part I Introduction 2 Part II Requirements 4 Part III Features 7 Part IV Quick Start Tutorials 9 1 Steps to
WEB PROGRAMMING LAB (Common to CSE & IT)
138 WEB PROGRAMMING LAB (Common to CSE & IT) Course Code :13CT1121 L T P C 0 0 3 2 Course Educational Objectives: The main objective of the lab course is to expose the students to different programming
MarkLogic Server. Reference Application Architecture Guide. MarkLogic 8 February, 2015. Copyright 2015 MarkLogic Corporation. All rights reserved.
Reference Application Architecture Guide 1 MarkLogic 8 February, 2015 Last Revised: 8.0-1, February, 2015 Copyright 2015 MarkLogic Corporation. All rights reserved. Table of Contents Table of Contents
Developing ASP.NET MVC 4 Web Applications Course 20486A; 5 Days, Instructor-led
Developing ASP.NET MVC 4 Web Applications Course 20486A; 5 Days, Instructor-led Course Description In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5
SwiftScale: Technical Approach Document
SwiftScale: Technical Approach Document Overview This document outlines a technology embodiment of the SwiftScale application including the technology, deployment and application architectures. Technology
The Oracle Fusion Development Platform
The Oracle Fusion Development Platform Juan Camilo Ruiz Senior Product Manager Development Tools 1 The preceding is intended to outline our general product direction. It is intended for information purposes
We automatically generate the HTML for this as seen below. Provide the above components for the teaser.txt file.
Creative Specs Gmail Sponsored Promotions Overview The GSP creative asset will be a ZIP folder, containing four components: 1. Teaser text file 2. Teaser logo image 3. HTML file with the fully expanded
A Comparison of Open Source Application Development Frameworks for the Enterprise
A Comparison of Open Source Application Development Frameworks for the Enterprise Webinar on March 12, 2008 Presented by Kim Weins, Sr. VP of Marketing at OpenLogic and Kelby Zorgdrager, President of DevelopIntelligence
Glassfish, JAVA EE, Servlets, JSP, EJB
Glassfish, JAVA EE, Servlets, JSP, EJB Java platform A Java platform comprises the JVM together with supporting class libraries. Java 2 Standard Edition (J2SE) (1999) provides core libraries for data structures,
How To Develop A Web Dialog For An Org Database With A Database On A Computer (Oracle)
Designing a Framework to Develop WEB Graphical Interfaces for ORACLE Databases - Web Dialog Georgiana-Petruţa Fîntîneanu Florentina Anica Pintea, Faculty of Computers and Applied Computer Science, Tibiscus
How to Build a SharePoint Website
How to Build a SharePoint Website Beginners Guide to SharePoint Overview: 1. Introduction 2. Access your SharePoint Site 3. Edit Your Home Page 4. Working With Text 5. Inserting Pictures 6. Making Tables
Developing Web Applications using JavaServer Pages and Servlets
Redpaper Martin Keen Rafael Coutinho Sylvi Lippmann Salvatore Sollami Sundaragopal Venkatraman Steve Baber Henry Cui Craig Fleming Developing Web Applications using JavaServer Pages and Servlets This IBM
Core Java+ J2EE+Struts+Hibernate+Spring
Core Java+ J2EE+Struts+Hibernate+Spring Java technology is a portfolio of products that are based on the power of networks and the idea that the same software should run on many different kinds of systems
Basic tutorial for Dreamweaver CS5
Basic tutorial for Dreamweaver CS5 Creating a New Website: When you first open up Dreamweaver, a welcome screen introduces the user to some basic options to start creating websites. If you re going to
CREATING RESPONSIVE UI FOR WEB STORE USING CSS
CREATING RESPONSIVE UI FOR WEB STORE USING CSS Magdalena Wiciak Bachelor s Thesis May 2014 Degree Programme in Information Technology Technology, communication and transport DESCRIPTION Author(s) WICIAK,
A Comparative Study of Web Development Technologies Using Open Source and Proprietary Software
Available Online at www.ijcsmc.com International Journal of Computer Science and Mobile Computing A Monthly Journal of Computer Science and Information Technology IJCSMC, Vol. 4, Issue. 2, February 2015,
OUR COURSES 19 November 2015. All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan 32 411 19 Göteborg Sweden
OUR COURSES 19 November 2015 Solid Beans AB Kungsgatan 32 411 19 Göteborg Sweden Java for beginners JavaEE EJB 3.1 JSF (Java Server Faces) PrimeFaces Spring Core Spring Advanced Maven One day intensive
JBoss SOAP Web Services User Guide. Version: 3.3.0.M5
JBoss SOAP Web Services User Guide Version: 3.3.0.M5 1. JBoss SOAP Web Services Runtime and Tools support Overview... 1 1.1. Key Features of JBossWS... 1 2. Creating a Simple Web Service... 3 2.1. Generation...
