SlideShare a Scribd company logo
2 December 2005
Web Technologies
Web Application Frameworks
Prof. Beat Signer
Department of Computer Science
Vrije Universiteit Brussel
http://www.beatsigner.com
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 2October 21, 2016
Web Application Frameworks
 There exist dozens of web application frameworks!
A web application framework is a software framework that
is designed to support the development of dynamic web-
sites, web applications, web services and web resources.
The framework aims to alleviate the overhead associated
with common activities performed in web development.
For example, many frameworks provide libraries for
database access, templating frameworks and session
management, and they often promote code reuse.
[http://en.wikipedia.org/wiki/Web_application_framework]
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 3October 21, 2016
Web Application Frameworks ...
 A web application framework offers libraries and
tools to deal with web application issues
 template libraries, session management, database access
libraries etc.
 Some frameworks also offer an abstraction from the
underlying enabling technologies
 e.g. automatic creation of Java Servlets
 Many frameworks follow the Model-View-Controller (MVC)
design pattern
 no mix of application logic and view (e.g. not like in JSP)
 increases modularity and reusability
 Lead to a faster and more robust development process
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 4October 21, 2016
Model-View-Controller (MVC)
 Model
 data (state) and business logic
 multiple views can be defined for a single model
 when the state of a model changes, its views are notified
 View
 renders the data of the model
 notifies the controller about changes
 Controller
 processes interactions with the view
 transforms view interactions into
operations on the model (state
modification)
Model
Controller
View
notifies
modifies
state
selects view
notifies
gets
state
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 5October 21, 2016
All-Inclusive MVC Frameworks
 Java
 Apache Struts 2
 Spring
 PHP
 Yii
 Zend
 CakePHP
 Ruby
 Ruby on Rails
 Python
 Django
 JavaScript
 Node.js + Express.js
 .NET (C#, Visual Basic)
 ASP.NET MVC
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 6October 21, 2016
Apache Struts 2
 Free open source framework for creating enterprise-
ready Java-based web applications
 Action-based MVC Model 2 (Pull MVC) framework
combining Java Servlets and JSP technology
 model
- action (basic building blocks) from which the view can pull information via the
ValueStack
- action represented by POJO (Plain Old Java Object) following the JavaBean
paradigm and optional helper classes
 view
- template-based approach often based on JavaServer Pages (JSP) in
combination with tag libraries (collection of custom tags)
 controller
- based on Java Servlet filter in combination with interceptors
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 7October 21, 2016
MVC Model 2 (MVC 2) in Struts 2
Model
POJOs
Database
Controller
Servlet
View
e.g. JSP
Browser
1
2
3
4
5
6
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 8October 21, 2016
Apache Struts 2 Architecture
 Receive request
 filter chain
- interception of requests and
responses, e.g. XSLT
transformation
 Execute relevant Action
 invoke interceptors
 read/update data (model)
 Build response (view)
 often based on JSP template
 interceptors in reverse order
 Send response
 again through filter chain
[http://struts.apache.org/2.1.6/docs/big-picture.html]
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 9October 21, 2016
DEMO: Struts 2 Form Validation
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 10October 21, 2016
Spring Framework
 Java application framework
 Various extensions for web applications
 Modules
 model-view-controller
 data access
 inversion of control container
 convention-over-configuration
 remote access framework
 transaction management
 authentication and authorisation
 …
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 11October 21, 2016
Yii Framework
 PHP framework for the development of Web 2.0
applications that offers a rich set of features
 AJAX-enabled widgets
 web service integration
 authentication and authorisation
 flexible presentation via skins and themes
 Data Access Objects (DAO) interface to transparently access
different database management systems
 integration with the jQuery JavaScript library
 layered caching
 ...
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 12October 21, 2016
Zend
 Open source PHP framework offering various features
 MVC architectural pattern
 loosely coupled components
 object orientation
 flexible caching
 Simple Cloud API
 features to deal with emails (POP3, IMAP4, …)
 …
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 13October 21, 2016
CakePHP
 Open source PHP web application framework
 MVC architectural pattern
 rapid prototyping via scaffolding
 authentication
 localisation
 session management
 caching
 validation
 …
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 14October 21, 2016
DEMO: CakePHP
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 15October 21, 2016
Ruby on Rails (RoR)
 Open source web application framework
 Combination of
 dynamic, reflective, object-oriented programming language Ruby
- combination of Perl-inspired syntax with "Smalltalk features"
 web application framework Rails
 Based on MVC architectural pattern
 structure of a webpage separated from its functionality via the
unobtrusive JavaScript technique
 The scaffolding feature offered by Rails can
automatically generate some of the models and views
that are required for a website
 developer has to run an external command to generate the code
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 16October 21, 2016
Ruby on Rails (RoR) ...
 Ruby on Rails Philosophy
 Don't Repeat Yourself (DRY)
- information should not be stored redundantly (e.g. do not store information in
configuration files if the data can be automatically derived by the system)
 Convention over Configuration (CoC)
- programmer only has to specify unconventional application settings
- naming conventions to automatically map classes to database tables (e.g. by
default a 'Sale' model class is mapped to the 'sales' database table)
 High modularity
 plug-ins can be added for desired server-side functionality
 use RubyGems package manager to easily add plug-ins (“gems”)
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 17October 21, 2016
DEMO: Ruby on Rails
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 18October 21, 2016
Django
 Open source Python web application framework
 MVC architectural pattern
 don't repeat yourself (DRY)
 object-relational mapper
- mapping between model (Python classes) and a relational database
 integrated lightweight web server
 localisation
 caching
 ...
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 19October 21, 2016
Node.js
 Server-side JavaScript
 low-level, comparable to functionality offered by Servlets
 handling post/get requests, database, sessions, …
 Write your entire app in one language
 however, server-side and client-side code still separated
 Built-in web server (no need for Apache, Tomcat, etc.)
 High modularity
 packages can be added for additional functionality (via npm)
 Other more powerful frameworks such as Express.js build
on top of Node.js
 HTTP utility methods (routing, sessions, ...)
 template engines (Jade or EJS)
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 20October 21, 2016
ASP.NET MVC
 Web framework for .NET languages (C#, VB)
 MVC architectural pattern
 inversion of control container
 extensible and pluggable framework
- can use any existing .NET libraries in the form of DLL files
- core components such as view engine or URL routing modules can be
replaced
 can generate some of the client-side JavaScript for you
- form validation
- dynamic updates using Ajax
 localisation
 session management
 caching
 …
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 21October 21, 2016
Specialised Frameworks and Toolkits
 Client-side web frameworks
 Backbone.js
 Ember.js
 Angular.js
 Creating browser-based RIAs
 Microsoft Silverlight
 Creating cross-platform RIAs
 Apache Flex
 Creating desktop applications
 NW.js
 Electron
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 22October 21, 2016
Backbone.js
 Cleanly separate data (Model) and user interface (View)
 you provide server-side interface to read/write models
 Backbone.js does the rest on the client side
 Model
 load and save models from server
 emit events when data changes
 View
 display models, capture user input and interactions
 listens for changes and update view if needed
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 23October 21, 2016
Ember.js
 Client-side MVC
 Built for single-page web applications
 information is refreshed dynamically on demand
 no page refreshes required
 Comes with Ember Data, a data persistence library
 provides facilities for object-relational mapping (ORM)
 maps client-side models to server-side data
 usage is optional, you can also provide your own interface to the
server-side data
 Users can create custom HTML tags ("components")
 can also include logic relevant to the new tag’s function
- e.g. handle user input or deal with child elements placed in between the
custom tags
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 24October 21, 2016
Angular.js
 Client-side "MVC"
 Two-way data binding between models and views
 Plain HTML as templates
 HTML is extended (e.g. via attributes) to map models to the
template, remains valid HTML
 Users can create custom HTML tags ("directives")
 can also include logic relevant to the new tag’s function
<div ng-controller="AlbumCtrl">
<ul>
<li ng-repeat="image in images">
<img ng-src="{{image.thumbnail}}" alt="{{image.description}}">
</li>
</ul>
</div>
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 25October 21, 2016
Microsoft Silverlight
 Microsoft's platform for Rich Internet Applications
 competitor to Adobe Flash
 Runtime requires a browser plug-in
 Internet Explorer, Firefox, Safari and Google Chrome
 Silverlight Core Common Language Runtime (CoreCLR)
 A Silverlight application consists of
 CreateSilverlight.js and Silverlight.js
- initialise the browser plug-in
 user interface described in the Extensible Application Markup
Language (XAML)
- XAML files are not compiled  indexable by search engines
 code-behind file containing the program logic
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 26October 21, 2016
Microsoft Silverlight ...
 Programming based on a subset of the .NET Framework
 Silverlight introduces a set of features including
 LocalConnection API
- asynchronous messaging between multiple applications on the same machine
 out-of-browser experiences
- locally installed application that runs out-of-the-browser (OOB apps)
- cross-platform with Windows/Mac
 microphone and Web cam support
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 27October 21, 2016
Apache Flex
 Software development kit for cross-platform
Rich Internet Applications (RIAs) based on Adobe Flash
 Main components
 Adobe Flash Player runtime environment
 Flex SDK (free)
- compiler and debugger, the Flex framework and user interface components
 Adobe Flash Builder (commercial)
- Eclipse plug-in with MXML compiler and debugger
 Separation of user interface and data
 user interface described in MXML markup language in
combination with ActionScript
- compiled into flash executable (SWF flash movie)
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 28October 21, 2016
Apache Flex ...
 Flex applications can also be deployed as mobile and
desktop applications via Adobe AIR (Adobe Integrated
Runtime)
<?xml version="1.0" encoding="UTF-8" ?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
private function sayHello():void {
Alert.show("Hello " + user.text);
}
]]>
</mx:Script>
<mx:Label fontSize="12" text="Name: " />
<mx:TextInput id="user" />
<mx:Button label="Go" click="sayHello()" />
</mx:Application>
HelloWorld.mxml
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 29October 21, 2016
NW.js
 Formerly node-webkit project
 Bundles your app for usage as desktop application
 Webkit + Node.js + Application Files (HTML, JS, CSS, …)
 Lets you call Node.js modules directly from DOM
 e.g. use filesystem module to read and write files
 Included API provides access to native UI features
 right-click context menu
 system tray icon
 notifications
 …
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 30October 21, 2016
DEMO: NW.js
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 31October 21, 2016
Electron
 Similar to NW.js
 Developed for GitHub's Atom editor, now widely used
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 32October 21, 2016
Web Content Management Systems
 Content management systems that focus on web content
 Main functionality
 data storage and publishing, user management (including access
rights), versioning, workflows
 Offline (create static webpages), online (create
webpages on the fly) and hybrid systems
 Graphical interface for creating and managing content
 Suited for non-technical users since the underlying
technology is normally completely hidden
 Web CMS Examples
 Joomla, Drupal, Wordpress, ...
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 33October 21, 2016
Exercise 4
 Java Servlets and Modern Web Application
Frameworks
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 34October 21, 2016
References
 Struts 2 Quick Guide
 http://www.tutorialspoint.com/struts_2/struts_quick_guide.htm
 Apache Struts 2
 http://struts.apache.org
 Ian Roughley, Struts 2
 http://refcardz.dzone.com/refcardz/struts2
 Spring Framework
 http://www.springsource.org
 Yii Framework
 http://www.yiiframework.com
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 35October 21, 2016
References ...
 Zend Framework
 http://framework.zend.com
 CakePHP
 http://cakephp.org
 Ruby on Rails
 http://rubyonrails.org
 Django
 https://www.djangoproject.com
 Node.js
 http://nodejs.org
 http://expressjs.com
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 36October 21, 2016
References ...
 ASP.NET MVC
 http://www.asp.net/mvc
 Backbone.js
 http://backbonejs.org
 Ember.js
 http://emberjs.com
 Angular.js
 https://angularjs.org
 Microsoft Silverlight
 http://www.microsoft.com/silverlight/
 http://silverlight.net/learn/videos/silverlight-videos/net-ria-services-intro/
Beat Signer - Department of Computer Science - bsigner@vub.ac.be 37October 21, 2016
References ...
 Apache Flex
 http://flex.apache.org
 NW.js
 http://nwjs.io
 Electron
 http://electron.atom.io
 Comparision of Web Application Frameworks
 http://en.wikipedia.org/wiki/Comparison_of_web_
application_frameworks
2 December 2005
Next Lecture
CSS3 and Responsive Web Design

More Related Content

What's hot

Jenkins.pdf
Jenkins.pdfJenkins.pdf
React event
React eventReact event
React event
Ducat
 
Python/Flask Presentation
Python/Flask PresentationPython/Flask Presentation
Python/Flask Presentation
Parag Mujumdar
 
Learn react-js
Learn react-jsLearn react-js
Front-End Web Development
Front-End Web DevelopmentFront-End Web Development
Front-End Web Development
Yash Sati
 
WEB DEVELOPMENT
WEB DEVELOPMENTWEB DEVELOPMENT
WEB DEVELOPMENT
khushi74
 
Ppt of web development
Ppt of web developmentPpt of web development
Ppt of web developmentbethanygfair
 
Front end web development
Front end web developmentFront end web development
Front end web development
viveksewa
 
Top java script frameworks ppt
Top java script frameworks pptTop java script frameworks ppt
Top java script frameworks ppt
Omkarsoft Bangalore
 
Introduction to spring boot
Introduction to spring bootIntroduction to spring boot
Introduction to spring boot
Santosh Kumar Kar
 
Web Development
Web DevelopmentWeb Development
Web Development
Lena Petsenchuk
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
Knoldus Inc.
 
Getting started with Next.js
Getting started with Next.jsGetting started with Next.js
Getting started with Next.js
Gökhan Sarı
 
[Final] ReactJS presentation
[Final] ReactJS presentation[Final] ReactJS presentation
[Final] ReactJS presentation洪 鹏发
 
Web development using javaScript, React js, Node js, HTML, CSS and SQL
Web development using javaScript, React js, Node js, HTML, CSS and SQLWeb development using javaScript, React js, Node js, HTML, CSS and SQL
Web development using javaScript, React js, Node js, HTML, CSS and SQL
Jayant Surana
 
JavaScript
JavaScriptJavaScript
JavaScript
Vidyut Singhania
 
Backend Programming
Backend ProgrammingBackend Programming
Backend Programming
Ruwandi Madhunamali
 
ppt of web development for diploma student
ppt of web development for diploma student ppt of web development for diploma student
ppt of web development for diploma student
Abhishekchauhan863165
 
React workshop
React workshopReact workshop
React workshop
Imran Sayed
 
Web development ppt
Web development pptWeb development ppt
Web development ppt
KBK Business Solutions
 

What's hot (20)

Jenkins.pdf
Jenkins.pdfJenkins.pdf
Jenkins.pdf
 
React event
React eventReact event
React event
 
Python/Flask Presentation
Python/Flask PresentationPython/Flask Presentation
Python/Flask Presentation
 
Learn react-js
Learn react-jsLearn react-js
Learn react-js
 
Front-End Web Development
Front-End Web DevelopmentFront-End Web Development
Front-End Web Development
 
WEB DEVELOPMENT
WEB DEVELOPMENTWEB DEVELOPMENT
WEB DEVELOPMENT
 
Ppt of web development
Ppt of web developmentPpt of web development
Ppt of web development
 
Front end web development
Front end web developmentFront end web development
Front end web development
 
Top java script frameworks ppt
Top java script frameworks pptTop java script frameworks ppt
Top java script frameworks ppt
 
Introduction to spring boot
Introduction to spring bootIntroduction to spring boot
Introduction to spring boot
 
Web Development
Web DevelopmentWeb Development
Web Development
 
An Introduction To Jenkins
An Introduction To JenkinsAn Introduction To Jenkins
An Introduction To Jenkins
 
Getting started with Next.js
Getting started with Next.jsGetting started with Next.js
Getting started with Next.js
 
[Final] ReactJS presentation
[Final] ReactJS presentation[Final] ReactJS presentation
[Final] ReactJS presentation
 
Web development using javaScript, React js, Node js, HTML, CSS and SQL
Web development using javaScript, React js, Node js, HTML, CSS and SQLWeb development using javaScript, React js, Node js, HTML, CSS and SQL
Web development using javaScript, React js, Node js, HTML, CSS and SQL
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Backend Programming
Backend ProgrammingBackend Programming
Backend Programming
 
ppt of web development for diploma student
ppt of web development for diploma student ppt of web development for diploma student
ppt of web development for diploma student
 
React workshop
React workshopReact workshop
React workshop
 
Web development ppt
Web development pptWeb development ppt
Web development ppt
 

Viewers also liked

Front-End Frameworks: a quick overview
Front-End Frameworks: a quick overviewFront-End Frameworks: a quick overview
Front-End Frameworks: a quick overview
Diacode
 
Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)
Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)
Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)
Beat Signer
 
Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016
iMOBDEV Technologies Pvt. Ltd.
 
Architecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsArchitecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web Apps
Rasheed Waraich
 
Tech Interview Job Prep
Tech Interview Job PrepTech Interview Job Prep
Tech Interview Job Prep
TurnToTech
 
Modern web technologies
Modern web technologiesModern web technologies
Modern web technologies
Oday Alqarra
 
Introduction to JS frameworks
Introduction to JS frameworksIntroduction to JS frameworks
Introduction to JS frameworks
Deepu S Nath
 
Comparing Java Web Frameworks
Comparing Java Web FrameworksComparing Java Web Frameworks
Comparing Java Web Frameworks
Matt Raible
 
Introduction - Web Technologies (1019888BNR)
Introduction - Web Technologies (1019888BNR)Introduction - Web Technologies (1019888BNR)
Introduction - Web Technologies (1019888BNR)
Beat Signer
 
Delivering HTML5 and Modern Apps
Delivering HTML5 and Modern AppsDelivering HTML5 and Modern Apps
Delivering HTML5 and Modern Apps
Joshua Drew
 
Top 10 HTML5 frameworks for effective development in 2016
Top 10 HTML5 frameworks for effective development in 2016Top 10 HTML5 frameworks for effective development in 2016
Top 10 HTML5 frameworks for effective development in 2016
iMOBDEV Technologies Pvt. Ltd.
 
