F r a m e w o r k s. LinkWorks



Vergelijkbare documenten
Dynamische webapplicaties in Java

Technisch Ontwerp W e b s i t e W O S I

Applicatie-Architecturen

Inhoudsopgave. Hoofdstuk 1.Inleiding...3

Applicatie-Architecturen

Gebruik van cryptografie voor veilige jquery/rest webapplicaties. Frans van Buul Inter Access

JavaServer Faces 2.1

Copyright IBS Nieuwbouw. Vereenvoudigd en versnelt Java ontwikkeling. Huub Cleutjens

INFITT01 - Internettechnologie WEEK 8

Zelftest Java EE Architectuur

Acht stappen voor JSF

Building rich user interfaces in Java

React en React Native voor websites en apps

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003

Analyse Programmeertalen

Opdrachtformulering (pagina 3 van 7)

JSF webapplicatie performance

Zelftest Java concepten

User interface ontkoppeling

Portals & Open Source

10. Single Page Applications

APEX en JasperReports

HOGESCHOOL ROTTERDAM / CMI

OpenIMS 4.2 Portaal Server

Angular Best Practices Door Alex en Chris van Beek

Session Beans.

Technisch ontwerp. Projectteam 6. Project "Web Essentials" 02 april Versie 2.1.0

What is the advantage of using expression language instead of JSP scriptlets and JSP expressions?

Web building gevorderden: CSS & JavaScript. Karel Nijs 2008/11

INHOUDSOPGAVE Het Boekenwinkeltje Registreer.aspx Opgaven... 97

Kleine cursus PHP5. Auteur: Raymond Moesker

Het reclyclen van Oracle Forms

Java Server Faces: flexibele standaard

Java op het Oracle 9i platform

ECTS fiche. Module info. Evaluatie. Gespreide evaluatie OPLEIDING. Handelswetenschappen en bedrijfskunde HBO Informatica

emaxx Systeem eisen ManagementPortaal voor de ZakenMagazijn database

Master Class Java Accelerated

Gestart als demo/research voor cloud-oplossing. Een Afslagveiling

Self-service functionaliteit

VERA LIPS - Klantendag Ondersteuning LIPS Evolutie Dali-Platform

De clientkant van webapplicaties in het universitaire onderwijs

APEX Templates. OGH APEX dag 30 maart. Art Melssen. 31 maart 2010

The Framework Productivitity Measurement Method

Inhoud. Introductie tot de cursus

Technologie en Interactie 3.2: software architectuur

Software Design Document

LES 1: AAN DE SLAG MET WORDPRESS. Lesoverzicht: Aan de slag Wat is WordPress CMS Front-end Back-end Samenvatting. Tijd: 5 minuten

Cursus Programmeren en Dataverwerking.

Webapplicaties ontwikkelen met Vaadin

Inhoud eindtoets. Eindtoets. Introductie 2. Opgaven 3. Terugkoppeling 9

Stappenplannen MailPlus SOAP API

Object Oriented Programming

APEX vs OutSystems, een vergelijking door een gebruiker

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB

icafe Een digitaal bestelsysteem voor de horeca Joeri Verdeyen Stefaan De Spiegeleer Naim Ben Tanfous

Master Class Java Accelerated

Connect Social Business

Enterprise. RESTful Webservices. serieus alternatief voor SOAP?

SOA Security. en de rol van de auditor... ISACA Roundtable 2 juni Arthur Donkers, 1Secure BV arthur@1secure.nl

Een ASP.NET applicatie opzetten. Beginsituatie:

Is APEX a worthy substitute for Oracle Forms?

De plug-in is heel eenvoudig te installeren met een setup-programma. Waarna je een aantal menu opties in het tools menu er bij krijgt.

De architect: in spagaat tussen mensen en technische details. Illustratie met een simpel voorbeeld

De toekomst van Oracle Forms

Oracle Portal in een Service-Oriented Architecture (SOA) ir. Jeroen F. van Schaijk Senior Consultant Emerging Technologies

Summerschool Mobiele Apps augustus 2012 Herman van Dompseler. HTML 5 App

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB

Project plan. Erwin Hannaart Sander Tegelaar

Programmeren in C ++ met wxwidgets les 5

Inhoud. Introductie tot de cursus

