Testondersteuning in frameworks voor webapplicaties

Maat: px
Weergave met pagina beginnen:

Download "Testondersteuning in frameworks voor webapplicaties"

Transcriptie

1 Testondersteuningin frameworksvoorwebapplicaties MirkovanEde( ) NijmeegsInstituutvoorInformaticaenInformatiekunde RadboudUniversiteitNijmegen Versie:1.1,11februari2009 Omvang:3ects

2 Samenvatting Frameworkszijneenveelgebruiktebasisvoorhetbouwenvaneenwebapplicatie. Omdatdezeapplicatiesooksteedsbedrijfskritischerworden,ishetvanbelangdat zijgoedgetestkunnenworden.daaromisdematewaarineenframeworkdaar ondersteuningvoorbiedteenbelangrijkgegeven. Omdaterzoveelwebframeworkszijn,isinditonderzoekgekekennaarslechtsdrie, populaire,frameworks:cakephp,djangoenrubyonrails.dezedrieraamwerken zijngeanalyseerdopdematevanondersteuningdiezijbiedenophetgebiedvan testen.desoortentestsdieindezeanalysezijnonderzochtzijneenverzameling vandemeestessentiëlesoortenblack ofgrayboxtestsdieuitgevoerdkunnen worden. Alleframeworksbiedeninruimemateondersteuningvoordezelfdesoortentests. Zowelmodel basedtestingalscapture and playbacktestswordendoorgeenenkel frameworkondersteunt.degrootsteverschillentredenopbijdemogelijkhedentot analyserenvandeoutputdienaardebrowsergaat.daarbijhebbencakephpen RubyonRailseenvoorsprongopDjango. 2

3 Inhoudsopgave Testondersteuninginframeworksvoorwebapplicaties... 1 Samenvatting... 2 Inhoudsopgave... 3 H1.Inleiding... 4 Inleiding...4 Documentstructuur...4 H2.Probleemstellingenrelevantie... 5 Kwaliteitvansoftware...5 Manierenvantesten...5 Frameworksvoorwebapplicaties...6 Onderzoeksvraagendeelvragen...7 H3.Typesoftwaretests... 8 Inleiding...8 Inventarisatie...8 Conclusie...10 H4.Frameworksvoorwebapplicaties...11 Inleiding...11 CakePHP...11 RubyonRails...13 Django...15 Features...16 Conclusie...17 H5.Vergelijkingoptestondersteuningvandeframeworks...18 Inleiding...18 Testondersteuning...18 Toelichtingopderesultaattabel...19 Conclusie...24 H6.Conclusie...26 Conclusie...26 Reflectieenaanbevelingen...26 H7.Bibliografie

4 H1. Inleiding Inleiding Ominzichttegevenwaaromditonderzoekwordtuitgevoerdenwathetbelang ervanis,beschrijftdithoofdstukhetprojectkadervandezebachelorthesis. Testeniseenbelangrijkonderdeelvanallemodernesoftware ontwikkelingsmethodesenhetbelangervanwordtdooriedereenwordt onderschreven,hoewelhetechterookeenonderdeelisdatervaak,vanwegetijd ofgeldgebrekalseerstebijinschiet. Eenanderbekendfenomeenisdatwebapplicaties,applicatiesdieviahetinternet gebruiktworden,steedsgroter,complexerenookbedrijfskritischerworden.dat betekentdusdathetvansteedsgroterbelangwordtomdezeapplicatiesop grondigeengestructureerdewijzetetesten. Omdatbijhetbouwenvandezewebapplicaties,zekerwanneerhetgroteen complexeapplicatiesbetreft,bijnaaltijdframeworkswordeningezet,ishetdusvan belangdatdezeframeworksondersteuningbiedenvoorhettestenvandecodeen programmatuurdiehieringemaaktworden. Ditonderzoekzaldaaromkijkennaardetestondersteuningdiedergelijke frameworksvoorwebapplicatiesbieden. Documentstructuur Inheteerstehoofdstukvandezescriptiezalhetprobleemuitdedoekenworden gedaanenaangegevenwordenwatderelevantievanhetprobleemis.daaruitzal deonderzoeksvraagvolgenendedeelvragendienodigzijnomdeze onderzoeksvraagtebeantwoorden. Dehoofdstukken3,4en5zullenvervolgensderesultatentonendieresulterenuit hetonderzoeknaardedrieopgesteldedeelvragen.daarnaastzalperhoofdstuk eenkleineconclusieoverdedeelvraagwordengetrokken,alsmedeeenstukje reflectieopderesultaten. Hetlaatstehoofdstukbevatvervolgensdeconclusievanditonderzoek,waarmee deonderzoeksvraagbeantwoordis.ookzalindithoofdstukkortworden aangegevenofenwelkvervolgonderzoekereventueelgedaankanworden. 4

5 H2. Probleemstellingenrelevantie Kwaliteitvansoftware Nietalleenistesteneenonderdeelvanallerecentesoftewareontwikkelingsmethodes,inspeciaalvoorsoftwareopgesteldekwaliteitsmodellen neemtheteenbelangrijkeplaatsin.demodellenvanmccall(cavano & McCall, 1978),origineelopgesteldvoordeUSAirforceenbedoeldomtebemiddelentussen ontwikkelaarsengebruikers,enboehm(boehm, Brown, & Kaspar, 1978)zijn algemeengeaccepteerdenzienrespectievelijkeralsvolgtuit (Woolderink, 2007): Afbeelding1:KwaliteitsmodelvanMcCall(links)enBoehm Zoalstezien,ruimenbeidemodelleneenaparteplekinvoordetestabilityvande softwareenonderkendendaarmee,allanggeleden,hetbelangvantestenvoorde kwaliteitvansoftware.ookhet modernere,deeersteversiestamtuit1991,de meestrecenteuit2001,standaardkwaliteitsmodelvoorsoftware,iso9126(iso, 2001),datisgebaseerdopdemodellenvanMcCallenBoehmenaangepastaande behoeftesenervaringenmetdiemodellen,laatziendathettestenvansoftware eenbelangrijkeplaatsinneemtomtekomentoteenkwaliteitsproduct. Manierenvantesten Erzijnveelaspectenwaaropsoftwaregetestkanworden:hoesnelishetsysteem (performance),hoeintensiefkanhetgebruiktworden(stress),hoegaathet systeemommetonverwachtgedragzoalsverkeerdeinputvangebruikers (robustness),hoeveiligishetsysteem(security),etcetera.waarweindezescriptie naarzullenkijken,ishetfunctioneeltesten,waarbijergetestwordtofhet programmavoldoetaandefunctioneleeisendieerzijnopgesteld,ookwel conformancetestinggenoemd. 5

6 Jekuntonderscheidmakentussenverschillendemanierenvantesten.Allereerstis erhetverschiltussenstatischendynamischtesten.statischtestenwordtgedaan zonderdecodedaadwerkelijkuittevoeren,zoalsbijvoorbeeldeencompilerdoet. Bijdynamischetestenwordtdeprogrammacodeweluitgevoerd.Tijdensdeze scriptiezullenwealleenkijkennaardeondersteuningvoordynamischtesten. Eenanderveelgemaaktonderscheidishetverschiltussenwhiteboxenblackbox testen.bijblackboxtestenwordthettetestenobjectgezienalseenzwartedoos, waarietsingaatenweeruitkomt.bijwhiteboxtestenheeftmendebeschikking overdeprogrammacodeengebruiktmendieomtetesten.erzijnnatuurlijkvele combinatiesmogelijk,greyboxtestengenoemd,bijvoorbeeldwanneermenweet uitwelkemoduleseensysteemisopgebouwd,maardemodulesweleenblackbox zijn. Samenvattendzullenwehetindezescriptiealleenhebbenoverdynamischblack engreyboxtesten. Frameworksvoorwebapplicaties Eenanderbekendfenomeenisdatertegenwoordigmeerenmeer,vaak bedrijfskritische,applicatieswordenontwikkelddievolledigwebbasedzijn. PopulairetalenvoorditsoortapplicatieszijnonderandereJava,Microsoft s.net talen,python,rubyenphp. Vanwegedegroteverscheidenheidaantalenbeschikbaarzijnvoorwebapplicaties, zullenwedescopebeperkentotdeopensourcetalenphp,ruby,eneventueel PythonenJava. Vooraldezetalenzijnbestaanframeworks,diehetdeontwikkelaarmakkelijker maken,zorgenvoorgestructureerde,gelaagdecodeendaaromveelgebruikt wordenbijhetontwikkelenvanwebapplicaties.bekendeframeworkszijn bijvoorbeeldrubyonrailsvoorruby,djangovoorpython,strutsenspringvoor JavaenSymphony,,hetZendframeworkenCakePHPvoorPHP. Vanwegedebeperkteomvangvanditonderzoekenhetgroteaantalframeworks datervoorsommigetalenbeschikbaaris,zullenwetweeraamwerkenbekijken. AllereerstisdatCakePHP,zoalsdenaamaldoetvermoedenisditeenPHP frameworkenwekiezendezeomdatphpeenzeerpopulairetaalisvoor webapplicatiesencakephpdaarbinnenéénvandegrotereframeworksis.het tweedeframeworkdatwezullenbekijkenisrubyonrails,voorde programmeertaalrubyentevensergpopulair. Omdatwebapplicatiesgroter,bedrijfkritischencomplexerworden,ishetvan grootbelangdatdezecodevanhogekwaliteitenduseengoedtestbaaris.veelvan dezeframeworkshebbeninmeerofminderemateondersteuningingebouwdvoor hetontwerpenenuitvoerenvantests.devraagisofdezespecifieke testondersteuningzorgtvoorgoedetestsvansoftwarediegeschrevenisindeze frameworks.deconcretevraagstellingdiewekunnenformulerenis: 6

