Dit is het webblog van Peter Kassenaar - Ik geef training en consultancy in het maken van crossplatform mobiele apps en webapps. Trefwoorden: AngularJS, PhoneGap, jQuery/Mobile. HTML5, CSS3, JavaScript, AJAX, JSON. Ik schrijf boeken en artikelen over tal van (ICT-) onderwerpen. Ik was lead developer en directeur bij Yindo - Jouw digitale bibliotheek. Je kunt mij volgen op Twitter.(@PeterKassenaar)

Terug naar de algemene site.

13november

Training AngularJS en webinar Angular 2

Logo AngularJSDe vraag naar trainingen AngularJS is onverminderd groot. Ook met de aanstaande release van Angular 2 (zie verderop) is de rol van Angular 1 beslist nog niet uitgespeeld. De frameworks zullen de komende jaren naast elkaar blijven bestaan. Ik schreef hier bijvoorbeeld al eerder over:

Laatste training in 2015

Wil je nog in 2015 alles te weten komen over AngularJS (versie 1.4), dan heb je nog één kans: op 23, 24 en 25 november geef ik deze training in Nieuwegein, voor Vijfhart IT Opleidingen. Meer informatie en inschrijven kan op deze pagina: Single Page Applications with AngularJS.

Vijfhart heeft bovendien een aantrekkelijke eindejaars-kortingsactie, waardoor je wellicht behoorlijk kunt besparen op de cursuskosten.

Webinar Angular 2

imageAansluitend, op donderdag 26 november, organiseren we van 20:00-21:00 een (uiteraard gratis) webinar, waarin ik vooruitblik naar de komst van Angular 2. Dit webinar kun je thuis, achter je eigen pc volgen. Wel moet je van tevoren inschrijven – we hebben plek voor 100 deelnemers.

Inschrijven voor webinar Angular 2.

In het webinar ga ik onder meer in op de volgende onderwerpen:

  • Waarom Angular 2?
  • Angular 2 vs. Angular 1
  • Kenmerken van Angular 2
  • Live coding – een Angular 2-app maken in 30 minuten.

Na afloop van het webinar kun je de video-opname ervan downloaden en ik zal hem indien mogelijk ook via dit blog beschikbaar stellen.

Heb je nog vragen over Angular 1, Angular 2 of trainingen, aarzel dan niet om nader contact op te nemen.

Peter Kassenaar
-- 13 november 2015

10september

Van AngularJS naar Angular2 - deel 2

In een korte serie blogposts kijk ik vooruit naar de komst van Angular2, de volgende versie van het populaire JavaScript-framework AngularJS. Lees ook het eerste deel van deze serie:

Angular2 logo

Specifieke kenmerken van Angular2

In de vorige blogpost zagen we al dat Angular2 is gebouwd op moderne standaarden die nog niet beschikbaar waren toen de eerste versies van AngularJS het licht zagen. Dat is mooi, maar het betekent wel dat Angular2-projecten voor het grootste deel niet compatibel zullen zijn met bestaande AngularJS-code. Wat is er dan zoal nieuw in Angular2?

ECMAScript 2015

Angular2 zal geheel geschreven zijn in en voor ECMAScript 2015 (voorheen: ‘ECMAScript 6’). Dit is de nieuwste versie van JavaScript die in de zomer van 2015 voltooid is. Langzamerhand zullen browsers steeds meer ECMAScript 2015-kenmerken gaan ondersteunen. Deze versie brengt classes, modules en meer binnen JavaScript. Met nieuwe keywords wordt tevens het principe van generics mogelijk gemaakt in JavaScript. ECMAScript 2015 maakt meer modulaire opbouw van code mogelijk, waarbij het seperation of concerns (SoC)-principe is ingebouwd in het framework. Uiteraard kon dit ook al in AngularJS 1.x-projecten, maar dan moest u er zelf op letten.

TypeScript