Samengaan van Geo-informatie en Service Oriëntatie

Onderzoek Templating en i18n

Technische implementatie De infrastructuur rondom Transit kent de volgende rollen:

JHeadstart 10g: J2EE webapp development

NHibernate als ORM oplossing

SHAREPOINT ONLINE (SAMEN-)WERKEN IN DE WOLKEN. - Workshop SharePoint 1

Eigen Widgets in CRM. Introductie. Limitering. Widgets beschikbaar stellen. Tips & Tricks Eigen Widgets in CRM

Web 2.0. Over de zin en onzin van een aantal nieuwe technieken. Sigge Stegeman

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise

Capita Selecta Design Patterns voor administratieve applicaties

Unit testen van EJB's. Koert Zeilstra - iprofs

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat:

Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag.

Stappenplan. De ontwikkeling van een interface doorloopt bij Studio Wolf vier stappen. Deze stappen verduidelijken de weg naar het eindresultaat.

4 ASP.NET MVC. 4.1 Controllers

Knowledgeable Referenceable Personable Accountable Scalable

Cloud werkplek anno Cloud werkplek anno 2014

Joomla! vs Facebook (en andere Social Media)

Chris de Kok TDI 3. Vak: Software Architectuur Datum: Docent: Fons van Kesteren

Responsive web applicaties op Oracle

TECHNICAL DESIGN DOCUMENT

Click to edit Master subtitle style NOIV Congres 2011 GIS Open In Verbinding. Marcel de Rink

De Kleine WordPress Handleiding

De ins en outs van OpenERP! OpenERP wanneer en hoe toepasbaar en welke aandachtspunten bij invoering

Geert Dekkers Web Studio +31(0)

The Canon B2B Portal. OGh Jaarcongres Philip Lafeber (Canon Europa) Marcel Lipman (LogicaCMG)

Transcriptie:

F r a m e w o r k s m w a p r j @ g m a i l. c o m 14-04- 2009 LinkWorks Dit document bevat een onderzoek naar een aantal web application frameworks, met daarbij beschreven wat het framework inhoudt en wat de voor- en nadelen zijn.

Versiebeheer Versie Datum Auteur Omschrijving 0.1 14-04-2009 Ceryl Initiële versie, alles samengevoegd, conclusie toegevoegd 0.2 14-04-2009 Tobias Aanvullen van de conclusie 0.3 14-04-2009 Dries Inhoudsopgave en inleiding toegevoegd 0.4 15-04-2009 Ceryl Inleiding verbeterd, andere indeling hoofdstukken 2

Inhoudsopgave Versiebeheer... 2 Inleiding... 5 Wicket... 6 Werking... 6 Voor- en nadelen... 6 Voordelen... 6 Nadelen... 7 Praktijk... 7 Leercurve... 8 JSP(X)... 9 Werking... 9 Voor- en nadelen... 9 Voordelen... 9 Nadelen... 9 Leercurve... 9 Struts... 10 Werking (kort)...10 Voordelen...10 Nadelen...10 Leercurve...10 JavaServer Faces... 11 Werking...11 Voor- en nadelen...11 Voordelen...11 Nadelen...12 Leercurve...12 Google Web Toolkit... 13 Introductie...13 Werking...13 Voor- en nadelen...13 Voordelen...13 Nadelen...13 Leercurve...13 Stripes... 14 Werking...14 Voor- en nadelen...14 Voordelen...14 Nadelen...14 Leercurve...14 3

RIFE... 15 Introductie...15 Werking...15 Voor- en nadelen...15 Voordelen...15 Nadelen...15 Leercurve...15 Toekomst van RIFE...15 Framework scores... 16 Conclusie... 17 Literatuur... 18 Boeken...18 Websites...18 4

Inleiding In dit document hebben wij een aantal web applicatie frameworks onderzocht. Om te vergelijken welk framework het beste zou kunnen worden gebruikt voor de front-end van het klachtenregistratie systeem van de WOSI applicatie. Wij hebben voor de verschillende frameworks onder andere gekeken naar de volgende aspecten: Werking Voor- en nadelen Leercurve In dit document zullen wij de volgende frameworks behandelen, dit zijn volgens ons de frameworks met de meeste potentie en activiteit op het gebied van ontwikkeling en community: Wicket JSP(X) JSF Struts GWT Rife Tapestry Stripes 5