7 Welkeondersteuningvoortestenbiedendeveelgebruikteframeworksvoor webapplicaties? Onderzoeksvraagendeelvragen Omdeonderzoeksvraagtekunnenbeantwoorden,isdevolgendekennisnodig: A. Watvoortypetestskunnenweonderscheidenbinnendeaangegeven criteria? B. Hoezijndegeselecteerdeframeworksopgebouwd? C. Welkevandesoortentestswordendoordegeselecteerdeframeworks ondersteund? OnderzoeknaarhetantwoordopdeelvraagAzalgedaanwordendoormiddelvan literatuuronderzoek. HetantwoordopdeelvraagBzalgeschiedendoormiddelvanliteratuuronderzoek. HetantwoordopdeelvraagCzalwordendeelsgezochtmoetenwordenin documentatieendeelsdoorhetmakenvanvoorbeeldendielatenzienhoedeeisen enrandvoorwaarden,zoalsgevondenbijdeelvraaga,geïmplementeerdkunnen worden. Hetcombinerenvandeantwoordenopdedeelvragenverschaftonsvervolgens eeninzichtindematevantestondersteuningvandezeframeworks. 7

8 H3. Typesoftwaretests Inleiding Dithoofdstukbeschrijfteeninventarisatievanmogelijkesoortentestsdiede frameworkszoudenkunnenondersteunen,binnendekadersdiegesteldzijnin hoofdstuk2.vanelketypetestzaleenkorteomschrijvingwordengegeven. Dezeinventarisatieistotstandgekomendoormiddelvaneenliteratuuronderzoek enhetnagaanvanbestpracticesophetgebiedvansoftwareontwikkelingmet behulpvanwebframeworks.delijstmetsoortentestsdiedithoofdstukoplevert, zalwordengebruiktvoorhetvergelijkenvandetestondersteuningvande geselecteerdeframeworks. Inventarisatie Handmatigtesten Hetsysteemondersteunthethandmatiguitvoerenvantests,bijvoorbeeldviade commandline. Captureandplayback Hettestsysteemonthouddehandmatiguitgevoerdetestsenkandieopeenlater herhalen. Codecoverageanalyse Alhoewelditgeenblackboxtestis,isdecodecoverageanalyseeenveelgebruikte testentevenseenindicatieofdeopgesteldetestsuitedecodedekt. Doctests Testcasesdieindedocumentatiewordengeschrevenvaneenmethodeoffunctie. Dezekunnendangeautomatiseerdallemaaluitgevoerdworden.Hiermeekandus uitsluitenddewerkingvandefunctieopzichwordengetest,nietdeinteractiemet anderemethodesbinnendeunit. Geautomatiseerdeunittests Unittestswordengebaseerdopvantevorenvastgesteldeinput,eventueel ondersteuntdoorzogenaamdefixtures.daarnakunnenzegeautomatiseerd, uitgevoerdworden.unittestswordenuitgevoerdophetniveauvanhetmodel. Verderishetinteressantwelkeoptiesergebodenwordenomdezeunittestsinte richten: Fixtures;herbruikaredefinitiesvandetestdata,waardoordezedoor meerderetestgebruiktkanworden. Mockobjects;hetsimulerenvanobjectenwaarhettetestenobjectvan afhankelijkis. 8

9 Geautomatiseerdefunctioneletests Ookfunctioneletestsmakenmeestalgebruikvanfixtures.Integenstellingtotde unittest,wordthierechternietslechtséénmodelgetest,maareencompleet requestuitgevoerdomtezienofdathetverwachteresultaatoplevert. Binnendefunctioneletests,zullenwekijkennaardevolgendeopties: Databasewijzigingen;ishetmogelijkomnahetuitvoerenvaneen functioneletestteanalyserenoferwijzigingenindedatabasezijn aangebracht? HTTPHeaders;ishetmogelijkdeHTPPheadersteanalyseren? Viewvariabelen/objecten;omdatwehethierhebbenovertestsop controller niveau,ishetmogelijkomtezienwelkedataeraandeview doorgegevenwordt? Authenticatie;kandetestzichauthenticerenalseenbepaaldegebruiker tijdenshetuitvoerenvandetest? Webtests Omdatweinditonderzoekspecifiekkijkennaarframeworksvoorwebapplicaties, ishetookinteressantomtezienoferspecifiekeondersteuningwordtgeboden voorditplatform.wezullendevolgendeoptiesonderscheiden: GETrequests;hetsimulerenvanHTTPGETrequests. POSTrequests;hetsimulerenvanHTTPPOSTrequests,onderandere bruikbaarvoorhettestenvanformulieren. Bestandsuploads:simulerenvanbestandsuploads. HTTPHeaders;ishetmogelijkdeHTPPheadersteanalyseren? HTTPredirects:kunnenHTTP redirectsgevolgdworden? Viewvariabelen/objecten;ishetmogelijkomtezienwelkedataervande controlleraandeviewisdoorgegeven? Outputtest:controlerenofdeHTMLoutputis,zoalsverwachtwerd, eventueelgecombineerdmeteenparseromtezienofdeoutputgeldige (X)HTMLoplevert. Cookieondersteuning:hetcorrectafhandelenvandecookieszoalsdiedoor deapplicatiegebruiktworden. Interface/inbrowsertests Geautomatiseerdtestenvandeinterfacemiddelsdebrowser,volgenshetcapture andplaybackprincipe,zodatdetestsherhaaldkunnenworden.daarbijkunnenwe kijkenofdezetestsbrowseronafhankelijkzijn,ietswatmetnamebijdeinterface vaneenwebapplicatienogaleenstruikelpuntkanzijn. Model basedtesting Hetvolledigkunnenspecificerenvanhetgedragvandewebapplicatie,zodathet testsysteemautomatischzijneigentestcaseskanafleidenomdeapplicatievolledig tetesten. 9

10 Conclusie Dithoofdstukheefteenlijstopgeleverdmetbasisoptiesdieeenframeworkkan ondersteunenophetgebiedvanhettestenvandecodeenbeantwoorddaarmee deelvraaga: Watvoortypetestskunnenweonderscheidenbinnendeaangegeven criteria? Dezeoptiesvoldoenallemaalaandeeisenzoalswedieeraangesteldhebbenin hoofdstuk2,namelijkdathetdynamisch,grey enblackboxtestenzijn.erzijnnog welmeeroptiestebedenkendieeenframeworkookkanondersteunenenhetis eensubjectiefoordeelofeenbepaaldeoptieeenstandaardoptiebehoorttezijn.ik denkechterdatdezelijstvrijcompleetis,enhetontbrekenvanbepaaldeoptiesin dezelijstzalookgeenfundamenteelverschilmakenvoorhetvervolgvanhet onderzoek.eventueelvervolgonderzoekkanmeeroptiesmeenemeninhet eindoordeel. 10

11 H4. Frameworksvoorwebapplicaties Inleiding Dithoofdstukbeschrijftdeselectievanframeworksdiewezullengebruikeninde restvanditonderzoek.vandegeselecteerderaamwerkenzaleenkorte beschrijvingwordengegeven,waarbijergekekenwordtnaardealgemene werkingvanhetframeworkaangevuldmeteenkortoverzichtvandefeaturesdie hetframeworkbiedt.hiermeewordtzaldeelvraagbbeantwoordworden: Hoezijndegeselecteerdeframeworksopgebouwd? CakePHP CakePHPiseenobject georiënteerd,opensourcerapid developmentframework(cake, 2001)geschreveninenvoor degeïnterpreteerde,imperatieveprogrammeertaalphp (PHPGroup).CakePHPisgestoeldophetdesignpattern Model View Controller(kortwegMVC,datgeïntroduceerd werddoorsmalltalk)endwingtdeontwikkelaarsomhun applicatieoptedelenindriedelen.dezedriedelenhebben elkhuneigenverantwoordelijkheden: Hetmodel;representeertdedatawaaropdeapplicatiewerkt.Tussendemodels kunnenverschillendetyperelatiesbestaan.typischwordtdezedatauiteindelijk opgeslagenineendatabase.hetmodelbevatdebusinesslogicavandeapplicatieen opslagenbewerkenvandedataverlooptviademodels. Deview;verzorgtdepresentatievandedata.Voorwebapplicatieszijndatmeestal webpagina s,maaraanandererepresentaties,zoalsxmlofeenpdf document, valtooktedenken.deviewdoetgeenbewerkingenopdedata. Decontroller,verwerktdebinnenkomendeverzoeken(events).Dezezijnmeestal afkomstigvanhandelingenvandegebruikers,maarzoudenevenzogoedop anderemanieren(bijvoorbeeldviaeensoapinterface)binnenkunnenkomen.de controllervoertookapplicatie logicauit,zoalsbijvoorbeelddeautorisatie.een typischmvc requestzieteralsvolguit(cake, 2001): 11