TypeScript is een optionele uitbreiding van ECMAScript 2015 waarmee annotaties in JavaScript-code toegevoegd kunnen worden. Zo wordt het voor het eerst in JavaScript bijvoorbeeld mogelijk aan te geven of een parameter een string is, een array of objecten. Met TypeScript kunnen (zoals de naam al aangeeft) en types kunnen worden gedefinieerd in JavaScript die vervolgens ook daadwerkelijk door de JavaScript-compiler in de browser worden afgedwongen. Dit principe kennen we uiteraard al jaren in Java en C#, maar is een ware revolutie in een loosely typed language als JavaScript, die ook nog eens op de client (browser) draait en niet op de server.

Deze eigenschappen zijn niet verrassend overigens, want TypeScript wordt gemaakt door dezelfde Anders Hejlsberg, die ook C# ontwikkeld heeft (en nog veel langer geleden de auteur was van zowel Turbo Pascal als Delphi). Google en Microsoft werken nauw samen bij de ontwikkeling van TypeScript en Angular2.

Module Loader

In AngularJS is het niet mogelijk om ‘lazy loading’ uit te voeren met modules. Alle benodigde scriptbestanden moeten op voorhand bekend zijn en geladen worden, ook al worden ze door de klant vervolgens nooit gebruikt in de app. Er zijn wel omwegen mogelijk in de vorm van extra libraries als require.js, maar het blijft behelpen. In Angular2 is de globale module loader System.js gebruikt. Deze laadt op verzoek ECMAScript 2015-modules, of modules die andere desingprincipes aanhangen, zoals AMD of CommonJS. Alles werkt. U hoeft geen keuze meer te maken. Dit is vooral in grotere projecten uiteraard erg handig.

Componenten

In AngularJS schreef u gewoon HTML-pagina’s die verrijkt werden met ng-* directives om aan te geven dat het betreffende element door Angular behandeld werd. In Angular2 wordt dat anders. De complete app wordt opgebouwd uit componenten. En: elk onderdeel op de pagina is een component: de menubalk, de footer, het inlogformulier, het inhoudsgebied, tabellen met data, enzovoort. Componenten kunnen andere componenten laden. Elke component is als het ware een mini-applicatie die onafhankelijk kan draaien en waarin de afhankelijkheden (dependencies) van andere componenten wordt aangegeven. Via de module loader zoekt Angular de betreffende component op en wordt hij geladen in de component waarin hij nodig is. Een applicatie bestaat op die manier letterlijk uit een boomstructuur (tree) van componenten.

component-tree

Componenten zijn daarmee de vervanger van traditionele directives. Maar ook directives zelf bestaan nog in Angular2. Het verschil is dat componenten een eigen stukje user interface hebben (een view), terwijl directives in Angular2 worden toegepast op een stukje bestaand DOM. Denk bijvoorbeeld aan een tooltip-directive of animatie-directive voor een bestaand DOM-element.

Consistente schrijfwijze

Angular2 biedt voor het eerst een consistente schrijfwijze voor attributen, events en referenties in de pagina (dus eigenlijk: binnen de componenten). Dit zal veel webdesigners en Angular-veteranen afschrikken, omdat de HTML er totaal anders uit komt te zien. De bekende AngularJS-directives als ng-click, ng-bind, ng-app, ng-repeat komen allemaal te vervallen!

  • Waarden van attributen, de properties, worden nu gebonden met blokhaken (als in <div [hidden]="isHidden">).
  • Events worden gebonden met ronde haken, als in <button (click)="handleClick">.
  • Referenties naar een element worden opgegeven met een hashtag <input #firstName …>.

Dit ziet er in het begin bizar uit, maar uiteindelijk is het wel veel consistenter omdat nu aan de linkerkant van het isgelijkteken altijd de handeling wordt aangegeven.

In de oude situatie werd aan de linkerkant van de vergelijking een directive geplaatst, waarbij het framework aan de rechterkant maar moest uitvogelen wat er moet gebeuren (databinden? Waarde in de user interface schrijven? Functie aanroepen op controller?). Dit kostte erg veel performance en maakt het lastig voor tooling en testing om te reageren op AngularJS 1.x-code.

Door deze syntaxis-verandering kunnen tientallen directives vervallen en hoeven nieuwkomers in Angular2 minder dingen te leren. Maar, eerlijk is eerlijk, voor overstappers zal het lastig zijn. Meer dan lastig.

