In samenwerking met HowITsDone JSF versus AngularJS client-server 2.0.

Slides:



Advertisements
Verwante presentaties
Defining a standard JSON-based exchange format for learning metadata Manon Haartsen.
Advertisements

Help, ik moet naar Office 2007!?. Wat horen wij bij klanten Training “New UI will cause too big of a loss in productivity” Training “New UI will cause.
Agenda Blok 1 - Evolutie van Cloud Computing
Requirements -People are able to make their own memorial page, called a memori -The website will be build first in Dutch for extension.nl, then copied.
Internet College 2 Architecturen. Architectuur van netwerktoepassingen •Peer to peer –Windows werkgroep •File- en printer sharing •Internet connection.
Stateful web, developments, trends 1 Webtechnologie Lennart Herlaar.
Presentatie kennisoverleg HTML 5. Waarom HTML 5? • Veel van onze informatie is opgeslagen in HTML… • 95% van de HTML is syntactisch incorrect…
INFSO-RI Enabling Grids for E-sciencE VOMS update Oscar Koeroo JRA3.
JQuery en ASP.NET Bart De Meyer.
ASP.NET AJAX Extensions Richard Soeteman
Service Coordination Protocols ● Noodzaak (Eddy) ● Coordination protocols (Eddy) ● Infra-structuur (Eddy) ● WS-Coordination (Eddy) ● WS-Transaction (Pepijn)
Internetapplicaties - II Gegevensinvoer 1 Internetapplicaties Deel 2: Gegevensinvoer: HTML-forms, JavaScript en JSP.
Lucene/SOLR 1: inleiding + indexering
Webapplicaties: de serverkant
OOP met Java Sessie 1.
Biml en Data Vault.
Vaardig? Een spectrum aan vaardigheden! Van informatie- naar media- naar exploratievaardig? Of e-Research & e-learning literate? Collaboration literate??
Voor VBA programmeurs Maurice de Beijer.  Maurice de Beijer.  The Problem Solver.  Visual Basic MVP.  Blog: theproblemsolver/default.aspxhttp://msmvps.com/blogs/
© 2004 IBM Corporation Guts Wissema, OpenSource & Linux Sales, IBM Open Document Format.
Speaking OData to SharePoint 2010 in a RESTful manner Michaël Hompus | Principal Developer | Winvision.
OOS Object geOrienteerd Software-ontwerp - 4 Codeerperikelen Singleton Specificeren Scheiding GUI en Domein Facade.
Omgevingen zijn dan geïmplementeerd als Symbol Tables. Symbol Table mapt een symbool met een Binding Meerdere noties van binding –Meerdere manieren te.
SQL injections en meer... PERU. web application vulnerabilities Cross Site Scripting (21.5%) SQL Injection (14%) PHP includes (9.5%) Buffer overflows.
GWT-RPC Bram Vandeputte. Wat is GWT-RPC Raamwerk voor envoudige client-server uitwisseling van Java Objecten. Gebaseerd op de Java Servlet architectuur.
Stateful web, developments, trends 1 Webtechnologie Lennart Herlaar.
Server side scripting 1 Webtechnologie Lennart Herlaar.
Creatieve workshop Wiki: Scroll naar beneden: docentenpagina: Pia Terstroet.
© 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied,
WinFX Overview Martin Tirion Senior Consultant Microsoft Services.
Mashups for the masses Maarten Brugman & Sven Vintges.
Hibernate Object relational mapping
Bedrijfsspecifieke extensies Standaard Rekeningschema
Wolter Kaper - Ruby on Rails Webtoepassing ontwerpen Webprogrammeren, week 1.
Wolter Kaper - AJAX en Javascript via Rails Deel 1 en 2.
JProject02 Bert Jacobs Ignace Van Tricht 4 juni 2009.
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Universal Modeling Language … why you need models? Models are necessary to communicate,
Tussentoets Digitale Techniek. 1 november 2001, 11:00 tot 13:00 uur. Opmerkingen: 1. Als u een gemiddeld huiswerkcijfer hebt gehaald van zes (6) of hoger,
Visual Basic.Net - Overzicht
Deel XIX Security, Servlets & authenticatie 1 Internetapplicaties Deel XIX: Security, Servlets & Authenticatie.
Deel XXI 1 Internetapplicaties Internetprogrammeren Capita Selecta.
Internetapplicaties - V Sessies 1 Internetapplicaties Deel 5: Sessies.
Introductie Cloud Computing Ruud Ramakers 19 April 2012 The best way to predict the future is to create it. Peter Drucker
XForms TU Delft Library Digitale Productontwikkeling Egbert Gramsbergen.
Web Applicaties Bouwen met Visual Studio .NET
Windows Applicaties Bouwen met Visual Studio.NET Sijmen Koffeman Development Consultant Microsoft.
1 december KC Development Tools Oracle HTML DB 2.0.
Rational Unified Process RUP Jef Bergsma. Iterations –Inception –Elaboration –Construction –Transition De kernbegrippen (Phases)
We zijn toch allemaal zoekende?
EML en IMS Learning Design
Link Popularity Het principe van linkpopulariteit kun je als volgt samenvatten: hoe meer webpagina's er naar een bepaalde webpagina linken, des te belangrijker.
In samenwerking met HowITsDone Spring as legacy Hoe innovatie legacy kan worden.
Usability metrics Gebruiksvriendelijkheid ISO Effectiveness Efficiency Satisfaction Learnability Flexibility En nu? Inleiding Hoe gaan we de gebruiksvriendelijkheid.
JSF cursus deel 1 oefeningen
Het geheim van Linked Data Marcel ReuversGeonovum CB-NL 20 november 2014.
MVC in de praktijk Jeroen Swart.NET architect, Quintor
1 Introductie next MCT - Programmeren 2 © S. Walcarius Waarom java? programma machinetaal (.exe) compilen platformspecifiek Een exe programma.
INFITT01 - Internettechnologie WEEK 3. Programma Sessies JSP.
Java & het Web Programma: Databases (jdbc, JNDI, ORM, JPA)
Java & het Web Programma: 3rd party libraries Standard actions (E)xpression (L)anguage.
Java & het Web Programma: De essentie van een web applicatie (webapp) Protocol van een webapp Talen van het web Java Servlets & Containers.
Java & het Web Programma: Sessies JSP. Stateless vs. Stateful(1) HTTP is stateless WAT IS STATELESS?
Java & het Web Programma: JSP. JSP....herhaling Welke van de volgende expressions is geldig/ongeldig? %>
Java & het Web Programma: JSTL Uitgebreide demo. JSP....herhaling Standard actions en (E)xpression (L)anguage: -Standard actions hebben de syntax:
Over de fabels en feiten van applicatiebouw en de invoering van het Spring Framework 16 december 2014 Ferdy du Chatenier / Gilbert van den.
Frontend Oss
ASP.NET MVC Web Development
Praegus B.V.. .
ASP.NET MVC Views.
– Software development fundamentals
– Software development fundamentals
Transcript van de presentatie:

