Home
Over System iMagazineAS/400 linksSearchContact
Vorige
Remain

Praktijkgids voor Ajax

Tot voor kort werden webapplicaties algemeen gezien als tweederangs toepassingen in vergelijking met traditionele computerprogramma’s. Wie zou bijvoorbeeld verwachten dat een webgebaseerd tekstverwerkingsprogramma zich kan meten met het alom vertrouwde Microsoft Word? Dankzij de snel toenemende populariteit van het Ajax-programmeermodel voor het internet gaat echter ook dit soort applicaties over naar een webinterface. Ajax breekt met het imago van traagheid, een gebrek aan interactie en een paginagebonden uiterlijk door de gebruiker een ervaring te bieden die ongeveer dezelfde kwaliteit biedt als veel desktop-programma’s.

door Mel Beckman

Ajax, een acroniem voor Asynchronous JavaScript and XML, is geen ontwikkelprogramma dat u kunt kopen. Het is zelfs geen programmeertaal. Het is een methodiek voor het toepassen van bestaande webprogrammeertechnieken in een specifieke combinatie die zowel gebruikers als ontwikkelaars voordelen biedt. Gebruikers krijgen een soepelere gebruikersinterface voorgeschoteld dankzij kortere reactietijden, gedeeltelijke pagina-updates en content die vooraf in het cachegeheugen werd geladen. Ontwikkelaars krijgen een programmeeromgeving waarin de complete applicatie in één HTML-document draait, waarbij de gebruiker zich tot één webpagina beperkt. Zowel gebruikers als ontwikkelaars profiteren van de mogelijkheid om serververzoeken op de achtergrond te verwerken - asynchroon - terwijl de gebruiker de interface manipuleert.

Als u de basisbeginselen van Ajax begrijpt en klaar bent om uw eerste Ajax-applicatie te ontwikkelen, doet u er goed aan om eens te kijken wat anderen al hebben gerealiseerd. Vorig jaar heeft de ontwikkeling van Ajax-toepassingen een enorme vlucht genomen, wat heeft geleid tot een groot aantal bibliotheken, frameworks, widgets en programmeerpatronen. Bibliotheken en frameworks bevatten de basisinformatie van een Ajax-toepassing. Widgets verschaffen kant-en-klare onderdelen voor de gebruikersinterface, zoals zichtbaar wordende teksten en scrollende bedieningselementen. Programmeerpatronen zijn formele beschrijvingen van specifieke probleemoplossingen in Ajax, welke u gemakkelijk kunt aanpassen aan uw eigen vereisten.

Door deze elementen goed te bestuderen, ontdekt u hoe u snel betrouwbare Ajax-applicaties ontwikkelt. Bovendien kunt u dan een gefundeerde keuze maken uit het grote aantal server-side talen dat het client-side onderdeel van JavaScript aanvult.

Bibliotheken van bibliotheken
Zoals u waarschijnlijk al weet, kunt u Ajax-applicaties in elke willekeurige server-side programmeertaal schrijven, waaronder standaard RPG CGI. U weet waarschijnlijk ook wel hoe saai het is om de noodzakelijke Ajax-opschoning uit te voeren om alle gangbare webbrowsers te ondersteunen, de status van de gebruiker te blijven volgen en vaak toegepaste Ajax-functies te implementeren, zoals XML-codering en -decodering. Gelukkig begrepen de personen die op u voorliggen op de Ajax-weg dit ook, en hebben zij de moeite genomen om het u wat gemakkelijker te maken door gestandaardiseerde bibliotheken en frameworks op te zetten.

Een bibliotheek is niets meer dan een verzameling code die u kunt opnemen in uw Ajax-applicaties om veelvoorkomende bewerkingen uit te voeren, zoals het aanroepen en verwerken van een XMLHttpRequest.
Een framework gaat verder dan de codebibliotheek door onder uw begeleiding applicatiecode te genereren, oftewel Ajax-code voor u te schrijven. Over het algemeen zijn bibliotheken hoofdzakelijk gericht op ofwel het client-side JavaScript, ofwel de server-side taal, zoals Java of PHP. In frameworks worden zowel client-side als server-side elementen aangepakt, zodat u de programmeertaken intelligent tussen beide zijden kunt verdelen en de code gesynchroniseerd kunt houden.