Building modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and javaBuilding modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and java
Alexander Gyoshev
 
Modern Web App Architectures
Modern Web App ArchitecturesModern Web App Architectures
Modern Web App Architectures
Raphael Stary
 
Web app architecture
Web app architectureWeb app architecture
Web app architecture
Jordan Open Source Association
 
Introduction to Google's Cloud Technologies
Introduction to Google's Cloud TechnologiesIntroduction to Google's Cloud Technologies
Introduction to Google's Cloud Technologies
Chris Schalk
 
Comparison of Java Web Application Frameworks
Comparison of Java Web Application FrameworksComparison of Java Web Application Frameworks
Comparison of Java Web Application Frameworks
Angelin R
 
Web Development Technologies
Web Development TechnologiesWeb Development Technologies
Web Development TechnologiesVignesh Prajapati
 
Web Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @CygnismediaWeb Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @Cygnismedia
Clark Davidson
 
Structuring web applications with Backbone.js
Structuring web applications with Backbone.jsStructuring web applications with Backbone.js
Structuring web applications with Backbone.js
Diego Cardozo
 

Viewers also liked (20)

Front-End Frameworks: a quick overview
Front-End Frameworks: a quick overviewFront-End Frameworks: a quick overview
Front-End Frameworks: a quick overview
 
Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)
Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)
Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)
 
Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016
 
Architecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsArchitecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web Apps
 
Tech Interview Job Prep
Tech Interview Job PrepTech Interview Job Prep
Tech Interview Job Prep
 
Modern web technologies
Modern web technologiesModern web technologies
Modern web technologies
 
Introduction to JS frameworks
Introduction to JS frameworksIntroduction to JS frameworks
Introduction to JS frameworks
 
Comparing Java Web Frameworks
Comparing Java Web FrameworksComparing Java Web Frameworks
Comparing Java Web Frameworks
 
DoubleClick
DoubleClickDoubleClick
DoubleClick
 
Introduction - Web Technologies (1019888BNR)
Introduction - Web Technologies (1019888BNR)Introduction - Web Technologies (1019888BNR)
Introduction - Web Technologies (1019888BNR)
 
Delivering HTML5 and Modern Apps
Delivering HTML5 and Modern AppsDelivering HTML5 and Modern Apps
Delivering HTML5 and Modern Apps
 
Top 10 HTML5 frameworks for effective development in 2016
Top 10 HTML5 frameworks for effective development in 2016Top 10 HTML5 frameworks for effective development in 2016
Top 10 HTML5 frameworks for effective development in 2016
 