in samenwerking met HowITsDone JSF versus AngularJS client-server 2.0

Geschiedenis JSF Java Servlet specificatie: HTML in code JSP: HTML template Struts: MVC framework JSF: verbeterde Struts Facelets: verbeterde JSP JSF 2.0: facelets de default

Geschiedenis gebruik JavaScript Browser HTML redelijk browser onafhankelijk Browser JavaScript niet echt browser onafhankelijk JavaScript DOM API browser onafhankelijk JQuery 2006 Desktop like GUI Dojo 2004, Backbase, … MVC/ MVVM/ MVP Backbone, Knockout, GWT, AngularJS, … RESTful JSON client-server protocol

JSF voorbeeld (1) Boeken

JSF voorbeeld (2) ALL TAGS ABOVE THIS LINE AND THIS LINE WILL BE REMOVED BY JSF This is default header ALL TAGS BELOW THIS LINE AND THSI LINE WILL BE REMOVED BY JSF

JSF voorbeeld (3) Voeg boek toe

JSF public class BoekHandler public void voegToe() {... } public Boek getBoek() { … } }

JSF voorbeeld (5) web.xml javax.faces.PROJECT_STAGE Production --> Development javax.faces.STATE_SAVING_METHOD server com.sun.faces.writeStateAtFormEnd false Faces Servlet javax.faces.webapp.FacesServlet Faces Servlet *.xhtml 30

JSF architectuur Pagina (HTTP GET) (kies en bewaar view) Facelet -> HTML Submit (HTTP POST) Bouw view op (uit serialized string) Verwerk submitted data Valideer submitted data Copieer submitted data naar Backing Bean Call action methode in Backing Bean (kies en bewaar volgende view) Facelet -> HTML

AngularJS Waarom AngularJS? Open Source Google (kennis, kunde, commitment) Samenwerking met W3C Volledig en duidelijk Single page (AJAX) + deep linking Rich widgets Simpele concepten en code Goede documentatie Stabiel Populair Zelf HTML tags maken (is dit wel handig?)

AngularJS voorbeeld (1) Boeken Voeg boek toe Titel

AngularJS voorbeeld (2) // boek.js var boekMVC = angular.module(‘boekMVC', []); boekMVC.controller(‘boekController', function boekController( $scope ) { $scope.boekTitel = ""; $scope.voegToe = function() { … HTTP POST $scope als json op url /json/voegtoe }

AngularJS voorbeeld (3) web.xml spring-json org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:spring/spring-json-servlet.xml spring-json /json/*

AngularJS voorbeeld (4) spring-json-servlet.xml

AngularJS voorbeeld public class BoekController = "/voegtoe") public void String boekTitel) { … }

AngularJS architectuur s/guide/concepts The browser loads the HTML and parses it into a DOM The browser loads angular.js script Angular waits for DOMContentLoaded event Angular looks for ng-app directive, which designates the application boundaryng-appdirective The Module specified in ng-app (if any) is used to configure the $injectorModuleng-app$injector The $injector is used to create the $compileservice as well as $rootScope$injector$compile$rootScope The $compile service is used to compile the DOM and link it with $rootScope$compile$rootScope The {{name}} interpolates the expression toHello World!interpolates

Vergelijking JSF - AngularJS Runtime architectuur JSF: UI verdeeld over client en server AngularJS: client-server 2.0 zero install (initieel komt UI van server) UI draait op client device; data interface met server Ontwikkelarchitectuur UI JSF UI: heterogeen ‘server-talen’: Java, HTML, Facelet browser-talen: HTML, JavaScript, CSS AngularJS UI: eenduidig alleen browser talen: HTML5, JavaScript, CSS, Angular API Ontwikkelarchitectuur server-side JSF: JSF (in combi met andere JEE API’s of Spring) AngularJS: Servlet + JSON framework + SpringMVC (in combi met andere JEE API’s of Spring)

Keuze criteria Andere devices Browser independent Performance client Performance server (JSF: view save/restore; HTML gen.) Schaalbaar (JSF: session state: sticky session LB) Cloud (aantal opties; client / server ontkoppeling) Bestaande kennis en kunde ontwikkelteam Ease of development, learning curve Build-Test-Package-Deploy (hotfix) Continuus Integration & Delivery Onderhoudbaarheid (SMART maken)

Nogmaals vergelijking criteriumwegingJSF 2 Angular JS toelichting andere devices35Beide geen native support (IOS/ Android) JS zit dichter op HTML5 mogelijkheden