12 Afbeelding2:MVCrequest 1. Vanafdeclientkomtereenverzoek 2. DeCakePHPdispatcherbekijkthetverzoekenstuurthetdoornaarde correctecontroller. 3. Decontrollervoertzijntakenuit,bijvoorbeeldauthentificatieenautorisatie vandegebruikerdiehetverzoekdoet.daarnastuurthijopdrachten (bijvoorbeeldverwijderenofaanpassendata)ofverzoekennaarde benodigdemodels. 4. Hetmodelgeeftdataterug 5. Decontrollerstuurtalledatanaardeview 6. Deviewgebruiktdezedataomdeoutputoptebouwenenstuurtdeinhoud terugnaardeclient. Features HieronderstaateenlijstmetfeaturesdiehetCakePHPframeworkbiedt,zoals beschrevenstaatopdewebsitevanhetproject(cake, 2001): 1. CompatibelmetPHP4enPHP5 2. GeïntegreerdeCRUD(create,read,updateendelete)voordatabase interactie 3. Applicatiescaffolding,hetautomatischverwerkenvanstandaardverzoeken, opbasisvandegedefinieerdedatabasetabellen.bedoeltalstijdelijke,snelle start. 4. Codegenereren,hetautomatischgenererenvandebasisvandeapplicatie, opbasisvandegedefinieerdedatabasetabellen. 5. Vriendelijke(mensenzoekmachine)URL'senaangepasteroutes 6. Ingebouwdevalidatie,validatievaningevoerdegegevens,opbasisvanhet model. 7. ViewHelpersvoorAJAX,JavaScript,HTML formulieren,zorgtervoordat nietallehtmlcodehandmatiguitgewerkthoeftteworden. 8. Componenten,gedeeldeuitbreidingenopdecontrollers,Standaard componentenals ,cookie,security,session,enrequest. 12

13 9. Behaviors,gedeeldeuitbreidingenopdemodels. 10. Flexibeltoegangsbeheer(ACL,accesscontrollists) 11. FlexibeleCaching,opniveauvanmodelsenviews. 12. Localisatie,hetframeworkbiedtondersteuningvoormultilingual applicaties. EenstandaardCakePHP requestisdoordemogelijkheidvanrouting(punt5), behaviors,componentenendemogelijkheidomanderedatabronnendanslechts dedatabasetegebruiken,ietsuitgebreiderdanhethierbovenbeschreven standaardmvc request.(cake, 2001) Afbeelding3TypischCakePHPrequestafhandeling RubyonRails RubyonRailsiseenMVCframework,geschreveninenvoorde programmeertaalruby.detaalrubyiseengeïnterpreteerde,puur object georiënteerdetaaldie,aldusdekenners,erglijktop Smalltalk.DetaalRubystamtuit1995(Matsumoto, 1995)enis, zoalsgezegdpuurobject georiënteerd. 5.times { print "We *love* Ruby -- it's outrageous!" } Codevoorbeeld:AllesiseenobjectinRuby,zelfsprimitievetypen 13

14 HetframeworkRubyonRails(RoR)stamtuit2003(RoR, 2003)engebruiktevenals CakePHPhetModel View Controllerpatroon.Descheidingindriedelenwerkt identiekalshierbovenbeschrevenbijcakephp.rorkomt,integenstellingtot CakePHP,meteeneigenwebserver,Webrick,maarkanookgebruiktwordenmet anderewebserversalsapache. EentypischRoRrequestzieteralsvolgtuit(RoR, 2003): Afbeelding4.RubyonRailsarchitectuur QuaarchitectuurlijktRoRdusergveelopCakePHPenhethandeltopvrijwel dezelfdemanierverzoekenaf. Features OokquafeatureslijkenRoRenCakePHPergopelkaar.Opzichisdatookniet verwonderlijk,alsjebedenktdatcakephpineersteinstantienaarvoorbeeldvan RoRisgebouwd.DevolgendestandaardfeaturesmakendeeluitvanRoR 1. Eigenwebserver,Webrick 2. GeïntegreerdeCRUD(create,read,updateendelete)voordatabase interactie 3. Applicatiescaffolding,hetautomatischverwerkenvanstandaardverzoeken, opbasisvandegedefinieerdedatabasetabellen.bedoeltalstijdelijke,snelle start. 14

15 4. Codegenereren,hetautomatischgenererenvandebasisvandeapplicatie, opbasisvandegedefinieerdedatabasetabellen. 5. Vriendelijke(mensenzoekmachine)URL'senaangepasteroutes 6. Ingebouwdevalidatie,validatievaningevoerdegegevens,opbasisvanhet model. 7. ViewHelpersvoorAJAX,JavaScript,HTML formulieren,zorgtervoordat nietallehtmlcodehandmatiguitgewerkthoeftteworden. 8. Partials;hergebruikvandelenvanandereviews 9. Standaardondersteuningvoor ,cookies,authorisatie 10. Flexibeltoegangsbeheer(ACL,accesscontrollists) 11. FlexibeleCaching,opniveauvanmodelsenviews. 12. Localisatie,hetframeworkbiedtondersteuningvoormultilingual applicaties. 13. Requestprofiler;nagaanwaarinhetafwerkenvaneenrequestdoorhet frameworkdebottleneckzit. Django Djangoiseenwebframeworkgeschrevenvooreninde programmeertaalpython(python, 1991).DetaalPython stamtuithetbeginvandejarennegentigenis ontworpendoordenederlanderguidevanrossum. HetprojectDjangoisontstaanin2005enisgebaseerd ophetmvcdesignpatternwathierbovenreedsis uitgelegd.daarbijhanteertdjangoweleenanderebenaming:watinmvcde controllerheet,heetindjangodeviewenwatinmvcdeviewisgenoemd,noemt Djangodetemplate.Hetideehierachteris,isdatdeviewdedatabeschijftdie getoondwordtaandegebruiker,maarniethoediedataerdanuitziet.detemplate bepaaltdanhoededataeruiteindelijkuitkomttezien.jezouhetframeworkdan alseenmtvframeworkaankunnenduiden. DemanierwaaropDjangoeenrequestverwerkt,zieterschematischalsvolgtuit: (Holovaty & Kaplan-Moss, 2007) 15

16 Afbeelding5RequestverwerkingvanDjango DitzieterietsandersuitdehetschemavanCakePHPenRoRenbehoeftwatuitleg. WaneerereenHTTP requestbinnenkomt,wordtditdoorhetframework verwerkttoteenhttprequestobject.viadeurlconfwordthiernadejuisteview aangesproken,dieditverzoekverderafdienttehandelen.wanneerereenfout optreedt,wordtditdoordeexceptionhandleropgepakt,enuiteindelijkgaatalles viaeentemplatelangsderedsponsemiddlewareterugnaardeclient. InfeitelijktditdusergophetMVCpatroonvandeanderetweeframeworks,maar iseenenanderwatandersbenoemd. Features HieronderstaateenlijstvandemeestopvallendefeaturesdieDjangobiedt: Uitgebreideondersteuningvoorformulierverwerkingenvalidatie Standaardbeheer interface,dieautomatischbeschikbaariszondercode daarvoortehoevenmaken Standaardauthenticatiesysteem Eigentemplatesysteem,gebaseerdopovererving 16

17 Templatesyssteenisvoorzienvantagsenfiltersomeenvoudighetuiterlijk vandeoutputtebepalen. Ondersteuningvoorcookies StandaardCRUDondersteuning Vriendelijke(mensenzoekmachine)URL'senaangepasteroutes Caching Ondersteuningvoormeertaligeapplicaties Securityondersteuning Conclusie Dithoofdstukbiedteenbeschrijvingvanalleframeworksdievergelekenzullen wordeninhetvervolgvanditonderzoek.daarbijzijnuiteraardnietalledetails besproken,datisnatuurlijknietmogelijk,maareriseengoedbeeldontstaanover hoedezeframeworksinelkaarsteken.daarmeeisdetweededeelvraag beantwoord. 17

18 H5. Vergelijkingoptestondersteuningvandeframeworks Inleiding Dithoofdstukbeschouwtdeondersteuningdiedeframeworks,zoalswedie geïntroduceerdhebbeninhoofdstuk4,biedenaandeverschillendesoortentests dieinhoofdstuk3staanbeschrevenenbeantwoordhiermeedederdedeelvraag zoalsdieisopgesteldinheteerstehoofdstuk.deresultatenzullenallereerstin tabelvormgepresenteerdworden,waarnadeopvallendeverschillen,of onderdelendiedatbehoeven,toegelichtzullenworden. Testondersteuning Onderstaandetabelgeefteenoverzichtvanwelkesoortentestsondersteunt wordenperframework.hierbijisinitieelalleengekekennaardeondersteuning diedeframeworks out of the box bieden,maarvanwegedemodulaireopzetvan sommigeframeworksiservoorgekozenomtevermeldenwanneereenbepaalde featuremiddelseenenkelepluginondersteuntwordt. Typetest CakePHP Django RubyonRails Handmatigtesten Captureandplayback Codecoverageanalyse ++ * * Doctests ++ * Unittests Fixtures Objectmocking ++ * ++ Functioneletests Databasewijzigingen HTTPredirects + ++ Viewvariabelen/objecten Authenticatie Webtests GETrequests POSTrequests Fileuploads HTTPHeaders HTTPredirects + ++ Viewvariabelen/objecten

