Voorwoord Beste Lezer, Momenteel hebt u de eerste voorlopige versie van een belangrijk deel van mijn GIP, of Geïntegreerde Proef, in handen. Dit deel behandeld 3 zeer bekende en veelgebruikte webdevelopment talen/frameworks: PHP, JSP en ASP.NET . In dit werk zullen de talen algemeen gesitueerd worden, zullen servers geïnstalleerd worden, kan u interviews met webdevelopers lezen en wordt er een voorbeeldtoepassing ontwikkeld. U zal merken dat deze eerste voorlopige versie nog niet volledig is. Onder het motto “If there’s an elephant in the room, introduce it” lijst ik even op wat er volgens mij mist/beter kan.
Door een fout gelopen download staat hier nog niets over het installeren van een IIS server of een Apache Tomcat server in.
De voorbeeldtoepassing is nog in ontwikkeling
De ondersteuningsaspecten zijn weggelaten en het verklarend woordenboek is vrij kort
De bibliografie dient te worden vervolledigd
Zoals het cliché en de regels mij voorschrijven, wens ik enkele personen te bedanken. Ten eerste zijn er zij die ik mocht interviewen: Peter Tibackx, Thomas Toye en Jonas Drieghe. Verder is er Tom Klaasen, die interesse toonde in een interview, maar helaas in Ruby (on Rails) developt, wat buiten dit werk valt. Ook is er Bert Cielen, die interesse toont in een interview dat door tijdsgebrek nog niet is afgenomen. Verder is er Hilde Huberland, mijn moeder, voor haar raadgevingen. Ook vermeld ik nogmaals Peter Tibackx, dit maal voor zijn bereidheid om mijn vragen over JSP en algemene coding principles te beantwoorden. Ook zijn er alle personen die mij doorheen de jaren hebben gestimuleerd om te developen en designen: mijn broers, Bas, Jochem Te Wierik, Thomas Toye, Boris Meer en vele anderen. Zonder deze laatsten had ik niet gestaan waar ik nu sta. Beste lezer, ik hoop dat ik u kan bekoren met dit werk. Tot nu toe is het mij een plezier dit werk te maken. Niet te min is de weg naar de definitieve versie nog lang. Eigenlijk heeft de weg zelfs geen einde, handelend over code moet het, net zoals code, permanent gedevelopt en geüpdatet worden. Wim Tibackx ksJOMA, 6IB
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
1
Inhoudstafel Voorwoord ...................................................................................................................................................... 1 Inhoudstafel .................................................................................................................................................... 2 1. Algemene situering PHP, JSP & ASP.NET ..................................................................................................... 3 1.1. ASP.NET ................................................................................................................................................ 3 1.2. PHP ....................................................................................................................................................... 4 1.3. JSP ........................................................................................................................................................ 5 2. Ontwikkeling voorbeeldtoepassing ............................................................................................................. 6 2.1. Algemene info over de toepassing ....................................................................................................... 6 2.2. Data ...................................................................................................................................................... 6 2.2.1. Inleiding......................................................................................................................................... 6 2.2.2. Concrete tabellen ......................................................................................................................... 6 3. Wat anderen denken: Interviews met doorwinterde webdevelopers........................................................ 9 3.1. Peter Tibackx developt 9 jaar waarvan 3 jaar professioneel ............................................................... 9 3.2. de jonge Thomas Toye developt nu 1,5 jaar in PHP............................................................................. 9 3.3. Jonas Drieghe, blogger op http://www.geektalk.be/ developt 10 jaar, waarvan 4 à 5 jaar professioneel............................................................................................................................................. 10 4. Installeren van servers (simpele setup)..................................................................................................... 12 4.1. Inleiding .............................................................................................................................................. 12 4.2. Overzicht van de servers .................................................................................................................... 12 4.3. Opzetten van de servers .................................................................................................................... 12 4.3.1. Opzetten van Server 2: Ubuntu Desktop 10.10 (gedeeltelijk) .................................................... 12 5. Verklarend Woordenboek ......................................................................................................................... 61 5.1. Compiled vs. Interpreted ................................................................................................................... 61 5.2. Routing ............................................................................................................................................... 61 Bibliografie .................................................................................................................................................... 62
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
2
1. Algemene situering PHP, JSP & ASP.NET 1.1. ASP.NET ASP.NET is de opvolger van ASP (Active Server Pages), beiden ontwikkeld door Microsoft. Verder wordt ASP.NET gecompileerd1. ASP.NET is meer een framework voor websites en -applicaties dan een taal. Vanuit het standpunt van de webdeveloper die ASP.NET gebruikt is het niet meer dan een set XML tags die hij/zij in een .aspx pagina (die verder gewone html bevat) kan gebruiken. Deze tags worden controls genoemd en zijn te herkennen aan de “asp:” prefix. Hieronder een voorbeeld van een mogelijke control.
In bovenstaand voorbeeld is er al iets belangrijk te zien: het runat attribuut. Meestal zal de waarde server moeten zijn. Dit zorgt ervoor dat de parser deze tag oppikt en gebruikt.
Verder kan de gebruiker ook zogenaamde “User Controls” definiëren. De user kan dan eigen stukken code oproepbaar maken met een tag zoals bovenstaande.
Natuurlijk is er meer dan de controls. Om dit te begrijpen moet men echter eerst de structuur van een ASP.NET website of -applicatie begrijpen. In dit werk wordt uitgegaan van een semi-optimale structuur, d.w.z. een duidelijke opsplitsing in files en de DRY2 en KISS3 principes. Volgens die voorwaarden ziet de structuur er als volgt uit: een masterpage (.master) die een algemene layout bevat met controls die een per-pagina invulbare plaats aangeven. Dit gebeurt met de control “ContentPlaceHolder”. In de front-end pagina’s (.aspx), diegenen die de user in de URL kan zien staan, komen de controls. Bij elke front-end pagina zit een backend pagina, de zogenaamde “Code Behind”. In die Code Behind kan men gewoon Visual C#.NET of Visual Basic.NET schrijven. Daar zit meteen ook de kracht van ASP.NET. ASP.NET zelf is (vanuit developers standpunt) maar een set tags in HTML, maar door zaken als de ContentPlaceHolder en de herbruikbaarheid van C# of VB code is de drempel lager om het te gaan gebruiken. Hiermee zijn de 3 belangrijkste components geschetst. Er zijn er natuurlijk nog vele andere, zoals de Class file (.cs).
Nadat Microsoft IIS 4.0 releasde (1997) wou het iets doen aan de vele klachten die er waren rond ASP. Deze gingen er vooral over dat de code niet proper was en er geen scheiding tussen logica en design was. Mark Anders en Scott Guthrie kregen de opdracht om te onderzoeken wat hieraan kon gedaan worden. 1
zie woordenboek Don’t Repeat Yourself 3 Keep It Simple, Stupid! 2
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
3
Na een tijd kwamen ze met het concept “XSP” op de proppen (de X in de naam had geen betekenis, maar werd er geplaatst omdat het destijds de “modeletter was in webtalen (XML, XSLT)). Er werd een eerste prototype van XSP gemaakt met Java. Later besloot men van Java af te stappen en met de Common Language Runtime (CLR) van Microsoft zelf. Met het verschuiven naar CLR besloot men het eigen C# te gebruiken in plaats van Java. Het project was intern gekend onder de naam “Project Cool”. In de eerste helft van 2000 werd het project voorgesteld onder de naam ASP+. Enkele maanden later werd het echte al gerebrand naar ASP.NET. Op 5 Januari 2002 werd ASP.NET 1.0 gereleaset, als onderdeel van .NET framework 1.0.
Dit werk heet wel “ASP.NET, JSP & PHP: Een vergelijking tussen webdevelopment talen” maar eigenlijk is ASP.NET meer een framework dan een taal. ASP.NET is de tags, de routing4 en dergelijke. De échte kracht zit in de backend taal: Visual C#.NET of Visual Basic.NET. ASP.NET is dus een framework voor Visual C#.NET en Visual Basic.NET.
1.2. PHP PHP (origineel Personal Home Page, later Personal Home Page/Forms Interpreter, nu PHP Hypertext Processor) werd origineel ontwikkeld door Rasmus Ledorf, toen hij senior software engineer was bij de Amerikaanse technologiereus IBM. Hij begon aan PHP in 1994. In 1995 kon hij versie 1.0.0 releasen voor het grote publiek. In 1997 begonnen Zeef Suraski & Andi Gutmans (beiden Israëliërs) met het herschrijven van de PHP parser. Zo legden zij de basis voor PHP 3. 1997 Was een druk jaar voor PHP. PHP 3 kwam uit, PHP/FI 2 kwam uit (dit was de laatste release van PHP/FI), PHP veranderde van naam naar “PHP: Hypertext Processor”. Verder werd de parser na de release van PHP 3 opnieuw herschreven. In 1999 werd dit gereleaset onder de naam “Zend Engine 1” door Suraski & Gutmans via hun daarvoor opgerichte bedrijf “Zend Technologies”. Sindsdien krijgt elke major release een nieuwe versie van de Zend Engine mee. Zend Technologies legde de naam PHP ook vast.
PHP is een zeer populaire open source webdevelopment taal. Het verschilt echter sterk van de andere talen besproken in dit werk. In het begin van de ontwikkeling was het duidelijk geïnspireerd op Perl, tegenwoordig is dit minder te merken. De syntax van PHP lijkt het meeste op C (in tegenstelling tot C is het wel mogelijk om Object-Oriented te werken). De programmeerwijze lijkt vooral op C++.
4
Zie woordenboek
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
4
PHP is een loosely-typed language. Dit houdt in dat men niet opgeven van welk type een variabele is, welk type de parameters zijn en dergelijke. Het moet gezegd worden dat PHP sinds versie 5.0.0 (juli 2004) evolueert naar een hard-typed language. Zo is het sinds versie 5.0.0 mogelijk om (behalve voor de ingebouwde types als int, string5) het verwachtte type parameter te definiëren.
PHP heeft een kleine leercurve, maar dit is niet enkel een sterkte van de taal. De kleine leercurve zorgt ervoor dat veel nieuwe programmeurs met PHP beginnen. Echter vertrouwen velen van hen hiervoor op tutorials en cursussen op het internet, welke vaak outdated zijn en slecht in elkaar steken. Zo krijgen zij slechte technieken aangeleerd, die moeilijk af te leren zijn.
Een andere zwakte van PHP is dat PHP over het algemeen een zéér trage adoption van nieuwe versies kent. Vaak gebeurd het dat programmeurs wel willen overschakelen maar hun webhosts nog enkele jaren bij de oude versie blijven. Bij de laatste grote versie (5.0.0) vergrootte dit effect nog doordat de eerste releases van 5.x vrij onstabiel waren. Dit zorgde ervoor dat PHP 5 pas 3 jaar na haar release echt doorbrak.
1.3. JSP JSP was het antwoord van Sun op ASP.NET en PHP. Het wou het denkbeeld dat Java niet voldoende ondersteuning had voor het web de wereld uit helpen. JSP is, net zoals ASP.NET, meer een framework dan een taal.
Aan een gewone (x)html pagina worden speciale xml tags toegevoegd (JSP actions). De JSP pagina wordt door de user aangeroepen. De pagina wordt dan gecompileerd (als dit niet al gebeurd is) naar een Java Servlet. Een servlet is zowat het omgekeerde van een JSP pagina (veel vs. weinig java).
JSP action kunnen worden gebundeld in een JSP Tag Library. Dit is een verzameling van acties die gebruikt kunnen worden om een webserver van extra functionaliteit te voorzien.
5 Men kan voor de ingebouwde types wel de alternatieven uit de SPL extensie gebruiken, bv. SplInt, SplString. Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
5
2. Ontwikkeling voorbeeldtoepassing 2.1. Algemene info over de toepassing Voorlopig heb ik vooral theorie besproken, maar wat er natuurlijk écht toe doet is hoe het in de praktijk werkt. Om dit te vergelijken zal ik een voorbeeldtoepassing ontwikkelen in de 3 talen, met verschillende database engines. Het doel van deze toepassing is het bijhouden van persoons-, bedrijfs- en adresgegevens. Deze toepassing zal met een database werken. Om de vergelijking compleet te maken zal ik, voor zover mogelijk, in de 3 talen met de 3 meest voorkomende relationele database systemen werken: Microsoft SQL Server, MySQL en Firebird. In totaal zullen er dus 3 versies van de applicatie zijn, met elks 3 subversies.
2.2. Data 2.2.1. Inleiding Deze applicatie zal heel wat data moeten bijhouden. We willen immers een modern adresboek maken, gericht op de moderne internet- en mediagebruiker. Naast fysieke adressen moet de applicatie dus ook websites en online profielen kunnen bijhouden. Een kort, onvolledig overzicht van de mogelijke data:
Persoonsnaam, voornaam
Bedrijf waarvoor persoon werkt (of waarvan gewoon gegevens worden bijgehouden)
Fysiek adres
Telefoon- GSM- en faxnummers
E-mailadressen
Websites & online profielen (twitter, facebook, ..)
Beschrijvingen/notities
2.2.2. Concrete tabellen Op basis van deze informatie dacht ik na over hoe een database eruit moet zien en kwam tot de volgende tabellen en velden:
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
6
Contact (grouperingstabel voor personen en bedrijven) o
cID (Primary Key, Auto Increment, Integer)
o
Naam (Unique, Varchar(75). Bedoeld als bijnaam. Als de gebruiker bijvoorbeeld twee personen met de naam Jan Janssens kent, de ene een collega en de andere iemand die hij ontmoette in de bibliotheek kunnen deze heren de namen “Jan Janssens Werk” en “Jan Janssens Bib” toegewezen krijgen)
o
Beschrijving (Tekst, Default NULL, om meer informatie te geven over het contact)
Persoon o
pID (Primary Key, Auto Increment, Integer)
o
First Name (Varchar(50))
o
Middle Name(Varchar(50), Default NULL)
o
Last Name(Varchar(100))
o
cID (Foreign key => Contact.cID)
Organisatie o
oID (Primary Key, Auto Increment, Integer)
o
Name (Varchar(200))
o
cID (Foreign key => Contact.cID)
Datatype (Types van dataobjecten) o
tID (Primary Key, Auto Increment, Integer)
o
Naam (Unique. Voorbeeld: “telefoonnummer”, “adres”)
Data (table waarin contactdata wordt opgeslagen) o
dID (Primary Key, Auto Increment, Integer)
o
Type (Foreign Key => Datatype.tID)
o
Data (Text)
o
cID (Foreign key => Contact.cID)
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
7
o
Description (Varchar(140). Voorbeeld “persoonlijk e-mailadres”,”tel. Werk”)
PersoonOrganisatieLink (Link tussen Persoon en Organisatietabel) o
pID (Foreign key => Persoon.pID, Unique)
o
oID (Foreign key => Organisatie.oID)
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
8
3. Wat anderen denken: Interviews met doorwinterde webdevelopers 3.1. Peter Tibackx developt 9 jaar waarvan 3 jaar professioneel 1. Met welke talen werkt u? PHP & JSP/Java 2. Welke van deze talen geniet uw voorkeur en waarom? Ik heb geen echte voorkeur, beide talen hebben hun eigen handigheden. PHP is flexibel en loosely typed. Onder andere deze zaken zorgen ervoor dat men snel iets kleins kan testen. JSP is strongly typed en dwingt om robuustere systemen te bouwen. Verder zijn er zeer veel libraries en is het beter geoptimaliseerd. Dit zorgt ervoor dat het nuttiger is voor grotere projecten. Voor kleinere projecten en om snel iets te testen is het dan weer minder handig 3. Wat vindt je handig/minder handig aan bepaalde talen? M.a.w. hoe zou de ideale taal werken? Strong typed is echt wel handig voor serieuze projecten aangezien het de leesbaarheid van code vergroot. Een groot aanbod aan libraries, documentatie en support is ook zeer belangrijk. Voor mij is Java ongeveer de ideale taal. JSP heeft echter het nadeel dat men zonder scriptlets geen functies met argumenten kan oproepen of men moet zelf function library wrappers schrijven, wat niet altijd even handig is.
3.2. de jonge Thomas Toye developt nu 1,5 jaar in PHP 1. Waarom hebt u voor PHP gekozen? Het leek me de gemakkelijkste taal om te leren. Verder is het ook veel makkelijker (gratis) webhosting met PHP te vinden in plaats van met bijvoorbeeld JSP. 2. Ben je, achteraf gezien, tevreden met je keuze? Zeker. Tegenover ASP.NET en JSP vindt ik de structuur van PHP veel logischer en duidelijker. 3. Loosely typing of strongly typing? Ik vind loosely typing handiger, omdat ik flexibiliteit wil. Verder maakt dit de taal ook simpeler. 4. Als laatste, waar kunnen de lezers je terugvinden? Voornamelijk op mijn website http://www.coding-kid.tk .
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
9
3.3. Jonas Drieghe, blogger op http://www.geektalk.be/ developt 10 jaar, waarvan 4 à 5 jaar professioneel. 1. Je ontwikkelt in php en jsp, welke taal geniet je voorkeur en waarom? Ik denk dat de vergelijking hier verder mag getrokken worden. JSP situeert zich namelijk enkel in de frontend van Java webontwikkeling. Mijn persoonlijke voorkeur zit een beetje dubbel. Als het over view-layers en front-end ontwikkeling gaat verkies ik PHP (en de smarty template engine) omwille van de hoeveelheid code die nodig is in JSP (en JSTL). Als het gaat over back-end ontwikkeling verkies ik Java voor zijn robuustheid en strong typing. Uiteraard hangt het ook allemaal af van de omvang van het project. Kleine projecten doe ik liever in php, terwijl Java zich veel beter thuis voelt in een enterprise omgeving.
2. Als ik het goed begrijp ben je begonnen met php, waarom heb je daar orgineel voor gekozen? Heel eenvoudig. Het is open source, eenvoudig op te starten en bijna elke ISP ondersteunt de combinatie apache / php / mysql. Een degelijke Java web host vinden is niet zo eenvoudig. De drempel om met php te beginnen voor webontwikkeling is gewoonweg veel lager dan die van Java.
3. Wat zijn enkele grote projecten waar je (mee) aan gedevelopt hebt? Professioneel ben ik de voorbije jaren vooral met front-end code bezig geweest. Hiervoor heb ik meegewerkt aan verschillende grote projecten als www.vdab.be, www.belgium.be, www.provant.be en een aantal interne applicaties voor de Sociale Zekerheid. Het laatste anderhalf jaar werk ik als Java web developer aan www.tijd.be en www.lecho.be (en een hele boel subsites hiervan zoals www.netto.be en dergelijke). Hiervoor werk ik in alle lagen van de applicatie (van database tot css / js).
4. Doe je, buiten je werk, ook jsp? En zo ja, heb je een bepaald proces om te beslissen welke taal je gaat gebruiken? Wanneer ik buiten de werkuren iets doe werk ik meestal in PHP. Dit hoofdzakelijk om dezelfde reden waarom ik er aanvankelijk mee begonnen ben. Eenvoudige configuratie en hosting zijn hier vooral doorslaggevend.
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
10
5. Zijn er bepaalde dingen die je handiger vindt in php of in jsp (bijvoorbeeld: geen enums (behalve met SPL) in php, ...) Ik mis vooral vaak de type checking in PHP. Het feit dat PHP loosely typed is maakt het zeer krachtig, maar ook zeer gevoelig voor fouten in de code. In Java mis ik dan weer regelmatig de mogelijkheid om functies aan te roepen op basis van strings ( zoals je in php bvb. $class->$methodname() kan doen ).
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
11
4. Installeren van servers (simpele setup) 4.1. Inleiding In dit deel van het werk is het de bedoeling servers te draaien als lokale testomgeving voor de gemiddelde huis-, tuin- en keukendeveloper. Het gaat dus om simpele servers die, indien mogelijk, draaien op de eigen lokale machine. Deze servers moeten makkelijk te configureren en te beheren zijn.
4.2. Overzicht van de servers In deze setup zijn er 2 servers: een Microsoft Windows Server 2008 R2, die sowieso op een aparte machine (of eventueel virtueel) moet draaien, en een Ubuntu Desktop 10.10 (linux). De Ubuntu Desktop 10.10 kan vervangen worden door een Ubuntu Server 10.10 indien gewenst. Concreet zullen deze machines het volgende bevatten: Server 1 (Microsoft Windows Server 2008 R2)
IIS 7.0
Microsoft SQL server 2008 R2
Extra PHP support voor IIS
Server 2 (Ubuntu Desktop 10.10)
Apache 2
PHP 5.3
MySQL
Apache Tomcat
Firebird
phpMyAdmin
Webmin
Mod-rewrite
4.3. Opzetten van de servers Zoals eerder in dit werk vermeld (zie inleiding) wordt voorlopig enkel het opzetten van een gedeelte van Server 2 besproken. Verder wordt steeds gebruik gemaakt van de meest eenvoudige methode.
4.3.1. Opzetten van Server 2: Ubuntu Desktop 10.10 (gedeeltelijk) Hier vertrekken we van een nieuwe Ubuntu Desktop 10.10 installatie. Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
12
Figuur 1: Een nieuwe Ubuntu Desktop 10.10 installatie
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
13
Figuur 2: Open een terminalvenster
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
14
Figuur 3: Installeer tasksel met "sudo apt-get install tasksel"
Tasksel is een debian utility die default geïnstalleerd staat op en gebruikt wordt in Ubuntu Server. Het biedt de mogelijkheid taken te maken (en komt ook met enkele voorgeïnstalleerde taken) om gebruik te vergemakkelijken.
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
15
Figuur 4: apt-get geeft weer welke paketten worden geïnstalleerd en vraagt om confirmatie
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
16
Figuur 5: apt-get installeert tasksel
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
17
Figuur 6: Installeer een lamp-server met het commando "sudo tasksel install lamp-server"
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
18
Figuur 7: Na enige tijd komt dit scherm tevoorschijn. Tasksel is bezig met installeren
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
19
Figuur 8: Voer een wachtwoord in voor de root gebruiker van mysql. Onthoud dit
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
20
Figuur 9: Herhaal het wachtwoord
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
21
Figuur 10: Tasksel configureert
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
22
Figuur 11: Ga na het installeren naar een browser en typ "http://localhost/" in
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
23
Figuur 12: Nu staan de web files in /var/www/. Hier heeft de gewone gebruiker geen schrijfrechten. Om development te vergemakkelijken willen we de webroot verplaatsen naar ~/server. (In deze installatie /home/wim/server). Open een texteditor als root (sudo gedit)
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
24
Figuur 13: De editor is geopend
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
25
Figuur 14: Open /etc/apache2/sites-enabled/000-default
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
26
Figuur 15: Pas de documentRoot (waar de files staan) aan naar de nieuwe map
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
27
Figuur 16: Doe dit ook bij de directory config. Sla op en sluit gedit
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
28
Figuur 17: Open nu een texteditor met gewone permissies. (commandline: gedit of via het menu)
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
29
Figuur 18: Typ hier een simpele HTML pagina
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
30
Figuur 19: Sla dit op onder /home/wim/server/index.html
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
31
Figuur 20: Herstart apache met "sudo apachectl restart"
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
32
Figuur 21: Open de browser opnieuw en test of het werkt
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
33
Figuur 22: Open gedit weer en typ een php pagina. Hier wordt de functie phpinfo() opgeroepen. Deze geeft info over de installatie weer.
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
34
Figuur 23: Sla de pagina op in /home/wim/server/phpinfo.php
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
35
Figuur 24: Ga in de browser naar http://localhost/phpinfo.php
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
36
Figuur 25: Nu gaan we phpMyAdmin installeren. Typ "sudo apt-get install phpmyadmin"
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
37
Figuur 26: Na enige tijd vraagt men voor welke server men configureert. Druk op spatie bij apache2
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
38
Figuur 27: Typ enter om verder te gaan
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
39
Figuur 28: phpMyAdmin wordt geïnstalleerd
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
40
Figuur 29: Er komen nog enkele vragen. Hier vraagt men om de databases te configureren. Druk enter bij Yes
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
41
Figuur 30: Typ het rootpassword van mysql in
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
42
Figuur 31: Typ een wachtwoord in voor phpMyAdmin (mag hetzelfde zijn als mysql)
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
43
Figuur 32: Herhaal dat laatste wachtwoord
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
44
Figuur 33: phpMyAdmin installeert verder
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
45
Figuur 34: Herstart Apache
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
46
Figuur 35: Ga naar http://localhost/phpmyadmin/
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
47
Figuur 36: Voor makkelijke configuratie willen we webmin gebruiken. Ga naar de website van webmin http://www.webmin.com en druk links op Debian Package
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
48
Figuur 37: Je wordt omgeleid naar Sourceforge
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
49
Figuur 38: Klik om te openen met Ubuntu Software Center (of sla op en open later met Ubuntu Software Center)
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
50
Figuur 39: Ubuntu Software Center komt tevoorschijn
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
51
Figuur 40: We vertrouwen webmin. Klik op install
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
52
Figuur 41: Webmin is geïnstalleerd
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
53
Figuur 42: Herstart Apache
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
54
Figuur 43: Ga naar https://localhost:10000/ (in Firefox en Google Chrome kan dit problemen geven met het https certificaat)
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
55
Figuur 44: Log in met je username en wachtwoord
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
56
Figuur 45: Dit is de webmin startpagina
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
57
Figuur 46: Ga naar servers -> apache webserver en klik op Global Configuration
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
58
Figuur 47: Klik op configure apache modules en scroll tot je rewrite ziet
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
59
Figuur 48: Selecteer rewrite en scroll verder tot je de knop ziet om verder te gaan.
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
60
5. Verklarend Woordenboek 5.1. Compiled vs. Interpreted Sommige
talen
worden
gecompiled, sommigen worden geïnterpret.
Bij
compileren
wordt de code één keer (bij elke aanpassing van de code) omgezet in machinecode en wordt later de machinecode gebruikt om het programma uit te
voeren.
Bij
interpreten
wordt bij elke aanvraging elk nodig lijntje geïnterpreteerd en wordt het juiste lower-level commando uitgevoerd. Bij een gecompilede
taal
zal
het
runnen van het programma Figuur 49: Webcomic XKCD over Compilen sneller gaan, maar het initiële compilen kan, zeker bij grote projecten, lang duren, aangezien alle code wordt gebruikt.
5.2. Routing Het herleiden van een URL naar de juiste pagina (en evt. functie). Soms wordt een pagina gewoon direct aangesproken (bv. http://localhost/phpinfo.php) maar soms wordt gebruik gemaakt van zogenaamde clean URLs (bv. http://some-ecommerce-website.com/products/applepie/) waarna men gebruik moet maken van routing.
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
61
Bibliografie 65.190.170.230 e.a., - , Compiler, internet, 16/10/2010,( http://en.wikipedia.org/w/index.php?title=Compiler&oldid=391108295). O0Rollo0o e.a., - , ASP.NET, internet, 18/10/2010, (http://nl.wikipedia.org/w/index.php?title=ASP.NET&oldid=21221451) 77.46.215.124 e.a., - , ASP.NET, internet, 27/10/2010, (http://en.wikipedia.org/w/index.php?title=ASP.NET&oldid=393205714)
Johnc e.a., - , ASP.NET why runat=”server”, internet, 20/11/2008, (http://stackoverflow.com/questions/304290/asp-net-why-runatserver) MrBlueSky e.a., - ,PHP, internet, 26/09/2010, (http://nl.wikipedia.org/w/index.php?title=PHP&oldid=22759364) 146.231.129.51 e.a., - ,PHP, internet, 27/10/2010, (http://en.wikipedia.org/w/index.php?title=PHP&oldid=393196568) MaBoehm e.a., - , JavaServer Pages, internet, 02/10/2010, (http://en.wikipedia.org/w/index.php?title=JavaServer_Pages&oldid=388299805) Wimpus e.a., - , JavaServer Pages, internet, 11/06/2010, (http://nl.wikipedia.org/w/index.php?title=JavaServer_Pages&oldid=17160895) Onbekend, - , JSP Tutorial, internet, 27/10/2010, (http://www.jsptut.com/)
Onbekend, - , General Information, internet, 22/10/2010, (http://be.php.net/manual/en/faq.general.php) Scott Hanselman, S. H., What is ASP.NET, internet, 09/03/2010, (http://www.asp.net/general/videos/what-is-asp-net)
Vrije Keuze: “PHP, JSP & ASP.NET: Een vergelijking tussen webdevelopment talen”
62