Een primaire functie van Ajax-bibliotheken is om de verschillen tussen browsers als factor uit te sluiten, waardoor u voor verschillende browsers maar één codebasis hoeft te schrijven. Houd bij het selecteren van een Ajax-bibliotheek dus altijd rekening met de browserondersteuning. Vergeet echter niet dat bibliotheken en frameworks niet automatisch perfecte programma’s voor u schrijven. U, de programmeur, bent nog steeds zelf verantwoordelijk voor het produceren van de bedrijfslogica, evenals voor het ontwikkelen van een getrouwe gebruikersinterface en het bewaken van de veiligheid van de applicatie.

Er bestaan tientallen of misschien wel honderden unieke Ajax-bibliotheken. Hier vindt u een uitgebreid overzicht van de meest populaire bibliotheken. Tenzij anders wordt aangegeven, zijn deze allemaal Open Source.

Niet alle Ajax-bibliotheken zijn gericht op client-side JavaScript. Er zijn ook bibliotheken die alleen specifieke server-side implementatietalen bevatten, zoals Java en ColdFusion. U bent daar waarschijnlijk alleen in geïnteresseerd als u één van deze talen gebruikt voor server-side code. In afbeelding 1 wordt een overzicht gegeven van een aantal populaire server-side bibliotheken.

Flitsende frameworks
Frameworks zijn het geraamte van Ajax-applicaties, of programma’s die geraamten van Ajax-applicaties genereren. Bij het gebruik van een framework hoort vrijwel altijd een specificatiefase, waarin u alle onderdelen die de applicatie nodig heeft een naam geeft en definieert. Het framework genereert vervolgens het JavaScript, de server-side code en andere onderdelen van de applicatie, zoals een databaseschema.

IDE-ontwikkelaars integreren ondersteuning voor Ajax in tal van bestaande ontwikkelplatforms, maar Ajax-frameworks kunnen ook complete zelfstandige ontwikkelomgevingen zijn. Hier vindt u enkele van de meest gebruikte frameworks, waaronder Atlas, Catalyst, CakePHP, CherryPy, GWT en Ruby on Rails. Dit zijn slechts enkele van de meest populaire frameworks. Tevens vindt u er een regelmatig bijgewerkte portal naar frameworks voor andere webapplicatieomgevingen op ajaxpatterns.org/Ajax_Frameworks.

Werkende widgets
U kunt volledig functionele Ajax-applicaties schrijven met enkel JavaScript en uw favoriete server-side taal, maar dan bent u hoogstwaarschijnlijk veel tijd kwijt aan het opnieuw uitvinden van het wiel voor de vele Ajax-basisbedieningselementen, ook wel widgets genoemd. In plaats daarvan kunt u beter op zoek gaan naar Ajax-widgets en deze in uw applicatie importeren, en zo veel tijd besparen. Een widget kan zo eenvoudig zijn als een ‘voorverpakte’ routine voor het verwerken van toetsaanslagen door de gebruiker in een formulierveld of zo geavanceerd zijn als een complete gesimuleerde bureaubladinterface.

Vrijwel alle Ajax-frameworks bevatten een basisset met werkende widgets. Deze kunt u in uw code gebruiken zonder speciaal insluitingproces, omdat het framework ze reeds heeft geïmporteerd in de werkende codebasis. Voor andere widgets moet u echter expliciet de client- en server-side componenten aan uw applicatie toevoegen. Soms behelst dit proces niet meer dan het opnemen van een .js-bestand, maar vaak is het toch wat ingewikkelder. Er bestaat geen standaard manier voor het opnemen van widgets in een Ajax-programma, en het komt dan ook wel eens voor dat bepaalde widgets hinder van elkaar ondervinden.