19 Cookies Outputtests Interface/inbrowsertests ** * * Model basedtesting +:biedtenigeondersteuning,++:biedtruimeondersteuning,*:biedtondersteuningmiddelsplugin Toelichtingopderesultaattabel Dezeparagraafbespreektdeopvallendeverschillenenonderdelendietoelichting behoevenuitderesultaattabeldiehierbovenbeschrevenstaat.daarbijdient allereerstopgemerkttewordendatdemaniervantestenvancakephpenrubyon Railsgoedmetelkaarvergelijkbaarzijn,omdatzedezelfdeindelingentypetests kennen,watookteverklarenisaangeziendeopbouwvandebeideframeworks sterkegelijkenisvertoond.djangoechterkenttweesoortentests:standaard unittests,dieeigenlijkdirectuitpythonkomen,entestsdiegebruikmakenvan Django sclientklasse.dielaatstebevatinfeitedemogelijkhedendiebijcakephp enrorverdeeldzijnoverdefunctioneletestsendewebtests. Handmatigtestenencaptureandplaybacktest Geenvanalleframeworksbiedtondersteuningvanhethandmatig,bijvoorbeeldvia decommandlineinterface,uitvoerenvanbepaaldetests.daarmeeisde ondersteuningvancaptureandplaybackvandezetestsnatuurlijkookonmogelijk. Alleframeworksgaanuitvanhetuitvoerenvantestsineenscript. Doctests AlleenDjangobiedtstandaardondersteuningvoordezogenaamdedoctests.RoR kanwelwordenuitgerustwordenomditteondersteunen,doorhetgebruikenvan eenplugin.omeenbeeldtevormen,eendoctestindjangozieteralsvolgtuit: def get_elem(a_list, index): """ >>> a = ['John', 'Sjaak', 'Piet'] >>> my_func(a, 0) 'John' >>> my_func(a, 1) 'Sjaak' """ return a_list[index] Codevoorbeeld1:doctestinDjango Unittests Alleonderzochteframeworksbiedeneenruimeondersteuningvoorhetuitvoeren vanunittests.daarbijbiedenookalledriedeframeworksdemogelijkheidtothet gebruikvanfixtures,ietswatbijzonderhandig,bijnanoodzakelijk,isvoorhet efficiëntopstellenvandetests.hetisdaarbijwelinteressantomvoorelk 19

20 frameworkeensimpeleunittesttelatenzien,zodatdeverschillenen overeenkomstenzichtbaarworden.wegaandaarbijuitvaneensimpelmodel genaamdcar,waarbijeenautoeenbepaaldekleurkanheeft. class CarTest extends Car { var $name = 'CarTest'; var $usedbconfig = 'test_suite'; } class CarTestCase extends CakeTestCase { var $fixtures = array( 'car_test' ); function testcolor() { $this->cartest =& new CarTest(); } } $result = $this->cartest->color("ferrari"); $this->assertequal($result, 'red'); Codevoorbeeld2:unittestinCakePHP import unittest from myapp.models import Car class CarTestCase(unittest.TestCase): def setup(self): self.ferrari = Car.objects.create(name="Ferrari", color="red") def testcolor(self): self.assertequals(self.ferrari.color(), 'red') require 'test_helper' Codevoorbeeld3:unittestinDjango class CarTest < ActiveSupport::TestCase fixtures :cars def test_color color = Car.color('Ferrari') assert_equal color, 'red' end end Codevoorbeeld4:unittestinRubyonRails 20

21 Zoalstezienis,losvandeverschillendetaalconstructies,zijnditsoortsimpele testsinalleframeworksopvergelijkbaremanieroptezetten.detestvandjango gebruikt,terdemonstratie,geenfixtureszoalsdeanderetweewel,maarheeftook diemogelijkheidendatgeldtandersomook. Objectmocking Eenanderopvallendpuntinonzevergelijkingisobjectmocking.Ditwordt gebruiktomafhankelijkhedenbijhettestentereducerenendaarvoorbieden zowelroralscakephpondersteuning.bijobjectmockingwordtereennieuwe klassegemaaktvaneenbepaaldereferentieklasse,waarbijallebestaande methodesnogbestaan,maardezezijnallemaalleeg.beideframeworkshebbenook nogeensdemogelijkheidtotzogenaamdpartialmocking,zodathetmogelijkisom sommigemethodeswelinoorspronkelijkestaattehouden.djangoondersteunt objectmockingnietstandaard,maarkanmiddelseenpluginhierweltoeuitgerust worden. Functioneletests Zoalsaleerderopgemerkt,scharenCakePHPenRoRhettestenvandecontrollers onderdefunctioneletests.detestdiedaarbijuitgevoerdwordt,betreftdusnieteen simulatievaneenhttprequest.djangokentdezemaniervantestenniet,views (watdecontrollerswordengenoemdindeanderetweeframeworks)entemplates wordengetestmiddelssimulatievanhttprequests. Fileuploads Eenbelangrijkonderdeelbijhettestenvanwebformulieren,ishetkunnentesten vanformulierenwaarbijhetuploadenvaneenbestandeneenrolspeelt.ditiseen situatiediebijwebapplicatiesnatuurlijknietongewoonisendaaromookgetest zoumoetenkunnenworden.cakephpbiedthieralsenigeframeworkgeen ondersteuningvoor,hoewelhetwelinderoadmapvoortoekomstigereleases staatopgenomen. HTTPRedirects EencontrollertestdiedetecteertwelkeHTTP headersdecontrollerterugstuurt,is inrubyonrailswelmogelijk,maarnietincakephp.wileendergelijketestgedaan wordenincakephp,danishetwelmogelijkomdaareenworkaroundvoorte maken.omdittedemonstrerenstaathierondereersteenvoorbeeldvaneen dergelijketestinrorenvervolgensincakephp. def test_should_create_post assert_difference('post.count') do post :create, :post => { :title => 'Hello', :body => 'This is my first post.'} end assert_redirected_to(:controller => "posts", :action => "index") assert_equal 'Post was successfully created.', 21

22 end flash[:notice] Codevoorbeeld5:FunctioneletestinRubyonRails class TestPostsController extends PostsController { var $name = 'Posts'; function redirect($url, $status = null, $exit = true) { $this->redirecturl = $url; } } function _stop($status = 0) { $this->stopped = $status; } class PostsControllerTestCase extends CakeTestCase { function construct() { $this->posts = new TestPostsController(); } function testcreate() { $beforecount = $this->posts->post->find('count'); $this->posts->data = array( 'Post' => array( 'title' => 'Hello', 'body' => 'This is a test post!', ) ); $this->posts->add(); $aftercount = $this->posts->post->find('count'); $this->assertequal($beforecount+1,$aftercount); $this->assertequal($this->posts->session-> read('message.flash.message'), 'Post was successfully created.'); } $this->assertequal($this->posts->redirecturl, array('action' => 'index')); } Codevoorbeeld6:FunctioneletestinCakePHP Zoalsuitditvoorbeeldblijkt,isdetestinRubyonRailseenstuksimpelerdandiein CakePHP.DitverschilkomtvoornamelijkomdatinCakePHPbepaaldemethodes vandecontrolleroverschrevenmoetenwordenomzegoedtekunnentesten.in 22