Wicket Werking Het is niet een simpel verlangen naar betere kwaliteit dat de ontwikkeling van Wicket dreef. Zelfs met zoveel opties, is er werkelijk geen web toolkit dat precies het gebied vult dat Wicket vult. In feite, lijkt Wicket niet op andere frameworks. Wicket s naaste verwanten zijn waarschijnlijk Tapestry en Echo, maar zelfs daar is de gelijkenis zeer miniem. Evenals Tapestry, gebruikt Wicket een speciaal HTML attribuut om componenten aan te duiden, wat het in staat stelt het bewerken gemakkelijk te maken met gewone HTML-editors. Net zoals Echo, heeft Wicket een eerste klas componenten model. Maar Wicket applicaties zijn niet zoals applicaties die zijn geschreven in Tapestry of Echo, want in Wicket krijgt je de voordelen van beide werelden: uitstekende componenten en eenvoudige HTML benadering. In veel situaties kan deze combinatie een belangrijk ontwikkelingsvoordeel blijken te zijn. Voor- en nadelen Voordelen In Wicket worden alle server-side states automatisch beheerd. Er wordt nooit direct gebruik gemaakt van een HttpSession object of een soortgelijke wrapper om de state op te slaan. In plaats daarvan wordt de state in verband gebracht met componenten. Elke server pagina component bezit een geneste rangorde van stateful componenten, waarbij elk component model, uiteindelijk een POJO (Plain Old Java object) is. Wicket houdt een lijst bij van deze pagina's in elke gebruikers sessie. Eén doel van deze lijst (en de component hiërarchie op elke pagina) is om het framework toe te staan alle details te verbergen van hoe de componenten en modellen worden benaderd. Een gebruiker is vooral bezig met Java objecten en Wicket houdt zich bezig met zaken als URL's, sessie-id's en GET/ POST requests. Tot slot, is Wicket ontworpen om te werken met het POJO persistence frameworks. Dit kan het schrijven van database gedreven webapplicaties vrij eenvoudig maken. In termen van efficiëntie versus productiviteit, staat Wicket tot JSP als Java tot C. Je kunt alles in JSP wat ook in Wicket kan. Je kunt het misschien zelfs wel meer efficiënt op het gebied van geheugen of processor verbruik. Maar het kan je weken of maanden meer kosten om de applicatie te ontwikkelen. En op het eind, omdat het state management in JSP ad-hoc is, zullen hoogstwaarschijnlijk overal beveiligingsproblemen en bugs tegen opduiken. Wicket introduceert geen speciale syntax in HTML. In plaats daarvan breidt het HTML uit in een standaard conforme wijze via een Wicket namespace die volledig voldoet aan de XHTML-standaard. Om dit te bereiken maakt Wicket consequent gebruik van een single ID attribuut in de Wicket namespace ( "wicket: id") om HTML-tags te markeren die een bijzondere behandeling dienen te krijgen door de toolkit 6

Nadelen Alles wordt in Plain Old Java Objects geïmplementeerd Je moet een goede kennis hebben van object georiënteerd programmeren Wicket elementen veranderen vaak van ID, zijn lastig vast te leggen voor designers Praktijk Een voorbeeld van hoe Wicket in de praktijk er uit ziet is te zien in een Hello World applicatie: HelloWorld.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3- strict.dtd" xml:lang="en" lang="en"> <body> <span wicket:id="message" id="message">message goes here</span> </body> </html> HelloWorld.java package org.wikipedia.wicket; import org.apache.wicket.markup.html.webpage; import org.apache.wicket.markup.html.basic.label; public class HelloWorld extends WebPage { /** * Constructor */ public HelloWorld() { add(new Label("message", "Hello World!")); } } HelloWorldApplication.java package org.wikipedia.wicket; import org.apache.wicket.protocol.http.webapplication; public class HelloWorldApplication extends WebApplication { /** * Constructor. */ public HelloWorldApplication() { } } /** * @see org.apache.wicket.application#gethomepage() */ public Class gethomepage() { return HelloWorld.class; } 7