Building modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and javaBuilding modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and java
 
Modern Web App Architectures
Modern Web App ArchitecturesModern Web App Architectures
Modern Web App Architectures
 
Web app architecture
Web app architectureWeb app architecture
Web app architecture
 
Introduction to Google's Cloud Technologies
Introduction to Google's Cloud TechnologiesIntroduction to Google's Cloud Technologies
Introduction to Google's Cloud Technologies
 
Comparison of Java Web Application Frameworks
Comparison of Java Web Application FrameworksComparison of Java Web Application Frameworks
Comparison of Java Web Application Frameworks
 
Web Development Technologies
Web Development TechnologiesWeb Development Technologies
Web Development Technologies
 
Web Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @CygnismediaWeb Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @Cygnismedia
 
Structuring web applications with Backbone.js
Structuring web applications with Backbone.jsStructuring web applications with Backbone.js
Structuring web applications with Backbone.js
 

Similar to Web Application Frameworks - Web Technologies (1019888BNR)

Web Application Frameworks - Web Technologies (1019888BNR)
Web Application Frameworks - Web Technologies (1019888BNR)Web Application Frameworks - Web Technologies (1019888BNR)
Web Application Frameworks - Web Technologies (1019888BNR)
Beat Signer
 
ASP.NET Presentation
ASP.NET PresentationASP.NET Presentation
ASP.NET Presentation
Rasel Khan
 
Web development concepts using microsoft technologies
Web development concepts using microsoft technologiesWeb development concepts using microsoft technologies
Web development concepts using microsoft technologies
Hosam Kamel
 
The Future of ASP.NET
The Future of ASP.NETThe Future of ASP.NET
ASP Dot Net Software Development in India - iFour Technolab
ASP Dot Net Software Development in India - iFour TechnolabASP Dot Net Software Development in India - iFour Technolab
ASP Dot Net Software Development in India - iFour Technolab
iFour Technolab Pvt. Ltd.
 
Programming is Fun with ASP.NET MVC
Programming is Fun with ASP.NET MVCProgramming is Fun with ASP.NET MVC
Programming is Fun with ASP.NET MVC
Ian Carnaghan
 
sMash_for_zOS-users
sMash_for_zOS-userssMash_for_zOS-users
sMash_for_zOS-users
Otto Kee LeakPeng
 
MVC 6 Introduction
MVC 6 IntroductionMVC 6 Introduction
MVC 6 Introduction
Sudhakar Sharma
 
Give your web apps some backbone
Give your web apps some backboneGive your web apps some backbone
Give your web apps some backbone
RTigger
 
ASP.NET MVC - In the Wild
ASP.NET MVC - In the WildASP.NET MVC - In the Wild
ASP.NET MVC - In the Wild
Brian Boatright
 
XML Sapiens unified site-building concept in focus of XML/PHP
XML Sapiens unified site-building concept in focus of XML/PHPXML Sapiens unified site-building concept in focus of XML/PHP
XML Sapiens unified site-building concept in focus of XML/PHP
rglab
 
Building Components and Services for the Programmable Web
Building Components and Services for the Programmable WebBuilding Components and Services for the Programmable Web
Building Components and Services for the Programmable Web
goodfriday
 
Client Side Frameworks
Client Side FrameworksClient Side Frameworks
Client Side FrameworksMitesh Gandhi
 
Getting Started with Spring Framework
Getting Started with Spring FrameworkGetting Started with Spring Framework
Getting Started with Spring Framework
Edureka!
 
Building intranet applications with ASP.NET AJAX and jQuery
Building intranet applications with ASP.NET AJAX and jQueryBuilding intranet applications with ASP.NET AJAX and jQuery
Building intranet applications with ASP.NET AJAX and jQuery
Alek Davis
 
Large-Scale Web Development with JavaScript
Large-Scale Web Development with JavaScriptLarge-Scale Web Development with JavaScript
Large-Scale Web Development with JavaScript
Navid Ahmadi
 
Web 2.0 Mimbar Ilmiah
Web 2.0 Mimbar IlmiahWeb 2.0 Mimbar Ilmiah
Web 2.0 Mimbar IlmiahSoetam Rizky
 

Similar to Web Application Frameworks - Web Technologies (1019888BNR) (20)

Web Application Frameworks - Web Technologies (1019888BNR)
Web Application Frameworks - Web Technologies (1019888BNR)Web Application Frameworks - Web Technologies (1019888BNR)
Web Application Frameworks - Web Technologies (1019888BNR)
 
Lecture 05 web_applicationframeworks
Lecture 05 web_applicationframeworksLecture 05 web_applicationframeworks
Lecture 05 web_applicationframeworks
 
Advanced JavaScript
Advanced JavaScriptAdvanced JavaScript
Advanced JavaScript
 
ASP.NET Presentation
ASP.NET PresentationASP.NET Presentation
ASP.NET Presentation
 
Web development concepts using microsoft technologies
Web development concepts using microsoft technologiesWeb development concepts using microsoft technologies
Web development concepts using microsoft technologies
 
The Future of ASP.NET
The Future of ASP.NETThe Future of ASP.NET
The Future of ASP.NET
 
Asp.net
Asp.netAsp.net
Asp.net
 
ASP Dot Net Software Development in India - iFour Technolab
ASP Dot Net Software Development in India - iFour TechnolabASP Dot Net Software Development in India - iFour Technolab
ASP Dot Net Software Development in India - iFour Technolab
 
Programming is Fun with ASP.NET MVC
Programming is Fun with ASP.NET MVCProgramming is Fun with ASP.NET MVC
Programming is Fun with ASP.NET MVC
 
sMash_for_zOS-users
sMash_for_zOS-userssMash_for_zOS-users
sMash_for_zOS-users
 
MVC 6 Introduction
MVC 6 IntroductionMVC 6 Introduction
MVC 6 Introduction
 
Give your web apps some backbone
Give your web apps some backboneGive your web apps some backbone
Give your web apps some backbone
 
ASP.NET MVC - In the Wild
ASP.NET MVC - In the WildASP.NET MVC - In the Wild
ASP.NET MVC - In the Wild
 
XML Sapiens unified site-building concept in focus of XML/PHP
XML Sapiens unified site-building concept in focus of XML/PHPXML Sapiens unified site-building concept in focus of XML/PHP
XML Sapiens unified site-building concept in focus of XML/PHP
 
Building Components and Services for the Programmable Web
Building Components and Services for the Programmable WebBuilding Components and Services for the Programmable Web
Building Components and Services for the Programmable Web
 
Client Side Frameworks
Client Side FrameworksClient Side Frameworks
Client Side Frameworks
 
Getting Started with Spring Framework
Getting Started with Spring FrameworkGetting Started with Spring Framework
Getting Started with Spring Framework
 