23 RoRisdatnietnodigenzitdieondersteuningzonderextramoeitedirect ingebakken. Djangobiedtookdergelijkeondersteuning.Zoalsalopgemerkt,zitdeze functionaliteitbijditframeworkopeenwatandereplaats,maartochiseen vergelijkbaretestmogelijk: from django.test import * import doctest class ViewTests(TestCase): def runtest(self): c = Client() response = c.post('/posts/add',{'title': 'Test title', 'message': 'This is the actual post'}) self.assertredirects(response, '/posts/') self.assertequal(self.response.context['flash'] ['message'], 'Post was successfully created.') Codevoorbeeld7:webtestinDjango Outputtests Totslotkijkenwenognaardeondersteuningdiedeframeworksbiedenophet gebiedvanoutput analyse,ietswatbijwebframeworkseenbelangrijkissueis. HierkunnenweconcluderendatCakePHPenRubyonRailshiereenuitgebreide ondersteuningvoorbeiden.omdeverschillenenovereenkomstente demonstrerenzettenwenogmaalseenvergelijkbaretestopvooralleframeworks. class mytestwebtestcase extends CakeWebTestCase { function testhomepage() { $result = $this->get('/pages/home'); $this->assertresponse(200); $this->asserttext('lorem ipsum dolor sit amet.'); $this->asserttitle('foobar :: Home'); }} $this->assertelementsbyselector( ul#navigation > li', array('menu item 1', Menu item 2 ) ); Codevoorbeeld8:outputtestinCakePHP def test_should_show_post get "/pages/home" assert_response :success 23

24 # Assert_select zeer krachtig assert_select 'title', 'Foobar :: Home' assert_select 'ul.navigation' do... end end Codevoorbeeld9:outputtestinRubyonRails def test_home(self): response = self.client.get('/pages/home') self.assertequal(response.status_code, 200) # Zijn er 5 newsitems aan de template gestuurd? self. assertequal(len(response.context['newsitems']), 5) self.assertequal(response.template[0].name, 'home.html') Codevoorbeeld10:outputtestinDjango Eenaantalverschillenisdemoeitewaardomeventebelichten.Zoalstezienvalt, biedenrorencakephpdemogelijkheidomdeoutput,watmeestalhtmlis, vergaandteanalyseren.djangokanwelzienoferbijvoorbeeldeenbepaaldestring indeoutputzit,maarkandehtml structuurnietanalyseren. Djangoheeftweldemogelijkheidomtezienwelkevariabelendeviewheeft doorgegevenaandetemplate.ookrubyonrailsheeftdieoptie,maarmetcakephp valtdatalleentetestenmeteenfunctioneletest. In browsertests Alleframeworkshebbeneensterretjebijin browsertests,omdatertoolszijndie ditonafhankelijkvanhetframeworkkunnedoen.eenvoorbeeldvaneen dergelijketoolisselenium(seleniumhq).helaasisdienietbrowseronafhankelijk, ietswatbijwebpagina sweleenbelangrijkpuntis.cakephpheefteeningebouwde koppelingvoorseleniumenisdaarmeeietsbeteruitgerustdandeanderetwee frameworks. Modelbasedtests Helaaszijnmodelbasedtestnogeenstukjetehooggegrepenvooralleframeworks. Zoverikdatmetzekerheidkanzeggeniserooknoggeenenkelwebframeworkdie datsoortondersteuningwelbiedt. Conclusie Hetislastigomtoteengoedevergelijkingtekomentussendeframeworks.Dit wordtteneerstebemoeilijktdoordezeerverschillendewijzewaaropde frameworkshuntestshebbeningedeeld.kunjesomseenbepaaldetestniet linksomrealiseren,dankanhetvaakwelrechtsom. 24

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int

Nadere informatie

Object Oriented Programming

Object Oriented Programming Object Oriented Programming voor webapplicaties Door Edwin Vlieg Waarom OOP? Basis uitleg over OOP Design Patterns ActiveRecord Model View Controller Extra informatie Vragen OOP Object Oriented Programming

Nadere informatie

DIA Opdracht 4 (Arjan Dekker)

DIA Opdracht 4 (Arjan Dekker) DIA Opdracht 4 (Arjan Dekker) Place klasse: #Deze klasse wordt gebruikt in zowel de client als de server #Daarom deze klasse in apart bestand gezet, die geinclude wordt #door zowel de server als client

Nadere informatie

Dynamische Websites. Week 9

Dynamische Websites. Week 9 Dynamische Websites Week 9 AGENDA Nut van een framework? Relatieve URLs Views Slicing 2 step design NUT VAN EEN FRAMEWORK? Heel veel code is voor jullie al geschreven, jullie moeten deze op de juiste plaatsen

Nadere informatie

MVC BASICS 2. Kevin Picalausa

MVC BASICS 2. Kevin Picalausa MVC BASICS 2 Kevin Picalausa 1 Forms 2 Action en Method Action Vertelt de Browser naar waar de form data (informatie) door te zenden. URL kan relatief of absoluut zijn. Method De manier waarop de form

Nadere informatie

IMP Uitwerking week 13

IMP Uitwerking week 13 IMP Uitwerking week 13 Opgave 1 Nee. Anders moet bijvoorbeeld een venster applicatie een subklasse zijn van zowel Frame en WindowListener. Als de applicatie ook een button of een menu heeft, dan moet het

Nadere informatie

Dynamische Websites. Week 10

Dynamische Websites. Week 10 Dynamische Websites Week 10 INFO Feedback vraag het in de labo s als je feedback wilt op je code Lessen op 5/12 en 12/12 om 17.15 op 19/12 om 11.00 KLEURENCODE GROEN = zelf kunnen schrijven PAARS = code

Nadere informatie

4 ASP.NET MVC. 4.1 Controllers

4 ASP.NET MVC. 4.1 Controllers 4 ASP.NET MVC ASP.NET is het.net raamwerk voor het bouwen van webapplicaties. De MVC variant hiervan is speciaal ontworpen voor het bouwen van dergelijke applicaties volgens het Model-View-Controller paradigma.

Nadere informatie

Chris de Kok 223548 TDI 3. Vak: Software Architectuur Datum: 21-01-2008 Docent: Fons van Kesteren

Chris de Kok 223548 TDI 3. Vak: Software Architectuur Datum: 21-01-2008 Docent: Fons van Kesteren Chris de Kok 223548 TDI 3 Vak: Software Architectuur Datum: 21-01-2008 Docent: Fons van Kesteren Inhoud Inleiding... 3 Black box / White box... 3 XP... 3 SimpleTest... 3 Eclipse plugin... 4 GroupTest...

Nadere informatie

CENTEXBEL CLIENT WEB

CENTEXBEL CLIENT WEB CENTEXBEL CLIENT WEB Table of Contents Wat is de Centexbel Client web?... 2 Hoe een account activeren in het programma?... 2 Schermen... 4 Log in... 4 Wat als er een personeelslid met de account gegevens

Nadere informatie

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

Gebruik van cryptografie voor veilige jquery/rest webapplicaties. Frans van Buul Inter Access Gebruik van cryptografie voor veilige jquery/rest webapplicaties Frans van Buul Inter Access 1 Frans van Buul frans.van.buul@interaccess.nl 2 De Uitdaging Rijke en veilige webapplicaties Een onveilig en

Nadere informatie

Aanleveren van te verzenden sms berichten aan SMS Via

Aanleveren van te verzenden sms berichten aan SMS Via Aanleveren van te verzenden sms berichten aan SMS Via 1. Inleiding Er zijn drie methoden van aanlevering van sms berichten mogelijk: via een HTTP request; dit kunt u gebruiken voor één sms bericht tegelijk

Nadere informatie

Dynamische Websites. Week 3. donderdag 3 oktober 13

Dynamische Websites. Week 3. donderdag 3 oktober 13 Dynamische Websites Week 3 AGENDA Herhaling Cookies Sessions voorbeeld.php Zuiver PHP: initialisatie variabelen instructies HTML minimum PHP nooit HTML in PHP FORM URL HTTP Methode Parameters Verstuurt

Nadere informatie

Wat is een child-theme?

Wat is een child-theme? Child theme Waarschuwing 1. Het maken van een child theme is relatief eenvoudig, u hebt er wel FTP toegang voor nodig bij uw provider. 2. Het is soms lastig om precies uit te vinden welke css codes u moet

Nadere informatie

Dynamische Websites. Week 2

Dynamische Websites. Week 2 Dynamische Websites Week 2 AGENDA Labo 1 GET, POST Navigatie, etc Varia 1 2

Nadere informatie

Kleine cursus PHP5. Auteur: Raymond Moesker

Kleine cursus PHP5. Auteur: Raymond Moesker Kleine cursus PHP5 Auteur: Raymond Moesker Kleine cursus PHP PHP is platform en CPU onafhankelijk, open source, snel, heeft een grote userbase, het is object georiënteerd, het wordt omarmd door grote bedrijven

Nadere informatie

Scala. Korte introductie. Sylvia Stuurman

Scala. Korte introductie. Sylvia Stuurman Korte introductie Sylvia Stuurman Wat is er zo bijzonder aan? Schaalbaar Objectgeoriënteerd (handiger dan Java!) Functioneel Scripts schrijven Gecompileerd: Java bytecode Pagina 2 voor scripts Pagina 3

Nadere informatie

AJAX (XMLHttpRequest)

AJAX (XMLHttpRequest) AJAX (XMLHttpRequest) Ajax is hot. De meesten die met webdesign bezig zijn hebben er wel al van gehoord, veronderstel ik. Voor diegenen die er nog niet van hoorden, of nog niet mee werkten volgt hier een

Nadere informatie

Formulieren en waarden posten naar een view

Formulieren en waarden posten naar een view Hoofdstuk 4 Formulieren en waarden posten naar een view Waarden posten naar een view in een Zend-project gaat heel anders dan dat je gewend bent. Om dit mechanisme te leren, kunnen we het beste een eenvoudige

Nadere informatie

digital art 2d - over posters - opdracht drugs poster en website

digital art 2d - over posters - opdracht drugs poster en website digital art 2d - over posters - opdracht drugs poster en website medium is the message The medium is the message is a phrase coined by Marshall McLuhan meaning that the form of a medium embeds itself in

Nadere informatie

Hand-out Introduction to Programming, werkcollege 7 Alex Reuneker 2013

Hand-out Introduction to Programming, werkcollege 7 Alex Reuneker 2013 Hand-out Introduction to Programming, werkcollege 7 Alex Reuneker (a.reuneker@hhs.nl), 2013 1. Document Object Model (DOM) DOM: DOM staat voor Document Object Model. Het DOM is een model van webpagina

Nadere informatie

Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft

Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit

Nadere informatie

Project Embedded Linux Domaza. Elektronica-ICT. Dimitri Kozakiewiez Jonas Govaerts. Academiejaar 2014-2015

Project Embedded Linux Domaza. Elektronica-ICT. Dimitri Kozakiewiez Jonas Govaerts. Academiejaar 2014-2015 Project Embedded Linux Domaza Elektronica-ICT Dimitri Kozakiewiez Jonas Govaerts Academiejaar 2014-2015 Campus Geel, Kleinhoefstraat 4, BE-2440 Geel 5 2 INHOUDSTAFEL INHOUDSTAFEL... 2 1 DOMAZA... 3 1.1

Nadere informatie

Project documentatie Project Expo

Project documentatie Project Expo Project documentatie Project Expo Klas: IP110 Groep:3 Groepsleden: Leonard Breitkopf Nander Konijn Onno van Gijssel Contactgegevens: onno.van.gijssel@hva.nl 1 Inhoudsopgave Inhoudsopgave... 2 Inleiding...

Nadere informatie

Externe pagina s integreren in InSite en OutSite

Externe pagina s integreren in InSite en OutSite Externe pagina s integreren in InSite en OutSite Document-versie: 1.1 Datum: 04-10-2013 2013 AFAS Software Leusden Niets uit deze uitgave mag verveelvoudigd worden en/of openbaar gemaakt worden door middel

Nadere informatie

Extra voorbeelden. 1 Objectenhierarchie. 2 Kalender

Extra voorbeelden. 1 Objectenhierarchie. 2 Kalender Extra voorbeelden 1 Objectenhierarchie 2 Kalender PHP EN MYSQL de basis 1.1 Uitgebreid voorbeeld van een objectenhierarchie We zullen een aantal kenmerken van objectgeoriënteerd programmeren toelichten

Nadere informatie

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan: Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten voorbehouden.

Nadere informatie

Drupal 7 tip: voeg overal contextual links toe Gepubliceerd op Dominique De Cooman (http://dominiquedecooman.com)

Drupal 7 tip: voeg overal contextual links toe Gepubliceerd op Dominique De Cooman (http://dominiquedecooman.com) maandag, August 8, 2011-22:07 Dominique De Cooman In drupal 7 hebben we iets dat contextual links heet. Het is het kleine wiel dat u ziet wanneer u over blocks zweeft zodat u ze ter plekken kunt bewerken.

Nadere informatie

Dynamische webapplicaties in Java

Dynamische webapplicaties in Java Dynamische webapplicaties in Java October 7, 2006 In java is het mogelijk dynamische webpagina s te implementeren. De code om de dynamische gegevens te genereren staat in servlets of Java Server Pages

Nadere informatie

Handleiding RS Form! 1.0.4

Handleiding RS Form! 1.0.4 Handleiding RS Form! 1.0.4 Inhoud 1. Controlepaneel... 3 2. Forms Manager... 4 2.1 Nieuwe form aanmaken... 4 2.2 Nieuwe fields toevoegen... 7 2.3 Wijzigen/verwijderen bestaande Forms, Fields... 10 Versie

Nadere informatie

Joomla! en SEO: De basis elementen van SEO. Richard Bruning

Joomla! en SEO: De basis elementen van SEO. Richard Bruning Joomla! en zoekmachines : De basis elementen van SEO Richard Bruning Joomla! out of the box CMS Hoe doeltreffend is Joomla out of the box voor U als website eigenaar? Ontmoet Tux, onze opdrachtgever voor

Nadere informatie

http://www.liacs.nl/home/kosters/java/

http://www.liacs.nl/home/kosters/java/ sheets Programmeren 1 Java college 2, Walter Kosters De sheets zijn gebaseerd op de hoofdstukken 2 tot en met 6 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/

Nadere informatie

Handleiding. Mailchimp

Handleiding. Mailchimp Inhoudsopgave Inhoudsopgave... 2 2BLijsten... 3 4BOverzicht... 3 Lijst aanmaken... 4 Campagnes... 6 4BOverzicht... 6 4B... 6 Nieuwe campagne aanmaken... 7 Rapporten... 11 2 2BLijsten Lijsten bestaan uit

Nadere informatie

Maak een pivot uit een Generic.List

Maak een pivot uit een Generic.List Maak een pivot uit een Generic.List Introductie in extensions, reflection en code generation Nivo: 400 Introductie In bepaalde gevallen komt het voor dat je een Generic.List van een specifieke class hebt,

Nadere informatie

RESPONSIVE DRUPAL THEMING MET SASS, COMPASS, SUSY EN AURORA DRUPAL TECH TALK 25 APRIL 2013 MARC VAN GEND TRIQUANTA

RESPONSIVE DRUPAL THEMING MET SASS, COMPASS, SUSY EN AURORA DRUPAL TECH TALK 25 APRIL 2013 MARC VAN GEND TRIQUANTA RESPONSIVE DRUPAL THEMING MET SASS, COMPASS, SUSY EN AURORA DRUPAL TECH TALK 25 APRIL 2013 MARC VAN GEND TRIQUANTA AGENDA Het Doel #responsivemobilefirsthtml5buzzwordcompliant CSS preprocessing SASS Werken

Nadere informatie

Objective-C Basis. 23 april 2005, Eindhoven Patrick Machielse

Objective-C Basis. 23 april 2005, Eindhoven Patrick Machielse Objective-C Basis 23 april 2005, Eindhoven Patrick Machielse patrick@hieper.nl Algemeen // extensies Objective-C code in bestanden met.m extensie // commentaar moet! /* Alles hiertussen wordt genegeerd

Nadere informatie

Lab Webdesign: Javascript 7 april 2008

Lab Webdesign: Javascript 7 april 2008 H8: FORMULIEREN In dit hoofdstuk komt het "form"-object aan de orde: we zullen zien hoe we JavaScript kunnen gebruiken voor het manipuleren en valideren van de gegevens die een eindgebruiker invult in

Nadere informatie

Handleiding Facultaire website Expression Engine

Handleiding Facultaire website Expression Engine Handleiding Facultaire website Expression Engine Inhoud 1. Opbouw 2. Inloggen 3. Home 4. Publish 5. Publish Form full item 6. Uitleg velden Publish Form Full item 7. Publish Form Half Page 8. Uitleg velden

Nadere informatie

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 plug-in is heel eenvoudig te installeren met een setup-programma. Waarna je een aantal menu opties in het tools menu er bij krijgt. Plsqldoc Genereer je documentatie Beeklaan 444 2562 BK Den Haag www.darwin-it.nl info@darwin-it.nl KvK 27283780 ING 65.35.40.663 Technical Architect Net als (vrijwel) elke ontwikkelaar vind ik het documenteren

Nadere informatie

Een unit test is geen integratie test. Niet het hele systeem, maar onderdelen van een systeem worden getest.

Een unit test is geen integratie test. Niet het hele systeem, maar onderdelen van een systeem worden getest. WAT IS EEN UNIT TEST? Een unit test is een test om de functionaliteit van stukken code te controleren. Een goede unit test waarborgt een consistente werking van een klein onderdeel (een unit ) van de broncode.

Nadere informatie

Sitecore en AngularJS: hoe werken ze samen

Sitecore en AngularJS: hoe werken ze samen Sitecore en AngularJS: hoe werken ze samen Derk Hudepol Consultant 11-02-2016 Click Wie ben to add ik? title Consultant bij Avanade Werkzaam bij Avanade voor bijna 6 jaar Werk 3+ jaar met Sitecore Meeste

Nadere informatie

Handleiding configuratie en gebruik tekenmodule

Handleiding configuratie en gebruik tekenmodule Handleiding configuratie en gebruik tekenmodule B3Partners Inhoudsopgave 1 Inleiding...2 2 Configuratie tekenmodule...3 2.1 Database tabel...4 2.2 WMS Service...5 2.3 Gegevensbron en kaartlaag...6 2.4

Nadere informatie

Dynamiek met VO-Script

Dynamiek met VO-Script Dynamiek met VO-Script Door Bert Dingemans DLA Ontwerp & Software bert@dla-architect.nl Inleiding Op de SDGN nieuwsgroep voor Visual Objects ontstond laatst een draad van berichten over de nieuwe libraries

Nadere informatie

Knowledgeable Referenceable Personable Accountable Scalable

Knowledgeable Referenceable Personable Accountable Scalable Knowledgeable Referenceable Personable Accountable Scalable 1 WebForms en JavaBeans bij Essent Energie OGH presentatie 3 juli 2003 2 Agenda Inleiding Eenvoudige Java Bean in Web Forms Demo Meer complexe

Nadere informatie

Syntax- (compile), runtime- en logische fouten Binaire operatoren

Syntax- (compile), runtime- en logische fouten Binaire operatoren Inhoud Syntax- (compile), runtime- en logische fouten Binaire operatoren Operaties op numerieke datatypen Evaluatie van expressies, bindingssterkte Assignment operaties en short-cut operatoren Controle

Nadere informatie

De sheets zijn gebaseerd op met name hoofdstuk. D. Bell en M. Parr, Java voor studenten, Prentice Hall,

De sheets zijn gebaseerd op met name hoofdstuk. D. Bell en M. Parr, Java voor studenten, Prentice Hall, sheets Programmeren 1 Java college 4, Walter Kosters De sheets zijn gebaseerd op met name hoofdstuk 8 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/

Nadere informatie

TECHNICAL DESIGN DOCUMENT

TECHNICAL DESIGN DOCUMENT TECHNICAL DESIGN DOCUMENT BACHELORPROJECT IN3405 John Ciocoiu 1358227 Elwin Dokter 1275909 TECHNISCHE UNIVERSITEIT DELFT FACULTEIT EWI WOENSDAG 28 APRIL 2010 VERSIE 1 COMMISSIE: Ing. D.J. van Roest (opdrachtgever)

Nadere informatie

Een sjabloon (in PHP template genaamd) bevat de volledige

Een sjabloon (in PHP template genaamd) bevat de volledige Html-sjablonen in PHP 12 Een sjabloon (in PHP template genaamd) bevat de volledige opmaak van een (html-)pagina. Code en opmaak zijn hierbij gescheiden. Terwijl veel startende programmeurs code en opmaak

Nadere informatie

LINQ en SharePoint Development

LINQ en SharePoint Development .NET Framework LINQ en SharePoint Development BREED INZETBAAR EN ZORGT VOOR UNIFORME INTERFACE Mirjam van Olst Met het.net Framework 3.5 zijn de.net-talen uitgebreid met Language Integrated Query, of LINQ.

Nadere informatie

Controllers, actions en views

Controllers, actions en views Hoofdstuk 3 Controllers, actions en views In het vorige hoofdstuk is het MVC-pattern ter spraken gekomen. In dit hoofdstuk gaan we eens na hoe dit pattern in een Zend-project geïmplementeerd is. Om enig

Nadere informatie

Formulierbeheer Importeren bestaand (model)formulier... 2 Wat is exporteren/importeren eigenlijk?... 3 Formulier aanpassen/opbouwen...

Formulierbeheer Importeren bestaand (model)formulier... 2 Wat is exporteren/importeren eigenlijk?... 3 Formulier aanpassen/opbouwen... Formulierbeheer Importeren bestaand (model)formulier... 2 Wat is exporteren/importeren eigenlijk?... 3 Formulier aanpassen/opbouwen... 4 Bewerken formulier in formulierbeheer... 4 Bewerken formulier -

Nadere informatie

NB Deze lijst is alleen beschikbaar tijdens het project! Alleen voor eigen gebruik, er kunnen geen rechten aan worden ontleend.

NB Deze lijst is alleen beschikbaar tijdens het project! Alleen voor eigen gebruik, er kunnen geen rechten aan worden ontleend. Veelgestelde vragen m.b.t. het UWP 2.0 project Versie 0.5 datum: 27-11-2012 NB Deze lijst is alleen beschikbaar tijdens het project! Alleen voor eigen gebruik, er kunnen geen rechten aan worden ontleend.

Nadere informatie

Teamhandleiding DOMjudge (versie 2.2.0muKP) 31 mei 2008

Teamhandleiding DOMjudge (versie 2.2.0muKP) 31 mei 2008 judge Teamhandleiding DOMjudge (versie..0mukp) 31 mei 008 /\ DOM DOM judge Inhoudsopgave 1 Inleiding Samenvatting.1 Inlezen en wegschrijven............................... Insturen van oplossingen...............................3

Nadere informatie

Capita Selecta Design Patterns voor administratieve applicaties

Capita Selecta Design Patterns voor administratieve applicaties Capita Selecta voor administratieve applicaties Bij afstudeerproject: Generiek framework voor administratieve toepassingen in een webgeörienteerde omgeving Henk van de Ridder 26 augustus 2006 Inhoud 26

Nadere informatie

Javascript deel 3. Document Object Model Objecten

Javascript deel 3. Document Object Model Objecten Javascript deel 3 Document Object Model Objecten Document Object Model (DOM) Doel: via javascript willen we graag heel flexibel de htmlpagina kunnen aanpassen. HTML DOM is een standaard waarmee we html-elementen

Nadere informatie

Zelftest Inleiding Programmeren

Zelftest Inleiding Programmeren Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze

Nadere informatie

In een paar stappen. je weggever aanbieden. via ActiveCampaign

In een paar stappen. je weggever aanbieden. via ActiveCampaign In een paar stappen je weggever aanbieden via ActiveCampaign Je hebt een geweldige weggever gemaakt zoals een e-book of online training. Ook ben je er achter dat ActiveCampaign het e-mailmarketing systeem

Nadere informatie

User Profile Repository Technisch Ontwerp Versie 1.1

User Profile Repository Technisch Ontwerp Versie 1.1 CATCHPlus User Profile Repository Technisch Ontwerp Versie 1.1 Versie: 1.1 Publicatiedatum: 12-7-2011 Vertrouwelijk GridLine B.V., 2011 Pagina 1 van 12 Documenthistorie Datum Versie Beschrijving Auteur

Nadere informatie

Introductie en even voorstellen

Introductie en even voorstellen Introductie en even voorstellen Onlangs is PHP5 uitgekomen. PHP5 is een grote stap voorwaards voor iedereen die met deze populaire programmeertaal werkt. In deze presentatie bekijken we de belangrijkste

Nadere informatie

Javascript oefenblad 1

Javascript oefenblad 1 Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de

Nadere informatie

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

Eigen Widgets in CRM. Introductie. Limitering. Widgets beschikbaar stellen. Tips & Tricks Eigen Widgets in CRM Tips & Tricks Eigen Widgets in CRM Eigen Widgets in CRM Introductie De WebUI van CRM 7.0 maakt het mogelijk om je eigen widgets te maken en deze in je eigen view te gebruiken. Dat kan door gebruik te maken

Nadere informatie

1.9.6 Release Notes Verbeteringen en uitbreidingen

1.9.6 Release Notes Verbeteringen en uitbreidingen 1.9.6 Release Notes Verbeteringen en uitbreidingen Februari 2014 Release Versie Item Versie Datum SiteOpMobi Platform (Inclusief SiteOpMobi Service, Control Panel, APIs) 1.9.6 19 februari 2014 2 Inhoudsoverzicht

Nadere informatie

Dashboard. 1 Apr Apr 2012 Comparing to: Site % Bounce Rate. 125 Visits. 535 Pageviews. 00:02:23 Avg. Time on Site. 4.

Dashboard. 1 Apr Apr 2012 Comparing to: Site % Bounce Rate. 125 Visits. 535 Pageviews. 00:02:23 Avg. Time on Site. 4. Atoomclub Dashboard 1 Apr 212-3 Apr 212 2 2 1 1 2 Apr 9 Apr 16 Apr 23 Apr 3 Site Usage 125 24.% Bounce Rate 535 Pageviews :2:23 Avg. Time on Site 4.28 Pages/Visit 64.8% % New Traffic Sources Overview Map

Nadere informatie

Het beheren van mijn Tungsten Network Portal account NL 1 Manage my Tungsten Network Portal account EN 14

Het beheren van mijn Tungsten Network Portal account NL 1 Manage my Tungsten Network Portal account EN 14 QUICK GUIDE C Het beheren van mijn Tungsten Network Portal account NL 1 Manage my Tungsten Network Portal account EN 14 Version 0.9 (June 2014) Per May 2014 OB10 has changed its name to Tungsten Network

Nadere informatie

ASRemote WebService. Via deze webservice kunt u:

ASRemote WebService. Via deze webservice kunt u: ASRemote WebService De ASRemote WebService is een SOAP Webservice die softwarematige communicatie met Exact Globe mogelijk maakt vanaf een willekeurige locatie op het internet. Via deze webservice kunt

Nadere informatie

Dashboard. 1 Nov 2011-30 Nov 2011 Comparing to: Site. 27.14% Bounce Rate. 409 Visits. 2,197 Pageviews. 00:02:58 Avg. Time on Site. 5.

Dashboard. 1 Nov 2011-30 Nov 2011 Comparing to: Site. 27.14% Bounce Rate. 409 Visits. 2,197 Pageviews. 00:02:58 Avg. Time on Site. 5. Dashboard 1 Nov 211-3 Nov 211 4 4 2 2 Site Usage 49 27.14% Bounce Rate 2,197 Pageviews :2:58 Avg. Time on Site 5.37 Pages/Visit 69.44% % New Traffic Sources Overview Map Overlay Direct Traffic 293. (71.64%)

Nadere informatie

HTTP SMS API Technische Specificatie messagebird.com versie 1.1.6-05 mei 2014

HTTP SMS API Technische Specificatie messagebird.com versie 1.1.6-05 mei 2014 HTTP SMS API Technische Specificatie messagebird.com versie 1.1.6-05 mei 2014 1 Inhoudsopgave INHOUDSOPGAVE 2 1 VERBINDING MET DE API 4 1.1 QUICK START 4 2 SMS PARAMETERS 5 2.1 VERPLICHTE PARAMETERS 6

Nadere informatie

i ll take off to the cloud

i ll take off to the cloud i ll take off to the cloud Webbased applicaties gebouwd door ILE programmeurs Gepresenteerd door: Drs. Martijn van Breden Lead software architect Pantheon Automatisering 26-4-2017 1 Historie Pantheon Ontstaan

Nadere informatie

Client Applicaties (Browser+Desktop) http/https. Apache Webserver. http proxy. WMS WFS Adm SLD Tomcat. Tomcat. GeoServer. PostGIS

Client Applicaties (Browser+Desktop) http/https. Apache Webserver. http proxy. WMS WFS Adm SLD Tomcat. Tomcat. GeoServer. PostGIS WMS voor Kadastrale kaart Limburg GEORZ-lab Datum: 17 juli 2009 Auteur: GEORZ-lab, Just van den Broecke Versie: 2 Contact: Ebrahim Hemmatnia (Adviseur PPI GEO, Kadaster), tel. 088 183 22 16. Inleiding

Nadere informatie

Angular Best Practices Door Alex en Chris van Beek

Angular Best Practices Door Alex en Chris van Beek Angular Best Practices Door Alex en Chris van Beek Over ons Enthousiastelingen Software Architecten bij Luminis Arnhem B.V. Gespecialiseerd in Microsoft technologie:.net, Azure en Windows Twitter: @Beekje

Nadere informatie

Externe Toegang installeren en gebruiken onder Mac OS X

Externe Toegang installeren en gebruiken onder Mac OS X Externe Toegang installeren en gebruiken onder Mac OS X Deze handleiding beschrijft de inlog en uitlogprocedure voor Externe Toegang. Daarnaast beschrijft het de mogelijkheden binnen de virtuele werkplek

Nadere informatie

CONVERTERENDE LANDINGSPAGINA: 7 Tips voor een succesvolle landingspagina

CONVERTERENDE LANDINGSPAGINA: 7 Tips voor een succesvolle landingspagina CONVERTERENDE LANDINGSPAGINA: 7 Tips voor een succesvolle landingspagina WAT IS EEN LANDINGSPAGINA? Een landingspagina is niets meer dan een losse pagina, speciaal ontworpen voor één specifiek doel. Bijvoorbeeld

Nadere informatie

Verder zijn er de nodige websites waarbij voorbeelden van objectgeoriënteerd PHP (of Objec Oriented PHP, OO PHP) te vinden zijn.

Verder zijn er de nodige websites waarbij voorbeelden van objectgeoriënteerd PHP (of Objec Oriented PHP, OO PHP) te vinden zijn. Objectgeoriënteerd PHP (versie 5) Kennisvereisten: Ervaring met programmeren in PHP met MySQL Je weet wat een class of klasse is Je weet wat een instantie van een klasse (een object) is Je weet wat een

Nadere informatie

Dashboard. 1 Jan Jan 2012 Comparing to: Site. 156 Visits % Bounce Rate. 00:02:38 Avg. Time on Site. 558 Pageviews. 3.

Dashboard. 1 Jan Jan 2012 Comparing to: Site. 156 Visits % Bounce Rate. 00:02:38 Avg. Time on Site. 558 Pageviews. 3. Atoomclub Dashboard 1 Jan 212-31 Jan 212 2 Jan 9 Jan 16 Jan 23 Jan Jan Site Usage 6 32.5% Bounce Rate 558 Pageviews :2:38 Avg. Time on Site 3.58 Pages/Visit 74.36% % New Traffic Sources Overview Map Overlay

Nadere informatie

Installatie responsbox bij Windows XP en Windows Vista

Installatie responsbox bij Windows XP en Windows Vista 1 Installatie responsbox bij Windows XP en Windows Vista Gebruik de USB-kabel om de responsbox aan te sluiten op de computer. De kabel kan rechts achter in de responsbox aangesloten worden. De kabel steekt

Nadere informatie

Inleiding Software Engineering! Unit Testing, Contracten, Debugger! 13 Februari 2014!

Inleiding Software Engineering! Unit Testing, Contracten, Debugger! 13 Februari 2014! Inleiding Software Engineering Unit Testing, Contracten, Debugger 13 Februari 2014 Beknopte info over Unit Testing en Contracten kan je vinden op het einde van dit document. Eclipse beschikt over een handige

Nadere informatie

APPLICATIEBOUW 6E COLLEGE: HET ONTWERPEN VAN EEN KLASSE, LEJOS DEEL 3. Onderdeel van SmartProducts

APPLICATIEBOUW 6E COLLEGE: HET ONTWERPEN VAN EEN KLASSE, LEJOS DEEL 3. Onderdeel van SmartProducts APPLICATIEBOUW 6E COLLEGE: HET ONTWERPEN VAN EEN KLASSE, LEJOS DEEL 3 Onderdeel van SmartProducts INHOUD COLLEGE 6 Het ontwerpen van een klasse {6 Lijsten met ArrayList {7.3, 7.4 LeJOS: Communicatie, SuperPro

Nadere informatie

PYramid Onroerend Erfgoed Style Documentation

PYramid Onroerend Erfgoed Style Documentation PYramid Onroerend Erfgoed Style Documentation Release 0.1.1 Onroerend Erfgoed November 25, 2014 Contents 1 Installatie 3 1.1 Installatie................................................. 3 1.2 Update..................................................

Nadere informatie

Leereenheid Webdesign

Leereenheid Webdesign Leereenheid Webdesign INLEIDING Deze leereenheid leert je een eenvoudige website opbouwen. Vervolgens passen we dit toe op webquest. VOORKENNIS Elementaire kennis van Web 2.0 is vereist. LEERDOELEN LEERDOELEN

Nadere informatie

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden. Herhaling Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden. De basisbouwsteen is het object; een geïntegreerde eenheid van data en operaties werkend op deze

Nadere informatie

Programming Content Management Server 2002

Programming Content Management Server 2002 Met behulp van Content Management Server 2002 (CMS) kun je eenvoudig te onderhouden websites bouwen en beheren. De business driver van CMS is het gebruiksvriendelijk beheer van een website, in het bijzonder

Nadere informatie

Programmeren in Java les 3

Programmeren in Java les 3 4 september 2015 Deze les korte herhaling vorige week loops methodes Variabelen Soorten variabelen in Java: integer: een geheel getal, bijv. 1,2,3,4 float: een gebroken getal, bijv. 3.1415 double: een

Nadere informatie

Dashboard. 1 Feb Feb 2012 Comparing to: Site. 257 Visits % Bounce Rate. 935 Pageviews. 00:02:07 Avg. Time on Site. 78.

Dashboard. 1 Feb Feb 2012 Comparing to: Site. 257 Visits % Bounce Rate. 935 Pageviews. 00:02:07 Avg. Time on Site. 78. Atoomclub Dashboard 1 Feb 212-29 Feb 212 5 5 6 Feb 13 Feb 2 Feb 27 Feb Site Usage 7 32.3% Bounce Rate 935 Pageviews :2:7 Avg. Time on Site 3.64 Pages/Visit 78.21% % New Traffic Sources Overview Map Overlay

Nadere informatie

Les 9: formulier controle met javascript.

Les 9: formulier controle met javascript. Les 9: formulier controle met javascript. Javascript is erg veel gebruikt bij internet toepassingen. In tegenstelling tot PHP, wat een server side scripting is, is java client side scripting. Dwz, niet

Nadere informatie

Je gaat nu een Zend-Project maken in de map C:/wamp/www (de document root van de webserver) met behulp van Zend Tool..

Je gaat nu een Zend-Project maken in de map C:/wamp/www (de document root van de webserver) met behulp van Zend Tool.. Hoofdstuk 2 Een ZF project maken het Model-View-Controller pattern Je hebt nu ZF geïnstalleerd en geconfigureerd. We gaan aan de hand van een Zend-project onderzoeken of deze installatie en configuratie

Nadere informatie

Uitleg site maken. Stap 2) Nu kiezen we de lay-out. Je kunt het aantal kolommen kiezen. Je kiest nu de eerste. Maar dit kun je later veranderen

Uitleg site maken. Stap 2) Nu kiezen we de lay-out. Je kunt het aantal kolommen kiezen. Je kiest nu de eerste. Maar dit kun je later veranderen Uitleg site maken Hier vind je een uitleg hoe je bij Google een site kunt maken. Maak eerst een map bij je Favorieten en zet daar onderstaande sites in. Later zet je daar ook je eigen site in. Handig om

Nadere informatie

DOMjudge teamhandleiding

DOMjudge teamhandleiding judge DOMjudge teamhandleiding Samenvatting /\ DOM DOM judge Hieronder staat de belangrijkste informatie kort samengevat. Dit is bedoeld om snel aan de slag te kunnen. We raden echter ten zeerste aan dat

Nadere informatie

Test de REST. Testen van RESTful webservices met REST Assured. Bas Dijkstra

Test de REST. Testen van RESTful webservices met REST Assured. Bas Dijkstra Test de REST Testen van RESTful webservices met REST Assured Bas Dijkstra www.ontestautomation.com bas@ontestautomation.com @_basdijkstra WiFi _Voorjaarsevenement 2016, password congres2016 _NBCSocialLogin

Nadere informatie

Quick Reference Guide Site beheer SharePoint TU Delft. Bestemd voor Key Users Versie 2.0 Datum 11-06-2012 Eigenaar SSC-ICT FAB SharePoint

Quick Reference Guide Site beheer SharePoint TU Delft. Bestemd voor Key Users Versie 2.0 Datum 11-06-2012 Eigenaar SSC-ICT FAB SharePoint Quick Reference Guide Site beheer SharePoint TU Delft Bestemd voor Key Users Versie 2.0 Datum 11-06-2012 Eigenaar SSC-ICT FAB SharePoint Quick Reference guide site beheer SharePoint TU Delft 1. Introductie

Nadere informatie

Een fragment wordt afgeleid van de basis klasse "Fragment".

Een fragment wordt afgeleid van de basis klasse Fragment. Android fragmenten 1/5 Fragmenten Klasse Een fragment wordt afgeleid van de basis klasse "Fragment". package com.android.cursustekst; import java.text.simpledateformat; import java.util.arraylist; import

Nadere informatie

Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003

Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003 Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003 Page 1 1 Kees Vianen Senior Sales Consultant Technology Solutions Oracle Nederland Agenda Geschiedenis van Oracle Portal Portal

Nadere informatie

TENTAMEN Programmeren 1 VOORBEELDUITWERKING

TENTAMEN Programmeren 1 VOORBEELDUITWERKING TENTAMEN Programmeren 1 vakcode: 213500 datum: 28 november 2002 tijd: 13:30 17:00 uur VOORBEELDUITWERKING Algemeen Bij dit tentamen mag gebruik worden gemaakt van het boek van Niño/Hosch, en van de handleiding

Nadere informatie

Web Application Security Hacking Your Way In! Peter Schuler & Julien Rentrop

Web Application Security Hacking Your Way In! Peter Schuler & Julien Rentrop Web Application Security Hacking Your Way In! Peter Schuler & Julien Rentrop 1 Agenda Injection Cross Site Scripting Session Hijacking Cross Site Request Forgery #1 OWASP #2 top 10 #3 #5 Bezoek www.owasp.org

Nadere informatie

ArcGIS Mobile ADF. Smart Client Applicaties voor ArcGIS Server Eva Dienske, Wim Ligtendag

ArcGIS Mobile ADF. Smart Client Applicaties voor ArcGIS Server Eva Dienske, Wim Ligtendag ArcGIS Mobile ADF Smart Client Applicaties voor ArcGIS Server Eva Dienske, Wim Ligtendag Agenda Wat is de Mobile ADF? Architectuur Demo Wat is de mobile ADF? Ontwikkeltoolkit voor mobiele (Smart Client)

Nadere informatie

Exercise assistant on-line

Exercise assistant on-line Exercise assistant on-line Onderwerpen - Introductie Exercise Assistant - On-line volgens MVC principe - Problemen bij MVC principe - Mogelijke oplossing - Richtingen onderzoek - Mogelijkheid tot meedoen

Nadere informatie

Deel 1 : Gesloten Boek

Deel 1 : Gesloten Boek Naam : EXAMEN SOFTWAREONTWIKKELING 1STE PROEF BURG. IR. COMPUTERWETENSCHAPPEN EERSTE EXAMENPERIODE ACADEMIEJAAR 2004-2005 Deel 1 : Gesloten Boek 1. Testen Geef een overzicht van de verschillende testen

Nadere informatie

Hoe maak je een nieuwbrief template met MailChimp? In dit document leg ik je stap voor stap uit hoe je met het drag and drop systeem van MailChimp jouw eigen layout bij elkaar sleept. Je geeft jouw template

Nadere informatie

Een website maken met databasetoegang.

Een website maken met databasetoegang. Hoofdstuk 5 Een website maken met databasetoegang. In dit hoofdstuk gaan we het weblog dat je in hoofdstuk 4 hebt gemaakt verder uitbreiden. Een belangrijk onderdeel wordt toegevoegd aan de applicatie,

Nadere informatie

3.1! Complexe Interacties!

3.1! Complexe Interacties! 3.1! Complexe Interacties! 3.2! Een optimale werkverdeling! play play play play 3.3! 3. Aanpasbaarheid: TicTacToe! versie 1.1b (displaygame)! koppeling / cohesie! versie 1.2 (Player)! domeinmodel! versie

Nadere informatie