Innledning
Hei og velkommen til Webteknikker! Du vil nå lære hvordan du lager en komplett webapplikasjon ved å kombinere gjenbruk av komponenter andre har laget, med kode og design du selv produserer. Det betyr at du kan lage avanserte løsninger tilpasset kravene i prosjektene du jobber med, uten å måtte lage all programvaren selv.
Å jobbe på denne måten krever at du har en bred kunnskap om aktuelle teknologier, som for eksempel PHP og JavaScript, samtidig som du kan å benytte deg av komponenter som andre har laget. I Webteknikker tar vi derfor for oss en rekke teknologier, før vi bruker denne kunnskapen til å nyttegjøre oss av ferdiglagde komponenter.
Tankegangen er som følger:
- Definere behov: Du har et definert behov, for eksempel å lage en videotjeneste ala YouTube
- Finne komponenter: Du går ut på nettet på jakt etter komponenter som dekker deler eller hele behovet ditt
- Sy sammen: Med utgangspunkt i det beste du fant begynner du å "snekre sammen" løsningen.
- Du vil typisk installere flere komponenter som til sammen dekker behovet ditt, og så lager du "limet" selv.
- Det vil si at du må få komponentene til å snakke sammen, typisk ved å programmere litt.
- Videre vil du typisk modifisere eller tilpasse komponentene slik at de bedre treffer behovet ditt.
- Repeter: Du vil som regel gå flere runder mellom punkt 2 og punkt 3 før du er i mål
Når du har gjennomført faget har du laget din egen webapplikasjon hvor du har benyttet denne teknikken.
Høres dette spennende ut? Eller høres det vanskelig ut? Det er kanskje enklere enn du tror -- la oss ta for oss noen eksempler. Vi ser her på noen behov og plukker frem noe av den mulige programvaren som google finner for oss:
- Du har data som du ønsker å produsere PDF-er av:
- PDFlib: Bibliotek for å jobbe med PDF-er fra for eksempel PHP
- FPDF Library: Høynivå PHP-bibliotek for å jobbe med PDF-er
- ps2pdf: Skriv ut til en fil og konverter fila til en PDF
- Du ønsker et diskusjonsforum på nettstedet ditt:
- phpBB: Avansert diskusjonsforumprogramvare
- bbPress: Enkel diskusjonsforumprogramvare
- UBB.threads: Komersiell, avansert diskusjonsforumprogramvare
- Du ønsker en komplett publiseringsløsning for nettstedet ditt:
Av eksemplene forstår du at det går an å bruke enkle komponenter (lage PDF) og det går an å bruke omfattende komponenter (komplett publiseringsløsning). Ofte vil du ha behov for å kombinere, og tar da gjerne utgangspunkt i en omfattende komponent og supplerer med små etter behov.
De omfattende komponentene er typisk modulbaserte i seg selv, det vil si at de består av en kjerne og har tilleggsmoduler som du kan velge å bruke dersom du ønsker. Slike tilleggsmoduler kan følge med komponenten eller lastes ned separat, eller -- du kan lage dine egene dersom du ikke finner noen som passer.
Hva ønsker du å få ut av Webteknikker?
Kanskje tar du faget Webteknikker fordi du ønsker å lære nettopp hvordan du kan lage webapplikasjoner ved hjelp av den komponentbaserte metoden som er beskrevet. Da føler du deg sannsynligvis trygg etter å ha lest innledningen til faget.
Men, kanskje er du bare på jakt etter å lære deg mer om webutvikling. Du vil lære deg en del nye teknologier, som PHP og AJAX, slik at du er i stand til å anvende disse ved en senere anledning. Da er du kanskje redd for at faget er annerledes, kanskje også vanskeligere, enn du hadde trodd.
Dersom du tilhører sistnevnte kategori kan vi berolige deg med følgende:
- Du vil lære akkurat det du hadde trodd -- du vil lære mer om webutvikling og bli kjent med en rekke nye teknologier
- Å jobbe med komponenter som andre har laget er med på å oppfylle ønsket om å lære mer om webutvikling og de nye teknologiene. Du får med andre ord trening i å bruke teknologiene du ønsker å lære.
- Du vil sannsynligvis bli inspirert av denne måten å jobbe på -- vi er sikre på at du vil ha nytte av denne kunnskapen i fremtidige prosjekter
Vi tror altså at Webteknikker passer for alle som vil lære mer om webutvikling.
Forutsetninger
For å jobbe med Webteknikker er du avhengig av noen forkunnskaper:
- Kan å lage statiske websider
- Forstår HTML
- Kan å bruke tabeller i HTML
- Kan litt om stilsett (CSS)
- Kan litt programmering
Dersom noe av dette er ukjent stoff anbefaler vi at du setter deg inn i dette på egen hånd. HIST tilbyr faget Publisering på Internett som dekker dette stoffet.
Begreper
I Webteknikker bruker vi begrepet "komponentbasert webutvikling" i betydning "utvikling av webapplikasjoner basert på bruk av komponenter andre har laget".
I mange andre sammenhenger brukes begrepet "komponentbasert utvikling" mer generelt, da til å beskrive applikasjonsutvikling hvor funksjonalitet legges i separate og uavhengige komponenter, ref wikipedia.
Valg av programmeringsplattform
I Webteknikker baserer vi oss i stor grad på bruk av programmeringsplattformen/språket PHP for å lage webapplikasjoner. Vi kunne valgt å bruke Microsoft ASP.NET, Java (Tomcat, JBoss, ...), PERL, Python eller andre alternativer. Årsaken til at vi har valgt nettopp PHP er:
- PHP er fritt tilgjengelig og fungerer på alle plattformer (Windows, Mac, Linux, ...)
- PHP er lett å komme i gang med
- PHP har best tilgang på fritt tilgjengelige komponenter nedlastbart på Internett
Har du primært behov for å jobbe med andre programmeringsplattformer enn PHP vil du likevel ha utbytte av det du lærer i Webteknikker. Prinsippene er de samme, og mange av emnene vi tar opp er også helt eller delvis teknologiuavhengige (for eksempel tilstandsbehandling) eller berører ikke programmeringsspråket på tjeneren (for eksempel JavaScript).
Innhold i faget
Som nevnt innledningsvis består Webteknikker både av en gjennomgang av aktuelle teknologier, og en innføring i hvordan vi bygger komponentbaserte webapplikasjoner.
Vi tar for oss følgende teknologier:
- Installasjon og oppsett av webtjener (Apache), scriptspråk (PHP) og databasetjener (MySQL)
- PHP (Script på tjenersiden)
- Tilstandsbehandling (sesjonshåndtering)
- JavaScript (Script på klientsiden, altså i nettleseren)
- Ajax: Dynamiske klientsideapplikasjoner
- Avansert innhold (webgl, html5, m.m.)
- Sikkerhet for webutviklere
- Datautveksling: Bruke data fra andre (web services m.m.)
- Web på mobile enheter
Gjennom disse temaene vil du bli kjent med bruk av programvarekomponenter som andre har laget, slik at du i slutten av faget kan gjennomføre en større case-oppgave med bruk av denne teknikken.
Installasjon av programvare
Før du starter å jobbe med resten av faget skal du installere webtjeneren Apache, scripttolkeren PHP og databasetjeneren MySQL.
Hvorfor skal du gjøre det?
- Webtjener med scripttolker er nødvendig for å lage dynamiske websider, altså websider som genereres i det du besøker dem. Noen websider inneholder lite dynamikk, mens andre, slik som mange av sidene på facebook, inneholder mye.
- For svært mange formål er datalagring i en database det mest hensiktsmessige og du må derfor kunne å jobbe med databaser for å lage webbaserte applikasjoner.
- Å lage komponentbaserte webløsninger krever at du har kontroll med programvaren som skal drive nettstedet, og du må derfor ha den installert på en maskin hvor du selv kan gjøre konfigurasjonsendringer, stoppe og starte systemet, og lignende.
- Gjennom å installere og drifte ditt eget webtjenermiljø opparbeider du deg kunnskap som er nødvendig for å kunne lage komponentbaserte webløsninger.
Vi håper du nå er inspirert til å sette i gang med programvareinstallasjonen!
Gi oss tilbakemelding!
Savner du noe? Synes du gjennomgangen av et emne var dårlig? Var noe spesielt bra?
Vi vil vite det! Kontakt oss og gi oss tilbakemelding. Vi bruker din tilbakemelding til å gjøre Webteknikker enda bedre.