Wilt je meer weten over het hoe-en-waarom van deze designbeslissing, bekijk dan de keynote van Misko Hevery (de oorspronkelijke maker van Angular) op Ng-conf 2015 (www.youtube.com/watch?v=-dMBcqwvYA0) .

Training in Angular2

In oktober ga ik (opnieuw) naar de VS voor conferentie en training over onder meer Angular2. Vanaf medio november 2015 zal ik deze kennis gebruiken om de eerste Angular2-trainingen in Nederland en België op te gaan zetten. Neem contact op als je hier alvast meer over wilt weten.

Medio voorjaar 2016 – zo snel mogelijk na de definitieve releasedatum – schrijf ik een boek over Angular2 in de Web Development Library.

Peter Kassenaar
-- 10 september 2015

07september

Van AngularJS naar Angular2 - deel 1

Introductie

In een korte serie blogposts kijk ik vooruit naar de komst van Angular2, de volgende versie van het populaire JavaScript-framework AngularJS. Ik schreef eerder over AngularJS, bijvoorbeeld:

ng2-01

Een van de populairste frameworks voor webdevelopment de afgelopen jaren was zonder twijfel AngularJS. Waar MVC-applicaties traditioneel het domein van de server waren met .NET MVC en Java Spring als bekendste varianten, bracht AngularJS het MVC-principe naar de browser. De complete app wordt hierbij geschreven in JavaScript en uitgevoerd door de browser.

De rol van de server in dit scenario is voornamelijk nog het authenticeren van gebruikers en het ophalen en serveren van gegevens uit de achterliggende database via een API. Oneerbiedig gezegd zou je kunnen stellen dat een server in dit plaatje niets meer is dan een “JSON-fabriek” die op verzoek van de gebruiker gegevens ophoest. Hierbij chargeer ik uiteraard een beetje, maar het geeft wel aan dat een bedrijf voor dezelfde applicaties veel minder hardware nodig heeft en dus fors kan besparen op aanschaf, onderhoud en beheer van het serverpark. Of omgekeerd: met dezelfde hoeveelheid machines kunnen veel meer bezoekers worden bediend.

Waar hebben we het over? De eerste versie heet AngularJS (alles in de 1.x-codereeks), de tweede versie wordt vaak eenvoudig Angular2, of kortweg ng2 genoemd (alles in de 2.x-codereeks)

AngularJS is populair

AngularJS is dus een grote hit. Het is een van de populairste repositories op Github (een wereldwijde code-sharingdienst voor programmeurs). Ik heb sinds eind 2012 honderden cursisten opgeleid of bijgeschoold in dit framework.

Maar: Angular2 staat voor de deur. En de upgrade van AngularJS naar Angular2 zal niet zonder slag of stoot verlopen. De frameworks zijn grotendeels incompatibel met elkaar! Dit betekent dat bestaande applicaties niet, of slechts tegen aanzienlijke kosten geüpgraded kunnen worden naar Angular2.

Waarom Angular2?

Wat bezielt het Angular-team in vredesnaam? Waarom hebben ze deze moeilijke weg gekozen? Zou het niet veel makkelijker zijn geweest om na 1.4 (de huidige versie) gewoon door te gaan met 1.5, 1.6 en zo verder?

Ja, dat had zeker gekund (en terzijde: ook na het verschijnen van Angular2 zal de 1.x-stack ook onafhankelijk verder ontwikkeld blijven worden, met die al genoemde versies 1.5 en 1.6 en zo verder), maar dan had het framework niet kunnen profiteren van allerlei nieuwe ontwikkelingen in webdesignland.

Immers, er verandert veel voor de webdeveloper. Want hoewel AngularJS nog steeds te boek staat als een ‘nieuw’ framework, stamt de eerste versie alweer uit 2009. Het is dus al ruim zes jaar oud. De huidige codebase is niet geschreven met webtechnieken van nu. ECMASCript 2015, de nieuwe versie van JavaScript staat voor de deur. We kunnen straks ook in JavaScript werken met classes, modules en componenten. TypeScript (een uitbreiding bovenop ECMAScript 2015) gaat deel uitmaken van Angular2. Hiermee komt type-safety binnen het bereik van de webdeveloper. Traditioneel was dit altijd een zwak punt van JavaScript.