web.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.4//EN" "http://java.sun.com/dtd/web-app_2_4.dtd"> <web-app> <display-name>wicket Examples</display-name> <filter> <filter-name>helloworldapplication</filter-name> <filter-class>org.apache.wicket.protocol.http.wicketfilter</filterclass> <init-param> <param-name>applicationclassname</param-name> <param-value>org.wikipedia.wicket.helloworldapplication</paramvalue> </init-param> </filter> <filter-mapping> <filter-name>helloworldapplication</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> Leercurve De leercurve is over het algemeen niet heel hoog, het ligt er slechts aan welke achtergrond u heeft qua frameworks en programmeer ervaring. Wanneer u al ervaring heeft met Spring, zult u weinig problemen met het aanpassen aan Wicket s programmeer model. Echter wanneer u ervaring heeft met Struts, Spring MVC of enig ander framework wat daar op lijkt, zult u vooral in het begin nogal wat moeite hebben met de abstractie van Wicket. Over het algemeen wanneer u nog weinig ervaring heeft met frameworks en enkele tutorials en voorbeelden bekijkt van Wicket zult u al snel een start kunnen maken met Wicket. 8

JSP(X) Werking Een JSP pagina bestaat uit normale (X)HTML/XML, speciale JSP tags en eventueel stukjes Java code zogenaamde scriplets of uit combinaties daarvan. Bij gebruik wordt een JSP pagina gecompileerd naar een Servlet, deze wordt vervolgens aangeroepen tijdens de uitvoering. Bij het gebruik van JSP s zul je vaak gebruik maken van de JSTL (Java Standard Tag Library) deze bevat veel van de gebruikte standaard tags, zoals gebruik variabellen, ophalen van waarden, condities en loops. Voor- en nadelen Voordelen Makkelijker lay-out beschrijven in vergelijking met een Servlet (HTML code i.t.t. echoën van lay-out met een print statements) Scheiding tussen statische en dynamische content. Hierdoor is het ook makkelijker voor webdesigner om iets in JSP te schrijven JSPX: scheiden van de view en de achterliggende code Nadelen Doordat de JSP word gecompileerd naar een Servlet kunnen er rare fouten ontstaan die niet (direct) duidelijk worden uit de source van de JSP pagina Je kunt niet snel wijzigingen aanbrengen in de JSP pagina s en deze direct bekijken, je moet of je applicatie reloaden of zelfs server restarten Java direct in je JSP pagina kunnen embedden (scriplets). Dan is er geen scheiding meer tussen de Java code en de presentatie. Dit geld niet voor JSPX hier is het niet mogelijk om deze scriplets te gebruiken Leercurve Basis JSP gebruik is snel te leren, met een beetje kennis van HTML/Java kun je vrij eenvoudig een simpele pagina maken. Alleen kan het vrij gecompliceerd worden als je gebruik gaat maken van custom tags om doelen te bereiken. Verder is het redelijk makkelijk om JSP toe te passen dit omdat JSP s de basis is waarop alles is te herleiden. 9

Struts Werking (kort) Struts is een tag library/framework die gebruik maakt van JSP, het zorgt ervoor dat wat je eerst met veel code moest doen nu met enkele tags kunt regelen. Het maakt je code overzichtelijker n helpt je bij het scheiden van de onderdelen. Voordelen Internationalisatie, een speerpunt van Struts is het makkelijk vertalen van de website. Goede support voor het gebruik van AJAX Integratie voor Spring POJO s als controllers, dit inheritence niet verplicht Ondersteuning voor Velocity en FreeMarker (2 java template engines) Ondersteuning van mooie urls Simpele architectur Tab libs zijn makkelijk aan te passen Controller-based of page based navigatie Nadelen Gebruikt VEEL XML configuratie om te werken Laat de flow mapping over aan XML Documentatie is slecht georganiseerd Je komt nog veel Struts 1.* documentatie tegen i.p.v. 2.* als je zoekt via google Leercurve Struts heeft een stijle leercurve, maar als je daar eenmaal doorheen bent is het zeer prettig werken. Deze curve is vergelijkbaar met andere frameworks. 10