Building intranet applications with ASP.NET AJAX and jQuery
Building intranet applications with ASP.NET AJAX and jQueryBuilding intranet applications with ASP.NET AJAX and jQuery
Building intranet applications with ASP.NET AJAX and jQuery
 
Large-Scale Web Development with JavaScript
Large-Scale Web Development with JavaScriptLarge-Scale Web Development with JavaScript
Large-Scale Web Development with JavaScript
 
Web 2.0 Mimbar Ilmiah
Web 2.0 Mimbar IlmiahWeb 2.0 Mimbar Ilmiah
Web 2.0 Mimbar Ilmiah
 

More from Beat Signer

Introduction - Lecture 1 - Human-Computer Interaction (1023841ANR)
Introduction - Lecture 1 - Human-Computer Interaction (1023841ANR)Introduction - Lecture 1 - Human-Computer Interaction (1023841ANR)
Introduction - Lecture 1 - Human-Computer Interaction (1023841ANR)
Beat Signer
 
Indoor Positioning Using the OpenHPS Framework
Indoor Positioning Using the OpenHPS FrameworkIndoor Positioning Using the OpenHPS Framework
Indoor Positioning Using the OpenHPS Framework
Beat Signer
 
Personalised Learning Environments Based on Knowledge Graphs and the Zone of ...
Personalised Learning Environments Based on Knowledge Graphs and the Zone of ...Personalised Learning Environments Based on Knowledge Graphs and the Zone of ...
Personalised Learning Environments Based on Knowledge Graphs and the Zone of ...
Beat Signer
 
Cross-Media Technologies and Applications - Future Directions for Personal In...
Cross-Media Technologies and Applications - Future Directions for Personal In...Cross-Media Technologies and Applications - Future Directions for Personal In...
Cross-Media Technologies and Applications - Future Directions for Personal In...
Beat Signer
 
Bridging the Gap: Managing and Interacting with Information Across Media Boun...
Bridging the Gap: Managing and Interacting with Information Across Media Boun...Bridging the Gap: Managing and Interacting with Information Across Media Boun...
Bridging the Gap: Managing and Interacting with Information Across Media Boun...
Beat Signer
 
Codeschool in a Box: A Low-Barrier Approach to Packaging Programming Curricula
Codeschool in a Box: A Low-Barrier Approach to Packaging Programming CurriculaCodeschool in a Box: A Low-Barrier Approach to Packaging Programming Curricula
Codeschool in a Box: A Low-Barrier Approach to Packaging Programming Curricula
Beat Signer
 
The RSL Hypermedia Metamodel and Its Application in Cross-Media Solutions
The RSL Hypermedia Metamodel and Its Application in Cross-Media Solutions The RSL Hypermedia Metamodel and Its Application in Cross-Media Solutions
The RSL Hypermedia Metamodel and Its Application in Cross-Media Solutions
Beat Signer
 