Angular2 is nog niet beschikbaar. Er wordt veel gesproken en geblogd over Angular2, maar laten we niet vergeten dat het framework op dit moment nog niet gereed is. Het verkeert nog in de alpha-fase. Veel online voorbeelden die je op dit moment ziet, werken allen met die specifieke versie van Angular2. Er vinden continu aanpassingen plaats. Als mogelijke releasedatum wordt gesproken over Q4-2015 tot Q2-2016.

Wildgroei in het framework

De huidige versie van AngularJS werkt goed, zonder meer. Maar er zijn ook duidelijke tekenen dat het framework is ontwikkeld zonder vooropgezet plan. Er is langzamerhand allerlei wildgroei in AngularJS geslopen: er zijn meerdere uitwerkingen voor hetzelfde concept.

  • Denk aan het probleem ‘Services vs Factories vs Providers’. Welke variant te gebruiken?
  • Er zijn constanten die eigenlijk helemaal geen constanten, of zelfs maar read-only zijn.
  • Er zijn controllers op talloze manieren, met en zonder $scope.
  • De mogelijkheid om eigen componenten te schrijven (‘directives’ in AngularJS-taal) is complex en bevat eveneens veel doublures.

En zo zijn er nog meer eigenschappen die het leren van AngularJS op zijn zachtst gezegd een hele uitdaging maken. Het is geen framework voor beginners. Angular2 streeft naar meer consistentie op een moderne en eenvoudiger te leren manier. Voor beginners wordt Angular2 sneller en eenvoudiger te leren dan AngularJS.

Bent je dan in het voordeel als je nu al een AngularJS-veteraan bent? Misschien wel, want veel concepten en uitgangspunten blijven gelijk. Maar je zal ook veel moeten afleren! Angular2 kent een volkomen nieuwe syntaxis, zowel in de logica als in de user interfacecode.

Training in Angular2

In oktober ga ik (opnieuw) naar de VS voor conferentie en training over onder meer Angular2. Vanaf medio november 2015 zal ik deze kennis gebruiken om de eerste Angular2-trainingen in Nederland en België op te gaan zetten. Neem contact op als je hier alvast meer over wilt weten.

Medio voorjaar 2016 – zo snel mogelijk na de definitieve releasedatum – schrijf ik een boek over Angular2 in de Web Development Library.

 

Peter Kassenaar
-- 7 september 2015

23januari

2015, een belangrijk boekenjaar

Met de deze week door Microsoft aangekondigde verschijning van Windows 10 (een exacte datum is nog niet bekend gemaakt, anders dan “later in the year 2015”), het uitbreiden van het aantal titels in de Web Development Library en het opzetten van een nieuwe spin-off van deze succesvolle reeks, de App Development Library is het duidelijk: 2015 zal een belangrijk boekenjaar worden.

Zodanig belangrijk zelfs, dat ik in samenspraak met mijn uitgever Van Duuren Media heb besloten om met ingang van 1 april 2015 meer tijd te gaan besteden aan het schrijven van uitgaven op deze gebieden. De roadmap is ambitieus. Op de planning staan onder meer:

  • Handboek Windows 10
  • Web Development Library – PhoneGap
  • Web Development Library – HTML5
  • Web Development Library – CSS3
  • Web Development Library – Twitter Bootstrap
  • Web Development Library – NodeJS
  • App Development Library – diverse uitgaven, waaronder Swift, Windows Universal Apps en Xamarin Apps.

Een aantal titels staan al in de steigers (auteur Peter Doolaard is bijvoorbeeld al bezig met de uitgaven over HTML5 en CSS3 en ook andere topauteurs zullen bijdragen leveren), maar veel uitgaven zullen from scratch en volgens de laatste technologische stand van zaken geschreven worden.

Minder trainingen

Omdat een dag nu eenmaal maar 24 uur heeft, betekenen deze afspraken dat ik op andere terreinen concessies zal moeten doen.

