VeloxIT Home
close

Kontaktformular

Kontaktinformasjon
Firma:
Navn:
e-mail:
Telefon:
Melding:
Interesseområder Produktutvikling
Prosjektstøtte
Ressursleie
Java
MS.NET
SmallTalk
WEB2/Ajax
Verifikasjon:Gjengi bokstavene nedenfor)

Kontaktinformasjon
Veloxit bruker Seaside til Web2.0 PDF Utskrift E-post
Skrevet av Jan Olaf Mikkelsen   
tirsdag 02. oktober 2007

Seaside LogoGjennom et halvår har vi i VeloxIT prøvd ut et nytt verktøy for å enklere kunne lage WEB2.0 applikasjoner.  Seaside er et open source rammeverk som gjør at man kan lage web applikasjoner som om man lager vanlige desktop applikasjoner.  

Glem html sider, http requests og å spre dialogen på utallige små konfig filer.  I Seaside lager man gjenbrukbare visuelle komponenter som så settes sammen til sider.  Knapper og linker på sidene linkes direkte til metoder i applikasjonen slik at koden blir kort, oversiktlig og lesbar.

Vår erfaring så langt er positiv og vi har brukt Seaside til prototypen av Actigon.  Vi kan så absolutt tenke oss å bruke Seaside også til andre prosjekter.

Seaside er et forholdsvis nytt rammeverk, men det allerede kommet en del kommersielle applikasjoner i tillegg til mange open source applikasjoner.

Seaside bryter radikalt med hvordan de fleste web rammeverk fungerer og kalles ofte "the heretic framework".  La oss derfor ta et lite eksempel først, for å kunne forklare essensen i Seaside. 

Seaside_fig2.pngEksemplet går ut på å lage en enkel webapplikasjon som skal spørre brukeren om å gi inn ett tall på en side, spørre brukeren om ett tall til på neste side og så vise fram summen av de to tallene på en tredje side.  En enkel applikasjon, men likevel litt komplisert som en web applikasjon.  Man ville typisk produsere tre html sider:

Man ville også måtte sørge for å transportere brukerens svar mellom sidene, men slik at de ikke kunne ses. Brukerens første svar må transporteres via side 2 til side 3 for å vises frem.

Dette blir lett komplisert når man har mer enn to tall å forholde seg til.  Det er også lett å se at side to ikke enkelt kan byttes ut, eller brukes i andre sammenhenger siden den er så sterkt knyttet til verdien (value1) fra første side.

Det ville utvilsomt være mye enklere om man kunne gjøre det på samme måte som i en desktop applikasjon, ganske enkelt spørre brukeren om tallene som i figuren til høyre:

Seaside_fig3.png

Og det er nettopp det man gjør i Seaside.  Hele forretningslogikken kan holdes samlet og fragmenteres ikke ut i mange forskjellige filer.  Hver visuelle komponent er et objekt og kan brukes som et i koden.  Det å vise fram en side blir plutselig bare et metodekall i applikasjonen din.

Vi ser også at komponenter gjenbrukes enkelt ved at metoden "request:" kalles med nye ledetekster.  Både request og inform er standardkomponenter i Seaside og fungerer som man forventer i en desktop applikasjon.

Det vi spesielt liker med Seaside er:

  • Man arbeider kun i ett miljø - ikke flere språk å forholde seg til (bortsett fra CSS!)
  • Man bygger web grensesnittet av komponenter - som enkelt kan gjenbrukes
  • Logikk og dialogprosesser ligger i enkelt lesbar kode (en plass)
  • Debugging direkte i browseren når man oppdager feil - kildekode er tilgjengelig og kan endres i browseren
  • Enkelt å bruke AJAX for dynamiske grensesnitt (via scriptaculous)

IEEE Software har i sitt høstnummer en artikkel om Seaside (pdf) som gir god presentasjon av rammeverket..


Seaside er fullstendig objektorientert og bygd på toppen av Smalltalk slik at man automatisk får tilgang til alle utviklingsverktøy i disse miljøene.  Seaside finnes i dag på fire forskjellige Smalltalk dialekter og vi i VeloxIT har brukt Visualworks varianten av Smalltalk. Hovedsaklig siden vi har lang erfaring med VisualWorks. 

Utifra vår erfaring så langt, ser vi at Seaside uten videre kan benyttes til intranett -og mindre web applikasjoner.  Vi har kun testet funksjonalitet og ikke sett så mye på performance ennå.  Seaside kan både kjøres bak Apache og skaleres opp vha load balancing, men dette har vi ikke testet ut selv.

 

Sist oppdatert ( onsdag 03. oktober 2007 )
 
Neste >