JavaServer Faces Werking JSF (JavaServer Faces) is een Java-based Web application framework bedoeld om de ontwikkeling van userinterfaces voor Java EE applicaties makkelijker te maken. JSF gebruikt hiervoor een component-based aanpak. JSF maakt gebruik van JavaServer Pages (JSP) voor de presentatie, maar kan ook gebruik maken van andere technieken zoals bijvoorbeeld XUL. JSF bevat: Een set van API s voor de user interface componenten en het bijhouden van hun status, event handling en input validatie, converteren van waarden, en paginanavigatie. Een standaard set van UI components Twee JavaServer Pages (JSP) custom tag libraries om JavaServer Faces te kunnen gebruiken binnen een JSP pagina. Een server-side event model State management Managed Beans Unified Expression Language voor JSP 2.0 en JSF 1.2 De user interface draait op de server De JSP pagina, myform.jsp, is een JavaServer Faces pagina. Dit is een JSP pagina die JavaServer Faces tags bevat om de JSF user interface componenten te kunnen gebruiken. De user interface van de webapplicatie (myui in de afbeelding) beheert de objecten die binnen de JSP pagina gedefineerd zijn. Deze objecten kunnen zijn: De UI component objecten die bij de tags in de JSP pagina horen Event listeners, validators en converters JavaBeans Voor- en nadelen Voordelen JSF is te gebruiken ia.c.m. andere frameworks zoals bijvoorbeeld Struts Het is mogelijk om 3rd party UI componenten te gebruiken Duidelijke scheiding tussen business logica en presentatie JSF kan ook met andere technieken gebruikt worden dan JSP Veel 3rd party componenten zijn al beschikbaar 11

Nadelen Kan erg complex worden als er complexe user interface componenten geschreven moeten worden waar bijvoorbeeld nog andere framworks voor gebruikt moeten worden. 3rd party componenten zijn soms moeilijk aan te passen vanwege de complexiteit. JSF gebruikt standaard overal POST requests. Ook voor button clicks en links. Leercurve Als er eigen user interface componenten geschreven moeten worden kan dit erg complex worden en er gaat veel tijd in zitten. Verder is de basic implementatie vrij simpel. 12