Met ingang van 1 april is er daarom minder ruimte in mijn agenda om trainingen te geven. Ik blijf absoluut beschikbaar voor alle professionele front-endtrainingen die ik de afgelopen jaren ook heb gegeven. Bestaande trainingsafspraken worden niet gewijzigd. Ik kan echter maar een beperkt aantal nieuwe projecten per maand aannemen.

Hierbij geldt een first come, first serve-beleid, maar je moet er helaas ook rekening mee houden dat ik niet alle trainingsaanvragen zal kunnen honoreren.

Voor vragen over trainingen en boeken kun je uiteraard altijd contact opnemen. Ik probeer onverminderd binnen 24 uur te reageren.

 

Peter Kassenaar
-- 23 januari 2014.

05januari

Trainingen voorjaar 2015

Na de slappe jaren 2010-2013 is vorig jaar het aantal aanvragen voor trainingen enorm gestegen. Het lijkt er op dat bedrijven zowel een scholingsachterstand van de crisisjaren aan het wegwerken zijn, alsmede zich direct specialiseren in de nieuwste technologiën.

2014 was een goed (trainings-)jaar en deze trend zet zich voorlopig voort in 2015. Zodanig zelfs dat ik al voor de kerst zo goed als volgeboekt was voor het eerste kwartaal van 2015.

De trainingen AngularJS en PhoneGap (of: Cordova) zijn daarbij het meest populair. De komende weken en maanden reis ik door Nederland en België en verzorg meerdaagse trajecten bij onder meer:

Daarnaast geef ik nog enkele trainingen in de opleidingslocaties van partners als Vijfhart (Nieuwegein) en uiteraard op mijn eigen kantoor (Dieren). En omdat ik ook nog bezig met met boeken in de Web Development Library over AngularJS en PhoneGap (met deadlines op respectievelijk 23 januari en 28 maart)  zijn januari, februari en maart van 2015 al weer voorbij.

Volgeboekt

Het is daarom helaas lastig op korte termijn nog een datum te vinden als je op dit moment een training wilt boeken. Zakelijk gezien is dat natuurlijk goed voor mij, maar ik blijf het altijd lastig vinden om ‘nee’ te moeten zeggen. Houd rekening met een langere termijn, of de mogelijkheid dat ik een vraag niet kan invullen. De (agenda-) ruimte is beperkt, er geldt een first come, first serve-beleid.

Bedankt voor je begrip!


Peter Kassenaar
-- 5 januari 2015

03november

Anglebrackets conference 2014 - Las Vegas

Evenals vorig jaar zal ik dit jaar de webconferentie Anglebrackets in Las Vegas bezoeken. Dit jaar wordt de hoofdconferentie gehouden van 10 tot en met 13 november in MGM Grand Hotel & Casino in Las Vegas.

anglebrackets conference 2014

Ook in 2013 nam ik deel aan deze conferentie en het was oorspronkelijk niet de bedoeling dat ik opnieuw zou gaan. Ik heb er superveel geleerd over onder meer AngularJS, JavaScript, CSS en Windows Azure.

Maar de closing ceremony van vorig jaar (elke conferentie in de US wordt afgesloten met een groots feest en een vaak humorische keynote) bevatte een verloting. Naast USB-kabels, muismatjes en stickers, was de hoofdprijs een gratis ticket voor de conferentie van 2014.

En wiens badge werd als winnaar uit de grote ton met aanwezigen getrokken? Juist!

Dat betekent dus dat ik dit keer alleen de vlucht- en hotelkosten zelf zou hoeven betalen. De toegang tot de conferentie ($1.795,-)  is gratis. Dat is natuurlijk een buitenkansje dat ik niet mocht laten lopen.

En dus stap ik komende zondag, 9 november, opnieuw op het vliegtuig naar de States. Via een tussenstop in Seattle (thuishaven van onder meer Microsoft, Boeing en Starbucks) vlieg ik naar Las Vegas.

