Web Technologies VU ( ) Vedran Sabol. Nov 13, ISDS, TU Graz. Vedran Sabol (ISDS, TU Graz) Web Technologies Nov 13, / 60
|
|
- Jeffery Greer
- 5 years ago
- Views:
Transcription
1 Web Technologies VU ( ) Vedran Sabol ISDS, TU Graz Nov 13, 2017 Vedran Sabol (ISDS, TU Graz) Web Technologies Nov 13, / 60
2 Outline 1 Separation of Concerns Design Principle 2 Model-View-Controller Design Pattern 3 Model-View-Presenter 4 Presentation-Abstraction-Control 5 MVC on the Server Side Vedran Sabol (ISDS, TU Graz) Web Technologies Nov 13, / 60
3 Architectural Patterns and Web frameworks Web Technologies ( ) Vedran Sabol ISDS, TU Graz Nov 13, 2017 Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
4 Separation of Concerns Design Principle Separation of Concerns Core design principle of all software engineering Easily supported by object-oriented software development Definition by Edsger Dijkstra (1974 essay: On the role of scientific thought) We know that a program must be correct and we can study it from that viewpoint only; we also know that is should be efficient and we can study its efficiency on another day [...] But nothing is gained - on the contrary - by tackling these various aspects simultaneously. It is what I sometimes have called the separation of concerns [...] [...]even if not perfectly possible, it is yet the only available technique for effective ordering of one s thoughts (focusing of attention) Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
5 Separation of Concerns Design Principle Separation of Concerns You want to isolate different aspects of a software application from each other At a single moment you work only on a single aspect (e.g., not distracted with other aspects) You can work on each aspect in details You can be consistent within each aspect Basis for the team work (e.g., different teams work on different aspects) Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
6 Separation of Concerns Design Principle Separation of Concerns Object-Oriented principles easily support SOC Modularity and encapsulation (classes and objects) isolate aspects Clearly defined interfaces: work on different aspects in isolation Aspect-Oriented programming: separation of cross-cutting concerns Concerns affecting most other concerns in a modular software system (e.g. logging, security) Cannot be cleanly addressed by OOP Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
7 Separation of Concerns Design Principle Separation of Concerns Architectural and design patterns are also used to achieve SOC Software layers should have cleanly separated responsibilities Presentation layer, business logic layer, data access layer (e.g. a Web-based information system) Modules separate software in blocks of functionality with no overlap e.g. Authentication module, workflow engine, messaging subsystem etc. Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
8 Separation of Concerns Design Principle Benefits of SOC Reduced complexity (clear interfaces, minimized overlap, etc.) Simplified integration of aspects and components Possibility of their reuse or exchange Easier adaptibility, customization Improved comprehension of the application domain (immersing into the domain) Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
9 Separation of Concerns Design Principle User-oriented database applications - SOC Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
10 Separation of Concerns Design Principle User-oriented database applications - SOC The interface between UI and Data Management is crucial! It is where the SOC is violated most Why is this so? Example: database contains info about the registered students Info includes: name, matrikel number, study field Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
11 Separation of Concerns Design Principle User-oriented database applications - SOC In the process logic you have a Student class Student class has getter and setter methods getname(), getstudyfield(), etc. The UI script (e.g., a PHP script) retrieves a list of Student objects (from process logic) iterate through the list use the getters to read information write info in a HTML table Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
12 Separation of Concerns Design Principle User-oriented database applications - SOC Customer tells that there is another external student database Contains contact info: addresses, s, etc. Requirement: include students addresses in the list (Lazy) developer wants to accomplish this fast In the UI script: get the matrikel number of each student Connect to the external database and retrieve the needed info Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
13 Separation of Concerns Design Principle User-oriented database applications - SOC Problem: mixing UI and data management Consequences of such architecture can be tremendous For each change (data access) different UI scripts must be updated Maintainance nightmare if applied throughout a large application Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
14 Separation of Concerns Design Principle User-oriented database applications - SOC Proper way of implementing such changes Student class extension: get/set () methods Data Management module: connect to the external database populate student objects with set () New info available everywhere (UI scripts) Data access code modifications only at a single place Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
15 Separation of Concerns Design Principle User-oriented database applications - SOC SOC supported by OO languages, but not enforced Developers need to take care about this (design)! Scripting languages are even more vulnerable You do not need compiling, it is extremely fast to make such changes! Inviting to a bad programming style But, Java is vulnerable too - you need to take care! Need a module system preventing the UI from seeing DM functionality (finally available!) Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
16 Separation of Concerns Design Principle User-oriented database applications - SOC One way to improve the situation: a layered architecture The UI communicates only with the PL module Again, hard to enforce this You can only hope that developers will follow the principle! Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
17 Separation of Concerns Design Principle User-oriented database applications - SOC Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
18 Model-View-Controller Design Pattern Model-View-Controller Design Pattern Model-View-Controller: a particular design pattern that supports SOC Invented in the early days of GUIs Roots at Xerox Parc in the 70 s Still in widest application (Java,.NET, JS frameworks) MVC also followed by many new frameworks (e.g. angular.js) Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
19 Model-View-Controller Design Pattern Model-View-Controller Design Pattern Principles Decouples the graphical interface from the application data and logic UI is further separated into data presentation user input handling logic Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
20 Model-View-Controller Design Pattern Model-View-Controller Compatible with principles of OOP state encapsulation, message passing between objects... The first appereance in Smalltalk-80 One of the first OO languages Pure OO language, i.e., everything is an object MVC invented by Trygve Reenskaug: Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
21 Model-View-Controller Design Pattern Model-View-Controller Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
22 Model-View-Controller Design Pattern Model-View-Controller Controller Brain of the UI (e.g. implements the workflows and the logic within the UI) Handles user input (e.g., mouse clicks, keyboard,...) Updates the model Instructs the view to redraw itself Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
23 Model-View-Controller Design Pattern Model-View-Controller View Presents the model in a specific way Manages the display and rendering of information to the user Note: different views for the same model are possible Very important: not only desktop GUIs, also in Web applications etc. (e.g., XHTML, PDF, etc.) Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
24 Model-View-Controller Design Pattern Model-View-Controller Model: contains the data and application logic on the data Manages the behavior and data of the application Responds to: Requests for information about its state/data Instructions to change state/modify data Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
25 Model-View-Controller Design Pattern Model-View-Controller Model easily accomplished with an OO programming model Objects encapsulate the data Objects implement behaviour (as methods) Interaction between different objects (i.e., invoking methods) supports realisation of complex application logic Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
26 Model-View-Controller Design Pattern Model-View-Controller Where does the data come from? If in memory - everything is covered If externally persisted: in the local file system, RDBMS... We need a special Data Management module (layer) Handles persistent data storage (e.g. relational DBMS) Moves data between memory and storage (e.g. O/R mapping) Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
27 Model-View-Controller Design Pattern Model-View-Controller Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
28 Model-View-Controller Design Pattern MVC - Observer Pattern A special case of the MVC uses Observer design pattern Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
29 Model-View-Controller Design Pattern MVC - Observer Pattern When the model changes it notifies the views about the change A list of all observers is maintained Views redraw as the result of the notification Until Ajax not applicable in a Web application Before Ajax: page-oriented applications User request needed to update each particular view Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
30 Model-View-Controller Design Pattern MVC - Observer Pattern With Ajax it is possible (Asynchronous request) On user intraction an Ajax request is performed Observers notified when response is received Web UI remains responsive in the meantime It improves the responsiveness of a Web app tremendously HTML5 WebSockets also provide observer pattern support Server initiated events/messages Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
31 Model-View-Controller Design Pattern MVC - Observer Pattern Purpose of the controller is not to separate the model from the view but to handle user events To achieve the separation another design pattern is needed Typically acheived by means of the Observer pattern Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
32 Model-View-Controller Design Pattern Model-View-Controller Behaviour Diagram Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
33 Model-View-Presenter MVC Variations and Derivatives A number of patterns derived from MVC Model-View-Presenter: a further development of MVC Developed by Apple (1996, project Taligent) Presentation-Abstraction-Control: a hierarchical version Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
34 Model-View-Presenter Model-View-Presenter Separates the concerns of data, data specification, data manipulation, presentation, user interaction, and application coordination Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
35 Model-View-Presenter Model-View-Presenter Model: refers to application data and business functionality (logic) Selections: components specifying what portion of the data within the Model is to be operated upon e.g. define rows, columns, or individual elements meeting some criteria Commands: components defining operations performed on the data e.g. deleting, printing, or saving data within the Model Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
36 Model-View-Presenter Model-View-Presenter The View is the visual representation of the Model comprises screens and widgets used within an application routes user input to the presenter and interactors a lightweight, thin layer can be replaced by different implementations (Web, RIA, desktop, App...) Interactors: components addressing how user events are mapped onto operations performed on the Model Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
37 Model-View-Presenter Model-View-Presenter Presenter: orchestrates overall interaction of the other components Replaces the controller taking over the UI logic Acts as an intermediary to maximise decoupling Directs the workflow within the application Handles creation of Selections, Commands, Views, and Interactors Typically one per view, but may manage multiple logically related Views Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
38 Model-View-Presenter Model-View-Presenter Two variants Passive View: dumb View separated from the Model Model events are handled by the Presenter Presenter handles the state and sets View properties (setters) Supervising Presenter View connected to the Model (e.g. via data binding mechanisms) Presenter/Interactors still contains logic for handling user events Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
39 Model-View-Presenter Model-View-Presenter Model-View-Presenter is how a complex GUI application is built today Selections and commands are separate components In a typical system they are defined through interfaces - such as DAO interfaces and O/R mappers Data Access Objects (DAO) and Object-Relational mappers provide an abstract interface to a persistant database Provide strict separation between bussiness logic and persistance Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
40 Presentation-Abstraction-Control Presentation-Abstraction-Control Presentation-Abstraction-Control (PAC): hierarchical MVC variation Hierarchy of sub-systems where each sub-system follows PAC Separates concerns of an application into a hierarchy of cooperating components Each component depends on a zero or more sub-systems Links between sub-systems model associations within an application Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
41 Presentation-Abstraction-Control Presentation-Abstraction-Control Pattern for constructing UIs at different abstraction levels Application is decomposed into a hierarchy of sub-systems each presenting a finer-grained view of an aspect of an application Example: hierarchically organised administration tools Advantage: at any level the system is defined using the same architectural model Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
42 Presentation-Abstraction-Control Presentation-Abstraction-Control Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
43 Presentation-Abstraction-Control Presentation-Abstraction-Control Consist of PAC-triads (Presentation, Abstraction, Control) Presentation: visual representation of a particular abstraction Abstraction: the data and business domain functionality (i.e. the model) Control: maintains consistency between abstractions and their presentation Also: communicates with other Controls within the system Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
44 MVC on the Server Side Struts MVC Example using a high-level view of the Struts framework open-source, Java-based Web application framework Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
45 MVC on the Server Side MVC on the server side The server (a Servlet) receives HTTP requests Requests include parameters submitted by the user Server produces the response based on the parameters Server dispatches the request to handlers - called Actions Actions implement the logic Registry maintains mappings of parameters onto actions Server, registry, dispatcher and actions are the Controller Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
46 MVC on the Server Side MVC on the server side The Model is accessed from the actions Data and behaviour encapsulated within objects Form beans: data entered by users in HTML forms Session beans: session information that persists between two HTTP requests by the same user Results beans: information needed to generate the HTML page Each action is associated with a View When the action finishes the Controller invokes the View (JSP) The registry also includes associations between actions and views The View accesses the Model, retrieves the data and presents it (HTML) Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
47 MVC on the Server Side Ruby on Rails Ruby is a pure object-oriented programming language Everything is an object (e.g. the number 1 is an instance of class Fixnum) Interpreted scripting language Dynamically, weakly typed Single inheritance, but can be extended with so-called modules (similar to Java interfaces) Rich text processing functionality (similar to Perl) Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
48 MVC on the Server Side Ruby on Rails Rails is open source Web application framework Focus on simplicity and productivity Supports development of Web-based, database-backed application Follows MVC architecture and design pattern Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
49 MVC on the Server Side Ruby on Rails Three main guiding principles Model-driven development You start with a data model and add the functionality, controllers, views on top of it Convention over configuration Set of naming conventions (similar to JavaBeans but more in depth) Less software, i.e., less code Generating default code that you can adjust to fit your needs Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
50 MVC on the Server Side Ruby on Rails Based on an ActiveRecord ORM framework Similar to Hibernate Uses a naming convention to provide the default mapping You can adjust the default mapping if you need to ActiveRecord naming convention for classes and tables Name classes as English singular Start the name with an upper case, all other letters are lower case (Student) Name tables as English plural, all lower case (students) Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
51 MVC on the Server Side Ruby on Rails Student class class Student < ActiveRecord::Base end Student table create table students ( id int not null auto_increment, name varchar(80), study_field varchar(10), primary key(id) ); Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
52 MVC on the Server Side Ruby on Rails Names of the table columns and instance variables Map 1-to-1, i.e., student.name maps to name column in students Primary key must be named id in the table Immediatelly you can use all methods from = = = Student.new Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
53 MVC on the Server Side Ruby on Rails To map associations a simple domain language-like set of macros is used, for example belongs to has one has many see ActiveRecord::Associations::ClassMethods Connects classes through foreign keys via an associative table (many-to-many relation) class Student < ActiveRecord::Base has_one : catalogue has_and_belongs_to_many : courses end Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
54 MVC on the Server Side Ruby on Rails Controllers are modules that handle user requests Convention on mapping of URLs onto methods in controllers Much easier than Struts configuration Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
55 MVC on the Server Side Ruby on Rails URL = /controller class name/controller method name For example, Another example: class TestController < ApplicationController def index render_text "Wow, that was easy" end def hello render_text "Hello World" end end Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
56 MVC on the Server Side Ruby on Rails Whenever you have a model class (e.g. Student) you can use a so-called CRUD (Create, Read, Update, Delete) scaffold Scaffolding: specify usage of the database, code generated from templates by the framework create, read, update, delete methods These methods are provided by the ActiveRecord class StudentController < ApplicationController scaffold :student end Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
57 MVC on the Server Side Ruby on Rails This single line embeds all of the CRUD methods into controller Consequently, they are immediatelly visible through URLs Read: Update: List: Note how meaningful and consistent URLs are (discussed this in one of previous lectures) Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
58 MVC on the Server Side Ruby on Rails By scaffolding you also get default views However, you can adjust them For a particular controller method, e.g., show() you need to create show.rhtml Another naming convention Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
59 MVC on the Server Side Ruby on Rails: Advanced Features Defining layouts (headers, footers,...) Modules for standard functionality, e.g., authentication Caching Validation and callbacks Transactions Testing Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
60 MVC on the Server Side Further Readings Rails Documentation Rolling with Ruby on Rails Rolling with Ruby on Rails, Part 2 Really Getting Started in Rails /01/24/really-getting-started-in-rails Vedran Sabol (ISDS, TU Graz) Architectural Patterns and Web frameworks Nov 13, / 60
Multimedia Information Systems Design Patterns & Web Frameworks (Part 1) VU ( ) Christoph Trattner
Multimedia Information Systems Design Patterns & Web Frameworks (Part 1) VU (707.020) Christoph Trattner Know-Center @Know-Center, TUG, Austria 1 Today s plan! PART 1: First partial exam (30mins) PART
More informationStrategies for Rapid Web Prototyping. Ruby on Rails. Clemens H. Cap
Strategies for Rapid Web Prototyping Ruby on Rails Strategies for Rapid Web Prototyping DRY: Don't repeat yourself Convention over Configuration Separation of Concern Templating MVC: Model View Controler
More informationSoftware System/Design & Architecture. Eng.Muhammad Fahad Khan Assistant Professor Department of Software Engineering
Software System/Design & Architecture Eng.Muhammad Fahad Khan Assistant Professor Department of Software Engineering Todays lecture Model View Controller (MVC) Copyright 2012 @ M.Fahad Khan 2 Model-View-Controller
More informationRuby on Rails. SITC Workshop Series American University of Nigeria FALL 2017
Ruby on Rails SITC Workshop Series American University of Nigeria FALL 2017 1 Evolution of Web Web 1.x Web 1.0: user interaction == server roundtrip Other than filling out form fields Every user interaction
More informationArchitectural Styles II
Architectural Styles II Software Architecture VO/KU (707.023/707.024) Denis Helic, Roman Kern KMI, TU Graz Nov 21, 2012 Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles II Nov 21, 2012 1 / 66
More informationSocket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.
Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise
More informationPatterns Of Enterprise Application Architecture
Patterns Of Enterprise Application Architecture Lecture 11-12 - Outlines Overview of patterns Web Presentation Patterns Base Patterns Putting It All Together References Domain Logic Patterns Domain Model
More informationArchitectural Styles I
Architectural Styles I Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2015-01-07 Roman Kern (KTI, TU Graz) Architectural Styles I 2015-01-07 1 / 86 Outline 1 Non-Functional Concepts
More informationWeb Frameworks MMIS 2 VU SS Denis Helic. March 10, KMI, TU Graz. Denis Helic (KMI, TU Graz) Web Frameworks March 10, / 18
Web Frameworks MMIS 2 VU SS 2011-707.025 Denis Helic KMI, TU Graz March 10, 2011 Denis Helic (KMI, TU Graz) Web Frameworks March 10, 2011 1 / 18 Web Application Frameworks MVC Frameworks for Web applications
More informationDiscovering Computers Chapter 13 Programming Languages and Program Development
Discovering Computers 2009 Chapter 13 Programming Languages and Program Development Chapter 13 Objectives Differentiate between machine and assembly languages Identify and discuss the purpose of procedural
More informationJAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP
2013 Empowering Innovation DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP contact@dninfotech.com www.dninfotech.com 1 JAVA 500: Core JAVA Java Programming Overview Applications Compiler Class Libraries
More informationASP.NET MVC Training
TRELLISSOFT ASP.NET MVC Training About This Course: Audience(s): Developers Technology: Visual Studio Duration: 6 days (48 Hours) Language(s): English Overview In this course, students will learn to develop
More informationFront End Programming
Front End Programming Mendel Rosenblum Brief history of Web Applications Initially: static HTML files only. Common Gateway Interface (CGI) Certain URLs map to executable programs that generate web page
More informationArchitectural Styles I
Architectural Styles I Software Architecture VO/KU (707.023/707.024) Denis Helic, Roman Kern KMI, TU Graz Nov 14, 2012 Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, 2012 1 / 80
More informationMore reading: A series about real world projects that use JavaServer Faces:
More reading: A series about real world projects that use JavaServer Faces: http://www.jsfcentral.com/trenches 137 This is just a revision slide. 138 Another revision slide. 139 What are some common tasks/problems
More informationXVIII. Software Architectures
XVIII. Software Architectures Software Architectures UML Packages Client-Server vs Peer-to-Peer 3-Tier and 4-Tier Architectures Horizontal Layers and Vertical Partitions The Model-View-Controller Architecture
More informationRails: MVC in action
Ruby on Rails Basic Facts 1. Rails is a web application framework built upon, and written in, the Ruby programming language. 2. Open source 3. Easy to learn; difficult to master. 4. Fun (and a time-saver)!
More informationExecution Architecture
Execution Architecture Software Architecture VO (706.706) Roman Kern Institute for Interactive Systems and Data Science, TU Graz 2018-11-07 Roman Kern (ISDS, TU Graz) Execution Architecture 2018-11-07
More informationCSCI-2320 Web Programming: Ruby on Rails
CSCI-2320 Web Programming: Ruby on Rails Mohammad T. Irfan Plan u Model-View-Controller (MVC) framework of web programming u Ruby on Rails 1 Ruby on Rails u Developed by David Hansson released 2004 u MVC
More informationRemote Health Service System based on Struts2 and Hibernate
St. Cloud State University therepository at St. Cloud State Culminating Projects in Computer Science and Information Technology Department of Computer Science and Information Technology 5-2017 Remote Health
More informationImprove and Expand JavaServer Faces Technology with JBoss Seam
Improve and Expand JavaServer Faces Technology with JBoss Seam Michael Yuan Kito D. Mann Product Manager, Red Hat Author, JSF in Action http://www.michaelyuan.com/seam/ Principal Consultant Virtua, Inc.
More informationCourse 20486B: Developing ASP.NET MVC 4 Web Applications
Course 20486B: Developing ASP.NET MVC 4 Web Applications Overview In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5 tools and technologies. The focus
More information1 Software Architecture
Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to
More informationDeveloping ASP.NET MVC 4 Web Applications
Developing ASP.NET MVC 4 Web Applications Duration: 5 Days Course Code: 20486B About this course In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5
More informationWeb Applications. Software Engineering 2017 Alessio Gambi - Saarland University
Web Applications Software Engineering 2017 Alessio Gambi - Saarland University Based on the work of Cesare Pautasso, Christoph Dorn, Andrea Arcuri, and others ReCap Software Architecture A software system
More informationDatabase Application Architectures
Chapter 15 Database Application Architectures Database Systems(Part 2) p. 221/287 Database Applications Most users do not interact directly with a database system The DBMS is hidden behind application
More informationOrganization of User Interface Software
Organization of User Interface Software Administration Questions about assignments due and assignments assigned 2 What we will talk about Ways to organize UI code Different models of user interfaces as
More informationCOURSE 20486B: DEVELOPING ASP.NET MVC 4 WEB APPLICATIONS
ABOUT THIS COURSE In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5 tools and technologies. The focus will be on coding activities that enhance the
More information20486: Developing ASP.NET MVC 4 Web Applications (5 Days)
www.peaklearningllc.com 20486: Developing ASP.NET MVC 4 Web Applications (5 Days) About this Course In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework
More informationComprehensive AngularJS Programming (5 Days)
www.peaklearningllc.com S103 Comprehensive AngularJS Programming (5 Days) The AngularJS framework augments applications with the "model-view-controller" pattern which makes applications easier to develop
More informationMVC: the Model-View-Controller architectural pattern
MVC: the Model-View-Controller architectural pattern Laura Farinetti Dipartimento di Automatica e Informatica Politecnico di Torino laura.farinetti@polito.it 1 Model-View-Controller MVC is an architectural
More information20486: Developing ASP.NET MVC 4 Web Applications
20486: Developing ASP.NET MVC 4 Web Applications Length: 5 days Audience: Developers Level: 300 OVERVIEW In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework
More informationModern and Responsive Mobile-enabled Web Applications
Available online at www.sciencedirect.com ScienceDirect Procedia Computer Science 110 (2017) 410 415 The 12th International Conference on Future Networks and Communications (FNC-2017) Modern and Responsive
More informationDeveloping ASP.NET MVC 4 Web Applications
Developing ASP.NET MVC 4 Web Applications Course 20486B; 5 days, Instructor-led Course Description In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5
More informationClient Side MVC with Backbone & Rails. Tom
Client Side MVC with Backbone & Rails Tom Zeng @tomzeng tom@intridea.com Client Side MV* with Backbone & Rails Benefits of Client Side MVC Backbone.js Introduction Client Side MV* Alternatives Backbone
More informationApplication Design and Development: October 30
M149: Database Systems Winter 2018 Lecturer: Panagiotis Liakos Application Design and Development: October 30 1 Applications Programs and User Interfaces very few people use a query language to interact
More informationImplementation Architecture
Implementation Architecture Software Architecture VO/KU (707023/707024) Roman Kern ISDS, TU Graz 2017-11-15 Roman Kern (ISDS, TU Graz) Implementation Architecture 2017-11-15 1 / 54 Outline 1 Definition
More informationApplication Architectures, Design Patterns
Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term
More informationGUI-Hanger syndrome SOFTWARE ARCHITECTURES. Architectural Design Choices. Why software architectures? Monolithic Architecture / 2
GUI-Hanger syndrome SOFTWARE ARCHITECTURES An architecture contains the information on how the software devides into building blocks. Software Engineering do http://www.cs.uta.fi/se this; Why software
More informationEtanova Enterprise Solutions
Etanova Enterprise Solutions Front End Development» 2018-09-23 http://www.etanova.com/technologies/front-end-development Contents HTML 5... 6 Rich Internet Applications... 6 Web Browser Hardware Acceleration...
More information/ / JAVA TRAINING
www.tekclasses.com +91-8970005497/+91-7411642061 info@tekclasses.com / contact@tekclasses.com JAVA TRAINING If you are looking for JAVA Training, then Tek Classes is the right place to get the knowledge.
More informationType of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes
Java CORE JAVA Core Java Programing (Course Duration: 40 Hours) Introduction to Java What is Java? Why should we use Java? Java Platform Architecture Java Virtual Machine Java Runtime Environment A Simple
More informationModel-View-Controller Patterns and Frameworks. MVC Context
Model-View-Controller Patterns and Frameworks MVC Context The purpose of many computer systems is to retrieve data from a data store and display it for the user. The user may then modify the data in keeping
More informationProject # 1: Database Programming
Project # 1: Database Programming CSE462 Database Concepts Demian Lessa Department of Computer Science and Engineering State University of New York, Buffalo February 21, 2011 Outline 1 Database Programming
More informationOverview of Web Application Development
Overview of Web Application Development Web Technologies I. Zsolt Tóth University of Miskolc 2018 Zsolt Tóth (University of Miskolc) Web Apps 2018 1 / 34 Table of Contents Overview Architecture 1 Overview
More informationConvention over Configuration
Convention over Configuration The Universal Remote: Powerful, but requires too much configuring Intent Design a framework so that it enforces standard naming conventions for mapping classes to resources
More informationAppendix A - Glossary(of OO software term s)
Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component
More informationMicrosoft Developing ASP.NET MVC 4 Web Applications
1800 ULEARN (853 276) www.ddls.com.au Microsoft 20486 - Developing ASP.NET MVC 4 Web Applications Length 5 days Price $4290.00 (inc GST) Version C Overview In this course, students will learn to develop
More informationPRIMIX SOLUTIONS. Core Labs. Tapestry : Java Web Components Whitepaper
PRIMIX SOLUTIONS Core Labs Tapestry : Java Web s Whitepaper CORE LABS Tapestry: Java Web s Whitepaper Primix Solutions One Arsenal Marketplace Phone (617) 923-6639 Fax (617) 923-5139 Tapestry contact information:
More informationDeveloping ASP.NET MVC 5 Web Applications
Developing ASP.NET MVC 5 Web Applications Course 20486C; 5 days, Instructor-led Course Description In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework tools
More informationAbout the Tutorial. Audience. Prerequisites. Disclaimer & Copyright. TurboGears
About the Tutorial TurboGears is a Python web application framework, which consists of many modules. It is designed around the MVC architecture that are similar to Ruby on Rails or Struts. TurboGears are
More informationDeveloping ASP.NET MVC 4 Web Applications
Developing ASP.NET MVC 4 Web Applications Código del curso: 20486 Duración: 5 días Acerca de este curso In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework
More informationJVA-117A. Spring-MVC Web Applications
JVA-117A. Spring-MVC Web Applications Version 4.2 This course enables the experienced Java developer to use the Spring application framework to manage objects in a lightweight, inversion-of-control container,
More informationXIX. Software Architectures
XIX. Software Architectures Software Architectures UML Packages Client-Server vs Peer-to-Peer Horizontal Layers and Vertical Partitions 3-Tier and 4-Tier Architectures The Model-View-Controller Architecture
More informationVisual Studio Course Developing ASP.NET MVC 5 Web Applications
Visual Studio Course - 20486 Developing ASP.NET MVC 5 Web Applications Length 5 days Prerequisites Before attending this course, students must have: In this course, students will learn to develop advanced
More informationTapestry. Code less, deliver more. Rayland Jeans
Tapestry Code less, deliver more. Rayland Jeans What is Apache Tapestry? Apache Tapestry is an open-source framework designed to create scalable web applications in Java. Tapestry allows developers to
More informationDeveloping ASP.NET MVC 5 Web Applications. Course Outline
Developing ASP.NET MVC 5 Web Applications Course Outline Module 1: Exploring ASP.NET MVC 5 The goal of this module is to outline to the students the components of the Microsoft Web Technologies stack,
More informationDESIGN PATTERN - INTERVIEW QUESTIONS
DESIGN PATTERN - INTERVIEW QUESTIONS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Design Pattern Interview Questions
More information20486-Developing ASP.NET MVC 4 Web Applications
Course Outline 20486-Developing ASP.NET MVC 4 Web Applications Duration: 5 days (30 hours) Target Audience: This course is intended for professional web developers who use Microsoft Visual Studio in an
More informationProduced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar
Design Patterns MSc in Communications Software Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie
More information20486 Developing ASP.NET MVC 5 Web Applications
Course Overview In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework tools and technologies. The focus will be on coding activities that enhance the performance
More informationImplementing a Numerical Data Access Service
Implementing a Numerical Data Access Service Andrew Cooke October 2008 Abstract This paper describes the implementation of a J2EE Web Server that presents numerical data, stored in a database, in various
More information10264A CS: Developing Web Applications with Microsoft Visual Studio 2010
10264A CS: Developing Web Applications with Microsoft Visual Studio 2010 Course Number: 10264A Course Length: 5 Days Course Overview In this course, students will learn to develop advanced ASP.NET MVC
More informationArchitectural patterns
Architectural patterns Open Source & DOTNET platform Understanding architectural design patterns (like MVC, MVP, MVVM etc.) is essential for producing a maintainable, clean, extendable and testable source
More informationTeaching Ruby on Rails Dr Bruce Scharlau Computing Science Department University of Aberdeen Aberdeen, AB24 3UE
Teaching Ruby on Rails Dr Bruce Scharlau Computing Science Department University of Aberdeen Aberdeen, AB24 3UE scharlau@csd.abdn.ac.uk Abstract This paper considers the teaching of the object oriented
More informationJAVA SYLLABUS FOR 6 MONTHS
JAVA SYLLABUS FOR 6 MONTHS Java 6-Months INTRODUCTION TO JAVA Features of Java Java Virtual Machine Comparison of C, C++, and Java Java Versions and its domain areas Life cycle of Java program Writing
More informationOver All Idea about MVC: How to use Model- View-Controller (MVC)
Over All Idea about MVC: How to use Model- View-Controller (MVC) Parth Jivani B. H. Gardividyapith Engg. &Tech. Chhaya Chopara B. H. Gardividyapith Engg. & Tech. Mehta Prashant B. H. Gardividyapith Engg.
More informationDeveloping ASP.Net MVC 4 Web Application
Developing ASP.Net MVC 4 Web Application About this Course In this course, students will learn to develop advanced ASP.NET MVC applications using.net Framework 4.5 tools and technologies. The focus will
More informationTooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc.
Tooling for Ajax-Based Development Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc. 1 Agenda In The Beginning Frameworks Tooling Architectural Approaches Resources 2 In The Beginning 3
More informationModel-View-Controller
Model-View-Controller Motivation The MVC pattern Using the Observer pattern in Java 1 MVC Rationale Multiple views, loosely coupled to the underlying data model. 2 Multiple Views 3 Multiple Views Many
More informationEtanova Enterprise Solutions
Etanova Enterprise Solutions Server Side Development» 2018-06-28 http://www.etanova.com/technologies/server-side-development Contents.NET Framework... 6 C# and Visual Basic Programming... 6 ASP.NET 5.0...
More informationPrinciples of Computer Game Design and Implementation. Lecture 3
Principles of Computer Game Design and Implementation Lecture 3 We already knew Introduction to this module History of video High-level information for a game (such as Game platform, player motivation,
More informationiflame INSTITUTE OF TECHNOLOGY
Web Development Ruby On Rails Duration: 3.5 Month Course Overview Ruby On Rails 4.0 Training From Iflame Allows You To Build Full Featured, High Quality, Object Oriented Web Apps. Ruby On Rails Is A Full
More informationDevelopment of E-Institute Management System Based on Integrated SSH Framework
Development of E-Institute Management System Based on Integrated SSH Framework ABSTRACT The J2EE platform is a multi-tiered framework that provides system level services to facilitate application development.
More informationChapter 2. Operating-System Structures
Chapter 2 Operating-System Structures 2.1 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System
More informationWWW Architecture I. Software Architecture VO/KU ( / ) Roman Kern. KTI, TU Graz
WWW Architecture I Software Architecture VO/KU (707.023/707.024) Roman Kern KTI, TU Graz 2013-12-04 Roman Kern (KTI, TU Graz) WWW Architecture I 2013-12-04 1 / 81 Web Development Tutorial Java Web Development
More informationANGULARJS INTERVIEW QUESTIONS
ANGULARJS INTERVIEW QUESTIONS http://www.tutorialspoint.com/angularjs/angularjs_interview_questions.htm Copyright tutorialspoint.com Dear readers, these AngularJS Interview Questions have been designed
More informationEvent Dispatch. Dispatching events to windows and widgets.
Event Dispatch Dispatching events to windows and widgets. Review: Event Architecture 2 Event capture, processing and dispatch. Event Capture Hardware events (interrupts) Event Dispatch Software events
More informationWorking with the Seagull Framework. By Demian Turner, Seagull Systems
Working with the Seagull Framework By Demian Turner, Seagull Systems seagullproject.org Who is Demian Turner? Developing websites since 1996, using PHP since 1999 Committer on several open source projects:
More informationWeb Software Model CS 4640 Programming Languages for Web Applications
Web Software Model CS 4640 Programming Languages for Web Applications [Robert W. Sebesta, Programming the World Wide Web Upsorn Praphamontripong, Web Mutation Testing ] 1 Web Applications User interactive
More informationSpring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics
Spring & Hibernate Overview: The spring framework is an application framework that provides a lightweight container that supports the creation of simple-to-complex components in a non-invasive fashion.
More informationWeb Architecture AN OVERVIEW
Web Architecture AN OVERVIEW General web architecture Historically, the client is a web browser But it can be also A mobile application A desktop application Other server applications Internet Server(s)
More informationCOURSE 9 DESIGN PATTERNS
COURSE 9 DESIGN PATTERNS CONTENT Applications split on levels J2EE Design Patterns APPLICATION SERVERS In the 90 s, systems should be client-server Today, enterprise applications use the multi-tier model
More informationSoftware Tools. Scott Klemmer Autumn 2009
stanford hci group http://cs147.stanford.edu Software Tools Scott Klemmer Autumn 2009 It accomplishes an important task (for better and for worse) You don t have to make it yourself, and it abstracts a
More informationThe Sky s the Limit. JAOO Conference, Aarhus Ernest Micklei, QNH PhilemonWorks Tim Matthews, Cincom Systems. Cincom EMEA Central
The Sky s the Limit Ernest Micklei, QNH PhilemonWorks Tim Matthews, Cincom Systems Cincom EMEA Central JAOO Conference, Aarhus 2009 1 Spanning five decades of global software leadership Founded in 1968
More informationDesign concepts for data-intensive applications
6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Design concepts for data-intensive applications Attila Adamkó Department of Information Technology, Institute of
More informationMix It Up: Visual Studio 2010 and ASP.NET 4.0. Singapore 25 March 2009
Mix It Up: Visual Studio 2010 and ASP.NET 4.0 Singapore 25 March 2009 Mar Mix-It-Up: Visual Studio 2010 and ASP.NET 4.0 Mix 01: Future of Web Development with Visual Studio 2010 and ASP.NET 4.0 by Maung
More informationSitesbay.com. A Perfect Place for All Tutorials Resources. Java Projects C C++ DS Interview Questions JavaScript
Sitesbay.com A Perfect Place for All Tutorials Resources Java Projects C C++ DS Interview Questions JavaScript Core Java Servlet JSP JDBC Struts Hibernate Spring Java Projects C C++ DS Interview Questions
More informationModule 3 Web Component
Module 3 Component Model Objectives Describe the role of web components in a Java EE application Define the HTTP request-response model Compare Java servlets and JSP components Describe the basic session
More informationReview. Fundamentals of Website Development. Web Extensions Server side & Where is your JOB? The Department of Computer Science 11/30/2015
Fundamentals of Website Development CSC 2320, Fall 2015 The Department of Computer Science Review Web Extensions Server side & Where is your JOB? 1 In this chapter Dynamic pages programming Database Others
More informationBuilding Web Applications With The Struts Framework
Building Web Applications With The Struts Framework ApacheCon 2003 Session TU23 11/18 17:00-18:00 Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc. Slides: http://www.apache.org/~craigmcc/
More informationPage 1
Java 1. Core java a. Core Java Programming Introduction of Java Introduction to Java; features of Java Comparison with C and C++ Download and install JDK/JRE (Environment variables set up) The JDK Directory
More informationFull Stack Web Developer
Full Stack Web Developer S.NO Technologies 1 HTML5 &CSS3 2 JavaScript, Object Oriented JavaScript& jquery 3 PHP&MYSQL Objective: Understand the importance of the web as a medium of communication. Understand
More information20486C: Developing ASP.NET MVC 5 Web Applications
20486C: Developing ASP.NET MVC 5 Web Course Details Course Code: Duration: Notes: 20486C 5 days This course syllabus should be used to determine whether the course is appropriate for the students, based
More informationModel-View-Controller
Model-View-Controller rationale implementation benefit Model-View-Controller 1 How can we design a power point application? Model-View-Controller 2 Possible Design: Data and UI in Same Object What if we
More informationStruts interview questions
Struts interview questions 1.What is MVC? Model-View-Controller (MVC) is a design pattern put together to help control change. MVC decouples interface from business logic and data. Model : The model contains
More informationPatterns Architectural Styles Archetypes
Patterns Architectural Styles Archetypes Patterns The purpose of a pattern is to share a proven, widely applicable solution to a particular problem in a standard form that allows it to be easily reused.
More informationDesign Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1
What is a Design Pattern? Each pattern Describes a problem which occurs over and over again in our environment,and then describes the core of the problem Novelists, playwrights and other writers rarely
More informationWhat s new in Spring Web Flow 2.0
What s new in Spring Web Flow 2.0 Agim Emruli SpringSource Germany Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. About me Senior Consultant
More informationJava EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module
Java Platform, Enterprise Edition 5 (Java EE 5) Core Java EE Java EE 5 Platform Overview Java EE Platform Distributed Multi tiered Applications Java EE Web & Business Components Java EE Containers services
More information