Google Web Toolkit Introductie Google Web Toolkit (GWT) is een open source Java-framework van Google dat het mogelijk maakt om JavaScript-applicaties in Java te ontwikkelen. Versie 1.0 werd door Google in mei 2006 gelanceerd. Werking GWT maakt het mogelijk om Javascript-applicaties, en in het bijzonder AJAX-applicaties, in Java te schrijven met behulp van standaard Java ontwikkelgereedschap (zoals IDE's en debuggers). Wanneer de applicatie af is, wordt deze vertaald naar JavaScript door de GWTcompiler. De resulterende JavaScript code kan zonder hulpprogramma's of extra software door browsers worden uitgevoerd. GWT-applicaties kunnen op twee manieren uitgevoerd worden: Hosted mode: de (Java)broncode wordt vertaald naar Java bytecode die vervolgens wordt uitgevoerd door een Java Virtual Machine. Deze mode is vooral bedoeld voor het ontwikkelen en debuggen van de applicatie. Web mode: de (Java)broncode wordt vertaald naar JavaScript en HTML. Het resultaat kan uitgevoerd worden in een standaard browser of aan derden beschikbaar worden gesteld via het internet. Voor- en nadelen Voordelen Alles wordt geprogrammeerd in Java, en je hebt dus geen extra kennis van JavaScript nodig. De mogelijkheid om complex Java te gebruiken aan de client side. De gebruiker ziet JavaScript, maar de ontwikkelaar kan gewoon in een IDE de Java code ontwikkelen en debuggen. Er kan worden gedebugged zonder dat hiervoor een server nodig is. Er wordt veel support geboden door Google. Nadelen De leercurve is groot. Het deployen brengt meerdere obstakels met zich mee waardoor het minder makkelijk in gebruik is. De integratie van JavaScript gaat niet volgens de standaard manier. Er wordt gebruik gemaakt van JSNI om JavaScript te combineren met de Java code. Dit is op de lange termijn een uistekende manier, maar om te beginnen vergt het veel extra tijd. Het nadeel van het volledige Java gebruik is dat men in de keuzes beperkt wordt, omdat normaal gesproken JavaScript wordt gebruikt bij de client, en de keuze voor de server side staat open. Leercurve Zoals in de nadelen te lezen is, heeft de GWT een hoge leercurve. De oorzaak hiervan is de documentatie die beschikbaar is voor het deployen. Dit is toch een belangrijk onderdeel en als dit niet makkelijk en snel werkt, dan is de kans dat het daadwerkelijk gebruikt gaat worden een stuk kleiner. 13

Stripes Werking Stripes is een presentatie framework voor Java. De reden dat Stripes is ontwikkeld is dat volgens de makers ervan, het maken van webapplicaties in Java te veel werk is. Bestaande frameworks vereisen te veel configuratie en lijken zo opgebouwd te zijn dat het voor de gebruiker noodzakelijk is een hele nieuwe taal te leren alvorens het framework goed te gebruiken is. Stripes kan gezien worden als een extensie bovenop JSP. Presentatie pagina s zijn dan ook normale JSP pagina s waarin stripes tags gebruikt kunnen worden. Voor- en nadelen Voordelen Eenvoudig om een lay-out op te stellen Gebruikt JDK5 Goede en volledige documentatie Ondersteuning voor nieuwe java en web technieken (AJAX, EJB3, annotations, ) Scheiding van presentatie en logica Nadelen Stripes werkt met behulp van JSP en kent daarom voor een groot deel ook de nadelen die JSP heeft Leercurve Zoals al eerder aangegeven is de leercurve van Stripes erg kort. Stripes is opgezet met als achterliggende gedachten om een framework te bieden waarmee snel webapplicaties gemaakt kunnen worden. De documentatie van stripes is goed en uit de reacties van mensen is te lezen dat Stripes erg makkelijk is om mee te werken. 14

RIFE Introductie RIFE is een enterprise application framework voor Java. Er wordt gebruik gemaakt van een light-weight model en het bestaat uit een grote verzameling modules, die elk hun eigen stukje werk doen. De laatste versie van het framework is 1.5. RIFE is een zogenaamd full stack framework. Dit houdt in dat zo n framework vaak een verzameling is van meerdere libraries die allemaal geschikt zijn voor het ontwikkelen van web applicaties. Deze worden allemaal gecombineerd in 1 pakket, wat dus betekent dat alle functionaliteiten makkelijk beschikbaar zijn. Andere voorbeelden van full stack frameworks zijn JavaEE (Servlets), WebObjects, OpenACS en Ruby on Rails. Werking RIFE maakt gebruik van verschillende modules die samen een krachtig framework opleveren. RIFE combineert request-based en component-based mogelijkheden en voegt deze samen in een component object model. Voor- en nadelen Voordelen RIFE is ontwikkeld om taken te kunnen scheiden waardoor iedereen die er aan mee werkt zich alleen maar op zijn of haar eigen stuk hoeft te richten. Op elk moment kunnen de stukken samengevoegd worden, zonder veel moeite. RIFE zorgt ervoor dat er een robuust systeem ontstaat zonder dat sterke koppelingen. Er is goede documentatie aanwezig; deze is overzichtelijk en duidelijk. Nadelen De leercurve is groot. Dit komt omdat RIFE een zogenaamd full-stack framework is, en dus heel veel mogelijkheden heeft. Om met RIFE te beginnen moet er veel worden gelezen, wat een grote leercurve veroorzaakt. Een ander nadeel is dat RIFE steeds meer concurrentie krijgt van andere grote namen in de framework industrie. Als steeds meer mensen voor andere framework kiezen, dan is de kans groot dan RIFE zal uitsterven. Het grootste nadeel is dat RIFE het niet lang meer vol zal houden. Uit verschillende gesprekken komt naar voren, dat RIFE steeds meer wordt vervangen door nieuwere technieken. Dit is natuurlijk niet wenselijk voor een project en daarom is het niet verstandig om RIFE te gebruiken voor een langdurig project. Leercurve Zoals in de nadelen te lezen is, heeft RIFE een redelijk hoge leercurve. Dit komt omdat de mogelijkheden zeer uitgebreid zijn, en als je wil beginnen met RIFE je veel moet lezen om een goede start te kunnen maken. Dit is echter steeds beter te doen, omdat de laatste tijd de documentatie flink is verbeterd. Toekomst van RIFE Zoals bij de nadelen te lezen is, blijkt dat het RIFE framework zijn einde ziet naderen. Het wordt nog wel gebruikt, maar er wordt steeds vaker gekozen voor andere technieken. Ook heeft de oorspronkelijke ontwikkelaar al aangegeven niet lang meer met RIFE bezig te zullen zijn. Dit heeft ons doen besluiten om RIFE niet te gaan gebruiken voor ons project. 15

Framework scores XML configuratie (veel configuratie is negatief) J a v a L e e r c u r v e Form validatie A J A X D o c u m e n t a t i e F l e x i b e l H e r b r u i k b a a r Weinig code Duidelijke foutmeldingen Invoegen in bestaand project Wicket ++ ++ ++ + ++ ++ + ++ +/- ++ +/- JSP(X) ++ - + - - - + ++ + - ++ Struts -- + ++ + + - + ++ + +/- JSF + ++ + + + + + ++ +/- + + GWT +/- ++ ++ +/- ++ + + ++ +/- + - Tapestry ++ ++ +/- + - ++ + + +/- ++ +/- Stripes ++ ++ ++ + ++ ++ + +/- + + + Rife

Conclusie Wij hebben een aantal frameworks onderzocht op hoe deze in elkaar steken en hoe kunnen worden toegepast, de voor- en nadelen en wat de leercurve is voor elk framework. Hieruit hebben wij de conclusie getrokken, dat Wicket als beste uit de bus kwam. Dit hebben wij gedaan door voor elk framework de plus- en minpunten te bepalen. Zoals in het overzicht op de vorige pagina te zien is. Ook hebben wij gekozen voor Wicket omdat er binnen de groep al het meeste ervaring mee was opgedaan. En eigen ervaring met Wicket is positief ten opzichte van andere frameworks uit onze vergelijking. Daarom zouden wij voor het WOSI klachtenregistratie systeem graag als web applicatie framework Wicket willen aandragen. Omdat dit de snelheid waarmee de front-end van de applicatie opgezet kan worden aanzienlijk verhoogt. Een extra eis die we hadden voor het gebruik binnen WOSI is dat het goed te gebruiken is met een bestaand project en dan het makkelijk naast JSPX kan werken. Een voordeel daarbij is dat de klachtenregistratie een losse module is. Dit zorgt ervoor dat JSPX en widget niet daadwerkelijk door elkaar gebruikt hoeft te worden. Dit is wel mogelijk maar maakt het complexer dan nodig is. De leercurve van widget zorgt ervoor dat het voor andere heel makkelijk is om de code over te nemen en wijzigen. Hierdoor zien we hier geen problemen ontstaan voor het gebruik binnen WOSI.

Literatuur Boeken Gurumurthy, K. (2006). Pro Wicket. New York: Springer-Verlag. Hillenius, E., & Dashorst, M. (2008). Wicket In Action. Deventer: Manning Publications Co. Brown, S., Dalton, S., Jepp, D., Johnson, D., Li, S., & Raible, M. (2005). Pro JSP 2. Verenigde Staten van Amerika: Apress. Websites Apache Wicket. (2008, september 9). Opgeroepen op april 7, 2009, van Wikipedia: http://en.wikipedia.org/wiki/apache_wicket Apache Wicket Introduction. (2008). Opgeroepen op april 7, 2009, van Apache Wicket: http://wicket.apache.org/ Wicket Examples. (2008). Opgeroepen op april 7, 2009, van Wicketstuff: http://wicketstuff.org/wicket13/ http://nl.wikipedia.org/wiki/javaserver_pages http://java.sun.com/developer/onlinetraining/jspintro/contents.html http://struts.apache.org/ http://www.roseindia.net/struts/ http://developers.sun.com/learning/javaoneonline/2008/pdf/ts-6457.pdf http://www.chariotsolutions.com/slides/pdfs/spring-forward-2006-web-frameworks.pdf http://i-proving.ca/space/java+web+framework+comparison http://www.openkennis.nl/archief.html http://adi.atosoriginblog.nl/2008/10/29/java-web-application-frameworks/ http://code.google.com/intl/nl/webtoolkit/overview.html http://www.stripesframework.org/display/stripes/home http://www.stripesframework.org/display/stripes12/testimonials http://rifers.org/about http://en.wikipedia.org/wiki/rife http://en.wikipedia.org/wiki/web_application_framework 18