Sessies die op mijn shortlist staan voor een bezoekje zijn onder meer:

    • MOVING FROM ASP.NET AND JQUERY TO ANGULAR AND WEBAPI: A CASE STUDY
    • BUILDING ANGULARJS APPS ON THE MEAN STACK
    • BUILDING CUSTOM ANGULARJS DIRECTIVES - A STEP-BY-STEP GUIDE
    • TESTING ANGULARJS WITH JASMINE, FROM SCRATCH
    • TWITTER BOOTSTRAP COMPONENTS
    • ANGULARJS PATTERNS FOR BUILDING BUSINESS APPS
    • BUILDING HTML5 PERSISTENT APPLICATIONS
    • DESIGNING FOR PERFORMANCE

En dan maar hopen dat er niet te veel overlap is tussen de verschillende sessies. Als elk jaar heeft Anglebrackets topsprekers uitgenodigd. Van de partij zijn onder meer Scott Guthrie, Scott Hanselman, John Papa en Dan Wahlin. En uiteraard Douglas Crockford.

Deze JavaScript-goeroe ontmoette ik vorig jaar ook en na zijn keynote discussieerde ik (kort) met hem over de toekomst van JavaScript en de rol van bekende webpioniers als Douglas Engelbart, Tim Berners-Lee en Marc Andreessen. Het was voor mij een van de hoogtepunten van de conferentie.

Peter Kassenaar (links) en Javascript-hero Douglas Crockford

Ik houd in ieder geval mijn Twitter-feed bij (volg @PeterKassenaar voor status-updates), maar zal proberen ook inhoudelijk te bloggen over de conferentie.

Peter Kassenaar
-- 3 november 2014.

13september

On the road…

Het najaar is altijd een drukke tijd in opleidingenland. Na de zomervakantie moeten (nieuwe) werknemers worden bijgespijkerd, of – minder hoogrdavend – de opleidingsbudgetten voor het lopende jaar moeten worden besteed.

Wat ik dit jaar overigens ook merk, is dat er duidelijk sprake is van een inhaalslag. De afgelopen jaren was er als gevolg van de economische crisis weinig budget beschikbaar voor opleidingen. Maar de ontwikkelingen hebben natuurlijk niet stilgestaan. Ik heb de indruk dat binnen veel bedrijven en organisaties dat besef nu doordringt, en werknemers nieuwe technieken moeten/mogen leren, om niet te veel achterop te raken.

Sinds het einde van de zomervakantie ben ik daarom veel onderweg. Allerlei trainingen brengen me deze weken onder meer in:

  • Gorinchem
  • Haarlem
  • Landgraaf
  • Amsterdam
  • Groningen
  • Nieuwegein
  • Utrecht
  • Mechelen (B)
  • …en Dieren natuurlijk.

Ik verzorg hier trainingen voor bedrijven als Praclox, Alliander, ING, ATOS, ROC West-Brabant en Euricom. Zo is mijn agenda tot de herfstvakantie in oktober al weer ruim gevuld. Never a dull moment.

Peter Kassenaar
-- 13 september 2014

 

14april

Wat is AngularJS? - Een introductie

Het tijdperk van de simpele website ligt inmiddels al weer enkele jaren achter ons. Websites van nu zijn complexe applicaties waarmee we hotelkamers reserveren, online bestellingen doen, e-mail lezen, agenda’s bijhouden en internetbankieren. Met de toenemende complexiteit van webapps is ook de code steeds gecompliceerder geworden.

Complexiteit

Ontwikkeltools zijn niet in gelijke mate meegegroeid met die complexiteit. Het is lastig om in een groot project alle onderdelen van elkaar te scheiden, te testen en te onderhouden. Een bibliotheek als jQuery is daar oorspronkelijk nooit voor ontworpen. Zelf JavaScript schrijven en foutloos invoegen voor alle browsers is een hele uitdaging.

In de praktijk komt het er vaak op neer dat de app wordt uitgebreid met een heel scala aan techniekjes en extra libraries voor sliders, carrousels, e-commerce en zo verder. Na een tijdje is de ooit zo cleane webapp een kerstboom van uitbreidingen en jQuery-plug-ins geworden. Vanuit beheeroogpunt is dit een kleine ramp.

Modulaire apps met AngularJS

angularjs-logoWelkom AngularJS! AngularJS is een JavaScript-framework dat geheel ontwikkeld is om tegemoet te komen aan de eisen van grote en complexe webapplicaties. AngularJS is oorspronkelijk gemaakt voor een intern project bij Google, maar inmiddels is er ook een grote open source-community actief.