Case Studies and Course Review - Lecture 12 - Information Visualisation (4019...
Case Studies and Course Review - Lecture 12 - Information Visualisation (4019...Case Studies and Course Review - Lecture 12 - Information Visualisation (4019...
Case Studies and Course Review - Lecture 12 - Information Visualisation (4019...
Beat Signer
 
Dashboards - Lecture 11 - Information Visualisation (4019538FNR)
Dashboards - Lecture 11 - Information Visualisation (4019538FNR)Dashboards - Lecture 11 - Information Visualisation (4019538FNR)
Dashboards - Lecture 11 - Information Visualisation (4019538FNR)
Beat Signer
 
Interaction - Lecture 10 - Information Visualisation (4019538FNR)
Interaction - Lecture 10 - Information Visualisation (4019538FNR)Interaction - Lecture 10 - Information Visualisation (4019538FNR)
Interaction - Lecture 10 - Information Visualisation (4019538FNR)
Beat Signer
 
View Manipulation and Reduction - Lecture 9 - Information Visualisation (4019...
View Manipulation and Reduction - Lecture 9 - Information Visualisation (4019...View Manipulation and Reduction - Lecture 9 - Information Visualisation (4019...
View Manipulation and Reduction - Lecture 9 - Information Visualisation (4019...
Beat Signer
 
Visualisation Techniques - Lecture 8 - Information Visualisation (4019538FNR)
Visualisation Techniques - Lecture 8 - Information Visualisation (4019538FNR)Visualisation Techniques - Lecture 8 - Information Visualisation (4019538FNR)
Visualisation Techniques - Lecture 8 - Information Visualisation (4019538FNR)
Beat Signer
 
Design Guidelines and Principles - Lecture 7 - Information Visualisation (401...
Design Guidelines and Principles - Lecture 7 - Information Visualisation (401...Design Guidelines and Principles - Lecture 7 - Information Visualisation (401...
Design Guidelines and Principles - Lecture 7 - Information Visualisation (401...
Beat Signer
 
Data Processing and Visualisation Frameworks - Lecture 6 - Information Visual...
Data Processing and Visualisation Frameworks - Lecture 6 - Information Visual...Data Processing and Visualisation Frameworks - Lecture 6 - Information Visual...
Data Processing and Visualisation Frameworks - Lecture 6 - Information Visual...
Beat Signer
 
Data Presentation - Lecture 5 - Information Visualisation (4019538FNR)
Data Presentation - Lecture 5 - Information Visualisation (4019538FNR)Data Presentation - Lecture 5 - Information Visualisation (4019538FNR)
Data Presentation - Lecture 5 - Information Visualisation (4019538FNR)
Beat Signer
 
Analysis and Validation - Lecture 4 - Information Visualisation (4019538FNR)
Analysis and Validation - Lecture 4 - Information Visualisation (4019538FNR)Analysis and Validation - Lecture 4 - Information Visualisation (4019538FNR)
Analysis and Validation - Lecture 4 - Information Visualisation (4019538FNR)
Beat Signer
 
Data Representation - Lecture 3 - Information Visualisation (4019538FNR)
Data Representation - Lecture 3 - Information Visualisation (4019538FNR)Data Representation - Lecture 3 - Information Visualisation (4019538FNR)
Data Representation - Lecture 3 - Information Visualisation (4019538FNR)
Beat Signer
 
Human Perception and Colour Theory - Lecture 2 - Information Visualisation (4...
Human Perception and Colour Theory - Lecture 2 - Information Visualisation (4...Human Perception and Colour Theory - Lecture 2 - Information Visualisation (4...
Human Perception and Colour Theory - Lecture 2 - Information Visualisation (4...
Beat Signer
 
Introduction - Lecture 1 - Information Visualisation (4019538FNR)
Introduction - Lecture 1 - Information Visualisation (4019538FNR)Introduction - Lecture 1 - Information Visualisation (4019538FNR)
Introduction - Lecture 1 - Information Visualisation (4019538FNR)
Beat Signer
 
Towards a Framework for Dynamic Data Physicalisation
Towards a Framework for Dynamic Data PhysicalisationTowards a Framework for Dynamic Data Physicalisation
Towards a Framework for Dynamic Data Physicalisation
Beat Signer
 

More from Beat Signer (20)

Introduction - Lecture 1 - Human-Computer Interaction (1023841ANR)
Introduction - Lecture 1 - Human-Computer Interaction (1023841ANR)Introduction - Lecture 1 - Human-Computer Interaction (1023841ANR)
Introduction - Lecture 1 - Human-Computer Interaction (1023841ANR)
 
Indoor Positioning Using the OpenHPS Framework
Indoor Positioning Using the OpenHPS FrameworkIndoor Positioning Using the OpenHPS Framework
Indoor Positioning Using the OpenHPS Framework
 
Personalised Learning Environments Based on Knowledge Graphs and the Zone of ...
Personalised Learning Environments Based on Knowledge Graphs and the Zone of ...Personalised Learning Environments Based on Knowledge Graphs and the Zone of ...
Personalised Learning Environments Based on Knowledge Graphs and the Zone of ...
 
Cross-Media Technologies and Applications - Future Directions for Personal In...
Cross-Media Technologies and Applications - Future Directions for Personal In...Cross-Media Technologies and Applications - Future Directions for Personal In...
Cross-Media Technologies and Applications - Future Directions for Personal In...
 
Bridging the Gap: Managing and Interacting with Information Across Media Boun...
Bridging the Gap: Managing and Interacting with Information Across Media Boun...Bridging the Gap: Managing and Interacting with Information Across Media Boun...
Bridging the Gap: Managing and Interacting with Information Across Media Boun...
 
Codeschool in a Box: A Low-Barrier Approach to Packaging Programming Curricula
Codeschool in a Box: A Low-Barrier Approach to Packaging Programming CurriculaCodeschool in a Box: A Low-Barrier Approach to Packaging Programming Curricula
Codeschool in a Box: A Low-Barrier Approach to Packaging Programming Curricula
 
The RSL Hypermedia Metamodel and Its Application in Cross-Media Solutions
The RSL Hypermedia Metamodel and Its Application in Cross-Media Solutions The RSL Hypermedia Metamodel and Its Application in Cross-Media Solutions
The RSL Hypermedia Metamodel and Its Application in Cross-Media Solutions
 
Case Studies and Course Review - Lecture 12 - Information Visualisation (4019...
Case Studies and Course Review - Lecture 12 - Information Visualisation (4019...Case Studies and Course Review - Lecture 12 - Information Visualisation (4019...
Case Studies and Course Review - Lecture 12 - Information Visualisation (4019...
 
Dashboards - Lecture 11 - Information Visualisation (4019538FNR)
Dashboards - Lecture 11 - Information Visualisation (4019538FNR)Dashboards - Lecture 11 - Information Visualisation (4019538FNR)
Dashboards - Lecture 11 - Information Visualisation (4019538FNR)
 
Interaction - Lecture 10 - Information Visualisation (4019538FNR)
Interaction - Lecture 10 - Information Visualisation (4019538FNR)Interaction - Lecture 10 - Information Visualisation (4019538FNR)
Interaction - Lecture 10 - Information Visualisation (4019538FNR)
 
View Manipulation and Reduction - Lecture 9 - Information Visualisation (4019...
View Manipulation and Reduction - Lecture 9 - Information Visualisation (4019...View Manipulation and Reduction - Lecture 9 - Information Visualisation (4019...
View Manipulation and Reduction - Lecture 9 - Information Visualisation (4019...
 
Visualisation Techniques - Lecture 8 - Information Visualisation (4019538FNR)
Visualisation Techniques - Lecture 8 - Information Visualisation (4019538FNR)Visualisation Techniques - Lecture 8 - Information Visualisation (4019538FNR)
Visualisation Techniques - Lecture 8 - Information Visualisation (4019538FNR)
 
Design Guidelines and Principles - Lecture 7 - Information Visualisation (401...
Design Guidelines and Principles - Lecture 7 - Information Visualisation (401...Design Guidelines and Principles - Lecture 7 - Information Visualisation (401...
Design Guidelines and Principles - Lecture 7 - Information Visualisation (401...
 
Data Processing and Visualisation Frameworks - Lecture 6 - Information Visual...
Data Processing and Visualisation Frameworks - Lecture 6 - Information Visual...Data Processing and Visualisation Frameworks - Lecture 6 - Information Visual...
Data Processing and Visualisation Frameworks - Lecture 6 - Information Visual...
 
Data Presentation - Lecture 5 - Information Visualisation (4019538FNR)
Data Presentation - Lecture 5 - Information Visualisation (4019538FNR)Data Presentation - Lecture 5 - Information Visualisation (4019538FNR)
Data Presentation - Lecture 5 - Information Visualisation (4019538FNR)
 
Analysis and Validation - Lecture 4 - Information Visualisation (4019538FNR)
Analysis and Validation - Lecture 4 - Information Visualisation (4019538FNR)Analysis and Validation - Lecture 4 - Information Visualisation (4019538FNR)
Analysis and Validation - Lecture 4 - Information Visualisation (4019538FNR)
 
Data Representation - Lecture 3 - Information Visualisation (4019538FNR)
Data Representation - Lecture 3 - Information Visualisation (4019538FNR)Data Representation - Lecture 3 - Information Visualisation (4019538FNR)
Data Representation - Lecture 3 - Information Visualisation (4019538FNR)
 
Human Perception and Colour Theory - Lecture 2 - Information Visualisation (4...
Human Perception and Colour Theory - Lecture 2 - Information Visualisation (4...Human Perception and Colour Theory - Lecture 2 - Information Visualisation (4...
Human Perception and Colour Theory - Lecture 2 - Information Visualisation (4...
 
Introduction - Lecture 1 - Information Visualisation (4019538FNR)
Introduction - Lecture 1 - Information Visualisation (4019538FNR)Introduction - Lecture 1 - Information Visualisation (4019538FNR)
Introduction - Lecture 1 - Information Visualisation (4019538FNR)
 
Towards a Framework for Dynamic Data Physicalisation
Towards a Framework for Dynamic Data PhysicalisationTowards a Framework for Dynamic Data Physicalisation
Towards a Framework for Dynamic Data Physicalisation
 

Recently uploaded

PART A. Introduction to Costumer Service
PART A. Introduction to Costumer ServicePART A. Introduction to Costumer Service
PART A. Introduction to Costumer Service
PedroFerreira53928
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
Vikramjit Singh
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
How to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERPHow to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERP
Celine George
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
Jisc
 
Template Jadual Bertugas Kelas (Boleh Edit)
Template Jadual Bertugas Kelas (Boleh Edit)Template Jadual Bertugas Kelas (Boleh Edit)
Template Jadual Bertugas Kelas (Boleh Edit)
rosedainty
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
GeoBlogs
 
Fish and Chips - have they had their chips
Fish and Chips - have they had their chipsFish and Chips - have they had their chips
Fish and Chips - have they had their chips
GeoBlogs
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
Pavel ( NSTU)
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
Jheel Barad
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
RaedMohamed3
 
The Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve ThomasonThe Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve Thomason
Steve Thomason
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
Jisc
 
How to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS ModuleHow to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS Module
Celine George
 
Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
PedroFerreira53928
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
AzmatAli747758
 
How to Break the cycle of negative Thoughts
How to Break the cycle of negative ThoughtsHow to Break the cycle of negative Thoughts
How to Break the cycle of negative Thoughts
Col Mukteshwar Prasad
 

Recently uploaded (20)

PART A. Introduction to Costumer Service
PART A. Introduction to Costumer ServicePART A. Introduction to Costumer Service
PART A. Introduction to Costumer Service
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
 
How to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERPHow to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERP
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
 
Template Jadual Bertugas Kelas (Boleh Edit)
Template Jadual Bertugas Kelas (Boleh Edit)Template Jadual Bertugas Kelas (Boleh Edit)
Template Jadual Bertugas Kelas (Boleh Edit)
 
The geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideasThe geography of Taylor Swift - some ideas
The geography of Taylor Swift - some ideas
 
Fish and Chips - have they had their chips
Fish and Chips - have they had their chipsFish and Chips - have they had their chips
Fish and Chips - have they had their chips
 
Synthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptxSynthetic Fiber Construction in lab .pptx
Synthetic Fiber Construction in lab .pptx
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
 
The Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve ThomasonThe Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve Thomason
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
 
How to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS ModuleHow to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS Module
 
Basic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumersBasic phrases for greeting and assisting costumers
Basic phrases for greeting and assisting costumers
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
 
How to Break the cycle of negative Thoughts
How to Break the cycle of negative ThoughtsHow to Break the cycle of negative Thoughts
How to Break the cycle of negative Thoughts
 

Web Application Frameworks - Web Technologies (1019888BNR)

  • 1. 2 December 2005 Web Technologies Web Application Frameworks Prof. Beat Signer Department of Computer Science Vrije Universiteit Brussel http://www.beatsigner.com
  • 2. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 2October 21, 2016 Web Application Frameworks  There exist dozens of web application frameworks! A web application framework is a software framework that is designed to support the development of dynamic web- sites, web applications, web services and web resources. The framework aims to alleviate the overhead associated with common activities performed in web development. For example, many frameworks provide libraries for database access, templating frameworks and session management, and they often promote code reuse. [http://en.wikipedia.org/wiki/Web_application_framework]
  • 3. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 3October 21, 2016 Web Application Frameworks ...  A web application framework offers libraries and tools to deal with web application issues  template libraries, session management, database access libraries etc.  Some frameworks also offer an abstraction from the underlying enabling technologies  e.g. automatic creation of Java Servlets  Many frameworks follow the Model-View-Controller (MVC) design pattern  no mix of application logic and view (e.g. not like in JSP)  increases modularity and reusability  Lead to a faster and more robust development process
  • 4. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 4October 21, 2016 Model-View-Controller (MVC)  Model  data (state) and business logic  multiple views can be defined for a single model  when the state of a model changes, its views are notified  View  renders the data of the model  notifies the controller about changes  Controller  processes interactions with the view  transforms view interactions into operations on the model (state modification) Model Controller View notifies modifies state selects view notifies gets state
  • 5. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 5October 21, 2016 All-Inclusive MVC Frameworks  Java  Apache Struts 2  Spring  PHP  Yii  Zend  CakePHP  Ruby  Ruby on Rails  Python  Django  JavaScript  Node.js + Express.js  .NET (C#, Visual Basic)  ASP.NET MVC
  • 6. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 6October 21, 2016 Apache Struts 2  Free open source framework for creating enterprise- ready Java-based web applications  Action-based MVC Model 2 (Pull MVC) framework combining Java Servlets and JSP technology  model - action (basic building blocks) from which the view can pull information via the ValueStack - action represented by POJO (Plain Old Java Object) following the JavaBean paradigm and optional helper classes  view - template-based approach often based on JavaServer Pages (JSP) in combination with tag libraries (collection of custom tags)  controller - based on Java Servlet filter in combination with interceptors
  • 7. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 7October 21, 2016 MVC Model 2 (MVC 2) in Struts 2 Model POJOs Database Controller Servlet View e.g. JSP Browser 1 2 3 4 5 6
  • 8. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 8October 21, 2016 Apache Struts 2 Architecture  Receive request  filter chain - interception of requests and responses, e.g. XSLT transformation  Execute relevant Action  invoke interceptors  read/update data (model)  Build response (view)  often based on JSP template  interceptors in reverse order  Send response  again through filter chain [http://struts.apache.org/2.1.6/docs/big-picture.html]
  • 9. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 9October 21, 2016 DEMO: Struts 2 Form Validation
  • 10. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 10October 21, 2016 Spring Framework  Java application framework  Various extensions for web applications  Modules  model-view-controller  data access  inversion of control container  convention-over-configuration  remote access framework  transaction management  authentication and authorisation  …
  • 11. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 11October 21, 2016 Yii Framework  PHP framework for the development of Web 2.0 applications that offers a rich set of features  AJAX-enabled widgets  web service integration  authentication and authorisation  flexible presentation via skins and themes  Data Access Objects (DAO) interface to transparently access different database management systems  integration with the jQuery JavaScript library  layered caching  ...
  • 12. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 12October 21, 2016 Zend  Open source PHP framework offering various features  MVC architectural pattern  loosely coupled components  object orientation  flexible caching  Simple Cloud API  features to deal with emails (POP3, IMAP4, …)  …
  • 13. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 13October 21, 2016 CakePHP  Open source PHP web application framework  MVC architectural pattern  rapid prototyping via scaffolding  authentication  localisation  session management  caching  validation  …
  • 14. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 14October 21, 2016 DEMO: CakePHP
  • 15. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 15October 21, 2016 Ruby on Rails (RoR)  Open source web application framework  Combination of  dynamic, reflective, object-oriented programming language Ruby - combination of Perl-inspired syntax with "Smalltalk features"  web application framework Rails  Based on MVC architectural pattern  structure of a webpage separated from its functionality via the unobtrusive JavaScript technique  The scaffolding feature offered by Rails can automatically generate some of the models and views that are required for a website  developer has to run an external command to generate the code
  • 16. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 16October 21, 2016 Ruby on Rails (RoR) ...  Ruby on Rails Philosophy  Don't Repeat Yourself (DRY) - information should not be stored redundantly (e.g. do not store information in configuration files if the data can be automatically derived by the system)  Convention over Configuration (CoC) - programmer only has to specify unconventional application settings - naming conventions to automatically map classes to database tables (e.g. by default a 'Sale' model class is mapped to the 'sales' database table)  High modularity  plug-ins can be added for desired server-side functionality  use RubyGems package manager to easily add plug-ins (“gems”)
  • 17. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 17October 21, 2016 DEMO: Ruby on Rails
  • 18. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 18October 21, 2016 Django  Open source Python web application framework  MVC architectural pattern  don't repeat yourself (DRY)  object-relational mapper - mapping between model (Python classes) and a relational database  integrated lightweight web server  localisation  caching  ...
  • 19. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 19October 21, 2016 Node.js  Server-side JavaScript  low-level, comparable to functionality offered by Servlets  handling post/get requests, database, sessions, …  Write your entire app in one language  however, server-side and client-side code still separated  Built-in web server (no need for Apache, Tomcat, etc.)  High modularity  packages can be added for additional functionality (via npm)  Other more powerful frameworks such as Express.js build on top of Node.js  HTTP utility methods (routing, sessions, ...)  template engines (Jade or EJS)
  • 20. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 20October 21, 2016 ASP.NET MVC  Web framework for .NET languages (C#, VB)  MVC architectural pattern  inversion of control container  extensible and pluggable framework - can use any existing .NET libraries in the form of DLL files - core components such as view engine or URL routing modules can be replaced  can generate some of the client-side JavaScript for you - form validation - dynamic updates using Ajax  localisation  session management  caching  …
  • 21. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 21October 21, 2016 Specialised Frameworks and Toolkits  Client-side web frameworks  Backbone.js  Ember.js  Angular.js  Creating browser-based RIAs  Microsoft Silverlight  Creating cross-platform RIAs  Apache Flex  Creating desktop applications  NW.js  Electron
  • 22. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 22October 21, 2016 Backbone.js  Cleanly separate data (Model) and user interface (View)  you provide server-side interface to read/write models  Backbone.js does the rest on the client side  Model  load and save models from server  emit events when data changes  View  display models, capture user input and interactions  listens for changes and update view if needed
  • 23. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 23October 21, 2016 Ember.js  Client-side MVC  Built for single-page web applications  information is refreshed dynamically on demand  no page refreshes required  Comes with Ember Data, a data persistence library  provides facilities for object-relational mapping (ORM)  maps client-side models to server-side data  usage is optional, you can also provide your own interface to the server-side data  Users can create custom HTML tags ("components")  can also include logic relevant to the new tag’s function - e.g. handle user input or deal with child elements placed in between the custom tags
  • 24. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 24October 21, 2016 Angular.js  Client-side "MVC"  Two-way data binding between models and views  Plain HTML as templates  HTML is extended (e.g. via attributes) to map models to the template, remains valid HTML  Users can create custom HTML tags ("directives")  can also include logic relevant to the new tag’s function <div ng-controller="AlbumCtrl"> <ul> <li ng-repeat="image in images"> <img ng-src="{{image.thumbnail}}" alt="{{image.description}}"> </li> </ul> </div>
  • 25. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 25October 21, 2016 Microsoft Silverlight  Microsoft's platform for Rich Internet Applications  competitor to Adobe Flash  Runtime requires a browser plug-in  Internet Explorer, Firefox, Safari and Google Chrome  Silverlight Core Common Language Runtime (CoreCLR)  A Silverlight application consists of  CreateSilverlight.js and Silverlight.js - initialise the browser plug-in  user interface described in the Extensible Application Markup Language (XAML) - XAML files are not compiled  indexable by search engines  code-behind file containing the program logic
  • 26. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 26October 21, 2016 Microsoft Silverlight ...  Programming based on a subset of the .NET Framework  Silverlight introduces a set of features including  LocalConnection API - asynchronous messaging between multiple applications on the same machine  out-of-browser experiences - locally installed application that runs out-of-the-browser (OOB apps) - cross-platform with Windows/Mac  microphone and Web cam support
  • 27. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 27October 21, 2016 Apache Flex  Software development kit for cross-platform Rich Internet Applications (RIAs) based on Adobe Flash  Main components  Adobe Flash Player runtime environment  Flex SDK (free) - compiler and debugger, the Flex framework and user interface components  Adobe Flash Builder (commercial) - Eclipse plug-in with MXML compiler and debugger  Separation of user interface and data  user interface described in MXML markup language in combination with ActionScript - compiled into flash executable (SWF flash movie)
  • 28. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 28October 21, 2016 Apache Flex ...  Flex applications can also be deployed as mobile and desktop applications via Adobe AIR (Adobe Integrated Runtime) <?xml version="1.0" encoding="UTF-8" ?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal"> <mx:Script> <![CDATA[ import mx.controls.Alert; private function sayHello():void { Alert.show("Hello " + user.text); } ]]> </mx:Script> <mx:Label fontSize="12" text="Name: " /> <mx:TextInput id="user" /> <mx:Button label="Go" click="sayHello()" /> </mx:Application> HelloWorld.mxml
  • 29. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 29October 21, 2016 NW.js  Formerly node-webkit project  Bundles your app for usage as desktop application  Webkit + Node.js + Application Files (HTML, JS, CSS, …)  Lets you call Node.js modules directly from DOM  e.g. use filesystem module to read and write files  Included API provides access to native UI features  right-click context menu  system tray icon  notifications  …
  • 30. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 30October 21, 2016 DEMO: NW.js
  • 31. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 31October 21, 2016 Electron  Similar to NW.js  Developed for GitHub's Atom editor, now widely used
  • 32. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 32October 21, 2016 Web Content Management Systems  Content management systems that focus on web content  Main functionality  data storage and publishing, user management (including access rights), versioning, workflows  Offline (create static webpages), online (create webpages on the fly) and hybrid systems  Graphical interface for creating and managing content  Suited for non-technical users since the underlying technology is normally completely hidden  Web CMS Examples  Joomla, Drupal, Wordpress, ...
  • 33. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 33October 21, 2016 Exercise 4  Java Servlets and Modern Web Application Frameworks
  • 34. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 34October 21, 2016 References  Struts 2 Quick Guide  http://www.tutorialspoint.com/struts_2/struts_quick_guide.htm  Apache Struts 2  http://struts.apache.org  Ian Roughley, Struts 2  http://refcardz.dzone.com/refcardz/struts2  Spring Framework  http://www.springsource.org  Yii Framework  http://www.yiiframework.com
  • 35. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 35October 21, 2016 References ...  Zend Framework  http://framework.zend.com  CakePHP  http://cakephp.org  Ruby on Rails  http://rubyonrails.org  Django  https://www.djangoproject.com  Node.js  http://nodejs.org  http://expressjs.com
  • 36. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 36October 21, 2016 References ...  ASP.NET MVC  http://www.asp.net/mvc  Backbone.js  http://backbonejs.org  Ember.js  http://emberjs.com  Angular.js  https://angularjs.org  Microsoft Silverlight  http://www.microsoft.com/silverlight/  http://silverlight.net/learn/videos/silverlight-videos/net-ria-services-intro/
  • 37. Beat Signer - Department of Computer Science - bsigner@vub.ac.be 37October 21, 2016 References ...  Apache Flex  http://flex.apache.org  NW.js  http://nwjs.io  Electron  http://electron.atom.io  Comparision of Web Application Frameworks  http://en.wikipedia.org/wiki/Comparison_of_web_ application_frameworks
  • 38. 2 December 2005 Next Lecture CSS3 and Responsive Web Design