Het is schier onmogelijk om de gigantische verscheidenheid aan bestaande widgets in kaart te brengen. Widgets kunnen voor van alles en nog wat worden gebruikt: van pop-up-kalenders en -contactpersonen tot het selectief weergeven van webtekst en het manipuleren van ingewikkelde driedimensionale graphics. U kunt echter wel een kijkje nemen in de vele opslagplaatsen voor widgets, waar u widget-onderdelen kunt bekijken, uitproberen en downloaden.

Bibliotheeknaam

AjaxAnywhere
AjaxCFC
AjaxTags
DotNetRemoting
DWR
Echo2
JSON
WebORB
X-Wire

Server-side taal

JSP/Struts
ColdFusion
Java
.NET (commercieel product)
Java
Java (commercieel product)
Java
Java/.NET en Flash
Java

URL

ajaxanywhere.sourceforge.net
robgonda.com/blog/projects/ajaxcfc
javawebparts.sourceforge.net
dotnetremoting.com
getahead.ltd.uk/dwr
nextapp.com/platform/echo2/echo
oss.metaparadigm.com/jsonrpc
themidnightcoders.com
xwire.solutionpioneers.com


Afbeelding 1: Server-side Ajax-bibliotheken

Prettige patronen
Het idee van ontwerppatronen - beschrijvingen van oplossingen voor veelvoorkomende constructieproblemen - is afkomstig uit de bouwkunde en architectuur en heeft een toepassing gevonden in andere disciplines, waaronder softwareontwikkeling. Een softwareontwerppatroon is een geformaliseerde beschrijving van de oplossing voor een specifiek veelvoorkomend programmeerprobleem. U kunt een ontwerppatroon zien als een recept: het beschrijft de ingrediënten en de procedure die moet worden gevolgd om code te produceren die een bepaalde ‘best practice’-oplossing implementeert.

Elk ontwerppatroon heeft dezelfde vorm. Het beschrijft de context waarin het patroon nuttig is, het specifieke probleem dat het patroon probeert op te lossen, en de informatie die nodig is om het patroon te implementeren. In de Ajax-gemeenschap heeft één Wiki-site zich ontwikkeld tot het zenuwcentrum voor het delen van Ajax-ontwerppatronen: ajaxpatterns.org. Net als een Wiki staat ook ajaxpatterns.org open voor bijdragen en wijzigingen door gebruikers. Tot op heden zijn er ruim 70 patronen te vinden, onderverdeeld in verschillende categorieën, zoals Foundational Technology, Programming, Functionality and Usability en Development Process.

Patronen uit de categorie Foundational Technologie verhelpen algemene problemen op het vlak van gebruikersinterface- en applicatie-architectuur, zoals methodes voor het manipuleren van pagina-content via DOM. Programmeerpatronen verschaffen specifieke codeoplossingen voor het implementeren van browserdialoogvensters, webservices en prestatieoptimalisering. Patronen uit de categorie Functionality and Usability hebben betrekking op content-, webformulier, en pagina-opmaakprocessen, zoals drill-downs, microlinks, portlets en geïntegreerde teksteditors. Patronen uit de categorie Development Process beschrijven beste praktijken voor de implementatie van applicaties, zoals loggen, regressietesten en foutopsporing.

Misschien wel het belangrijkste punt met betrekking tot patronen is dat men zich moet realiseren dat Ajax, als paradigma op het gebied van programmeren, zelf een patroon is. De afzonderlijke onderdelen van Ajax - asynchrone HTML, JavaScript en XML - zijn individueel niet bijzonder krachtig. Samen, in het unieke patroon dat een Ajax-applicatie vormt, zijn ze echter een zeer sterke combinatie.

Ajax - werk in uitvoering
Hoewel het nog steeds een jonge, groeiende methodiek voor webapplicaties is, heeft Ajax toch al de nodige successen gevierd. Het is dan wel geen wondermiddel voor alle programmeerproblemen, maar het mag toch zeker worden beschouwd als de voorbode van een nieuw tijdperk van webgebaseerde toepassingen die de gebruiker even goed van dienst zijn als traditionele computerprogramma’s.

Mel Beckman is senior technisch redacteur voor System iNEWS.

 

 

An unknown error occurred:
DBError
../../../../db/reactie.db
Database file could not be found or opened

© Hilarius Media