In AngularJS ontwikkel je niet één grote applicatie waarin alles met alles verbonden is. In plaats daarvan maak je kleinere, gespecialiseerde modules. Deze zijn los van elkaar te ontwikkelen en te testen. Op de plekken waar ze nodig zijn in de applicatie, worden ze dynamisch ingevoegd via het principe van Dependency Injection.

Een applicatie wordt zo bijvoorbeeld verdeeld in modules voor het tonen van gegevens in een HTML-pagina (via het principe van controllers en data binding), modules voor het ophalen en cachen van gegevens van de server (met services en factories), modules voor routing, modules met constanten, een module voor in- en uitloggen in de toepassing en zo verder.

Je website of –app heeft dan één startpunt (index.html) met branding, hoofdnavigatie en meer. Hierin worden dynamisch de diverse views met functionaliteit van de applicatie geladen.

Om aan te sluiten bij onder ontwikkelaars bekende begrippen wordt AngularJS ook wel een JavaScript MVC-framework genoemd (naar het programmeerprincipe Model-View-Controller). Maar hiermee doe je de mogelijkheden van AngularJS eigenlijk te kort. AngularJS is veel meer dan dat.

De client en de server

Kenmerk van AngularJS-applicaties is wel dat de de applicatie in principe volledig in de browser draait. AngularJS is een client-sided framework. De rol van de server wordt verder teruggedrongen in vergelijking met traditionele webapps van bijvoorbeeld PHP, .NET MVC, Java of Oracle Apex.

AngularJS-toepassingen zijn in principe volledig onafhankelijk van een server. Ze worden via een API voorzien van gegevens. De server hoeft alleen maar de data te serveren waar de app om vraagt. De app zorgt zelf voor het tonen van de gegevens in HTML-templates, biedt voorzieningen voor filteren en sorteren, bewerken, enzovoort. Een AngularJS-applicatie is daarmee eenvoudig te gebruiken in de browser, op mobiele devices en op verschilende platforms. Met aanvullende tools als PhoneGap is een AngularJS-webapp desgewenst om te zetten naar een standalone app.

…maar AngularJS is wel lastig

Laten we er echter geen doekjes om winden. Het zelf realiseren van AngularJS-applicaties is een pad van vallen en opstaan. Er is ondertussen enorm veel documentatie over te vinden op internet (ik schreef eerder bijvoorbeeld een blogpost over bronnen voor AngularJS). Maar ook vaak zie je door de bomen het bos niet meer. Het is een goed idee om een training AngularJS te volgen, waarin je behalve alle losse termen ook de context leert waarin alle modules op de juiste wijze worden ingezet. Vragen als ‘Wanneer kies ik eigenlijk voor een Service en wanneer voor een Factory?’, of ‘Wat zijn best practices bij security van AngularJS-applicaties?’ worden in samenhang en met concrete voorbeelden besproken.

Als je kiest voor AngularJS als development-framework (en waarom zou  je daar eigenlijk voor kiezen? Ook dat wordt besproken), zijn er waarschijnlijk zelfs gedragingen die je moet afleren. Zo moet je bijvoorbeeld de verleiding weerstaan om voor elk probleem een jQuery-plug-in te zoeken. De meeste AngularJS-projecten kun je zelfs helemaal zonder jQuery realiseren.

Training

Volg bijvoorbeeld mijn driedaagse training AngularJS. Hierin neem ik alle ins en outs van het framework met je door, vanaf een eerste Hello World-voorbeeld tot een complete toepassing. Ook het uitwisselen van gegevens met een server wordt besproken, alsmede het werken met verschillende typen authentication. In overleg kunnen we in de training ook andere onderdelen behandelen. Denk bijvoorbeeld aan animatie met AngularJS, internationalization en localization of SEO-technieken voor AngularJS-applicaties.

Na afloop van de training kun je met een gerust hart beginnen aan het realiseren van moderne webapps met AngularJS!

Nog vragen of speciale verzoeken? Neem contact op om alles te bespreken.

-- Peter Kassenaar
14 april 2014.