Ext.js – first project (Swedish)
Webutveckling är stenålders. Modern webutveckling på klientsidan inbegriper avancerade DOM-operationer, XML transfereringar, JSON skapande och läsande. För att inte nämna CSS och HTML. All logik på klienten gör man med JavaScript, ett datorspråk som utvecklats till att bli extremt kraftfullt och vars rykte som ”barnspråk” börjar släppa. Javascripts kraftfullhet är också dess akilleshäl. Språket är interpreterande och det finns få verktyg som hjälper utvecklaren med även de mest basala ting som klassbläddring eller grammatikkontroll. Sedan kommer vi till att vi trots femton år av webläsarutveckling ännu inte har en situation där alla på marknaden förekommande webbläsare valt att implementera standarder på samma sätt.Vi börjar se en ljusning dock, det kom ett relativt bra verktyg för programmering i och med Aptana och de JavaScriptramverk som vi följt med spänning de sista åren börjar mogna och somliga är riktigt kompetenta med bra funktioner, lättfattlig kod och inte minst redig dokumentation.Jag har länge förordat att utvecklarna på Strand borde samsas om några få JavaScriptramverk som vi lär oss ordentligt och använder tidigt i våra projekt. Inte bara för att underlätta utvecklingen mot olika webbläsare utan också för att lyfta våra produkter till den nivå som Internetanvändarna vänjer sig vid på Internet. Vi har nu sjösatt vår första applikation som använder ramverket Ext.js.Ext.js är ett ramverk som från början byggde vidare på YUI (Yahoo user interface), då hette det YUI-EXT, men numera är det helt fristående. Licensen är LGPL men det finns också en kommersiell licens med utökad support och hjälp.Ext.js erbjuder mängder av funktioner med allt från en enkel men snygg progressmeter till en komplett excelliknande tabell med paginering, in-line redigering, remote sorting etc. Till det här projektet har vi förutom fönster och menyhantering mest använt klasserna DataStore och Grid.DataStore är som namnet antyder en klass som innehåller data. Man bestämmer hur datat skall se ut och kopplar sedan en proxy mot sin DataStore instans. Proxyn kan vara antagligen vanligt HTTP men det finns också en memoryproxy. Den kanske ballaste proxyn är dock en scriptproxy som gör att du kan hämta datat med XHR även mot en annan domän.Grid är en klass som skapar en excelliknande tabell. Datat kommer från en tidigare definierad DataStore. I Griden kan man bestämma hur sorteringen skall gå till, antingen internt hos klienten för mindre datamängder eller där allt datat redan hämtats, eller remote på servern för att kunna få en sortering även när inte all data är nerladdat. Griden kan också utökas med redigeringsmöjligheter så att man direkt i tabellen kan ändra och spara information, precis som i excel. Det går att ha olika datatyper i griden, så vissa celler kan vara en checkbox, andra en dialoglista och en tredje kanske ett validerande e-post fält.Att använda ett ramverkMed det som kallas web2.0 kom också de avancerade klientfunktionerna. Detta kräver en helt annan systemering än vad åtminstone Lotus Domino utvecklarna varit vana vid. Från att ha gjort det mesta väldigt snabbt och enkelt på serversidan, med ibland en mindre tilltalande yta hos webklienten går man till en relativt enkel serverimplementation med en betydligt ökad komplexitet hos javascriptkoden. Det här kräver en redig systemeringsfas i klass med backend programmering i Java eller ASP. Det är väldigt lätt för vana server utvecklare att förringa komplexiteten i klientkoden med påföljd att systemet blir svåröverskådligt och svårunderhållet. Om man däremot tar höjd för det här tidigt i processen kommer ramverken inte bara ge utvecklaren en trevligare arbetssituation utan kunden kommer få en applikation som håller den klass de kan förvänta sig 2007.

Stumble It!