Nyheter, Prylar, Android, Mobiler, Appnedladdningar, Android

Bygga rika internetapplikationer med ramar

Följande artikel hjälper dig: Bygga rika internetapplikationer med ramar

JavaScript-bibliotek, ICEfaces, Adobe Flash 4, Microsoft Silverlight och nu har HTML5 tävlat om webbdominans när webben kastas in i en ny era – en era som domineras av rika internetapplikationer (RIA för kort). Syftet med den här artikeln är att definiera vad RIA är, förklara varför webben har gått mot RIA, utforska de olika RIA-ramverk som finns idag, ge en översikt över för- och nackdelarna för varje ramverk och diskutera hur dessa nya teknologier kan samexistera i framtiden.

Vad är en RIA?

En RIA, eller rich internet application, är en webbapplikation som beter sig som en stationär applikation.

Innan RIA började dyka upp var de flesta webbapplikationer sammansatta av statiska sidor. Sumo Paint är en Flash-baserad RIA, som fungerar som ett grafikredigeringsprogram som Photoshop. Till skillnad från skrivbordsapplikationer resulterade varje interaktion med en webbsida vanligtvis i att en helt ny sida laddas om. Desktopapplikationer, å andra sidan, hade mycket bättre användarinteraktivitet eftersom all bearbetning gjordes inbyggt på användarens dator, vilket resulterade i en mer sömlös användarupplevelse.

Som ett resultat började mjukvaruutvecklare fråga sig själva: “Ska min produkt vara en skrivbordsapplikation eller en webbapplikation?” Det har alltid varit en rättvis fråga, eftersom båda typerna av applikationer har mycket starka för- och nackdelar. Desktopapplikationer har smidigare användarinteraktivitet, men kräver distribution och hantering av programuppdateringar när programvaran har levererats. Webbapplikationer, å andra sidan, är lättillgängliga från webben, vilket befriar den från problemen relaterade till mjukvarudistribution och uppdateringar, men saknar mycket användarinteraktivitet.

Så hur kan vi ha det bästa av två världar? RIA är det bästa av två världar. RIA:er distribueras via webben och har mycket rik användarinteraktivitet.

Sedan tillkomsten av Ajax, en metod för webbapplikationer att göra serverförfrågningar med JavaScript utan att ladda om en webbsida, har ny teknik dykt upp till vänster och höger för att ansluta sig till RIA-rörelsen. Bland dessa tekniker finns ramverk som hjälper utvecklare att bygga och distribuera rika internetapplikationer, som JavaScript-bibliotek, ICEfaces, Adobe Flash 4 (tidigare Flex 3), Microsoft Silverlight och HTML5. Låt oss prata om dessa RIA-ramverk en efter en.

JavaScript-bibliotek för webbapplikationsutveckling

JavaScript-bibliotek som jQuery och MooTools var en av de första teknikerna som verkligen hjälpte till att distribuera smarta och interaktiva rika webbappar. De tillhandahöll ett ramverk för en RIA-applikation som utnyttjade skript på klientsidan för att hantera front-end-gränssnittsfunktioner.

De är i grunden JavaScript-filer som består av en samling användbara, cross-browser-testade funktioner för att göra saker med Ajax och hantera vanliga användarinteraktioner som att dölja och visa innehåll baserat på en användardriven händelse. Några av de mest populära idag är jQuery (särskilt med jQuery UI), MooTools, YUI (Yahoo! User Interface library) och ExtJS.

Alla dessa bibliotek inkluderar RIA-komponenter som rutnät, grafer och komplexa formelement, såväl som verktyg för att hantera Ajax. Det bästa av allt är att de flesta fantastiska JavaScript-bibliotek för webbutveckling är öppen källkod. JavaScript-bibliotek är bra att använda om du inte vill betala för en integrerad utvecklingsmiljö (IDE) men ändå vill ha snygg och professionell RIA-funktionalitet på din webbplats.

Webbplatser som använder JavaScript-bibliotek inkluderar Google, Digg, Yahoo, Amazon, Microsoft, Twitter och Best Buy.

ICEfaces

ICEfaces utökar standardramverket JavaServer Faces (JSF) och är avsett att förenkla programmerarens arbetsflöde genom att ta bort JavaScript från ekvationen. Med andra ord hanterar ICEfaces all JavaScript/Ajax för din webbapplikation via Java API:er.

Detta förenklar avsevärt uppgiften att skapa rika internetapplikationer genom att ta bort några av de komplexiteter som introduceras genom att bygga anpassade JavaScript-funktioner. ICEfaces är bra att använda om ditt team till största delen består av Java-utvecklare, om din webbapplikation inte kräver andra komplexa komponenter som ICEfaces inte erbjuder, eller om din webbapplikation är händelsestyrd. Om din app är händelsestyrd, se till att du förstår att ICEfaces inte erbjuder äkta “server-push” i den meningen som HTML5, Flash Builder 4 och Silverlight kan.

Istället använder den en lång pollingmetod för att simulera serverpush. Webbplatser som använder ICEfaces inkluderar Boeing, NASA, Union Pacific, T-Mobile och Bank of America.

Adobe Flash Builder 4

Flash har funnits länge, men att bygga hela webbapplikationer av Flash brukade vara mer problem än det var värt fram till introduktionen av Flex, som är en tillägg till Flash som tillhandahåller RIA-webbkomponenter.

Det som gör Adobe Flash Builder 4 så spännande är dess plattformsoberoende karaktär, vilket gör att den kan köras på exakt samma sätt i alla operativsystem och alla webbläsare. Om du jämför det med JavaScript, där webbläsare har olika JavaScript-motorer som hanterar och bearbetar din kod, har Adobe Flash en motor som dina användare installerar via Adobe Flash-webbläsarplugin (vilket de oftare än inte redan skulle ha). Flash Builder 4-applikationer kan göra detta eftersom de är inbäddade i HTML-sidor, vilket innebär att webbläsaren i sig inte har någon effekt på applikationens prestanda.

Det betyder att du kan köra även de mest komplexa webbapplikationerna korrekt i IE6 om du vill (detta är förstås en förenkling eftersom Flash-pluginet/motorn regelbundet uppdateras, så det skulle bero lite på användarens version av plugin). Dessa applikationer åtföljs vanligtvis av bearbetning på serversidan som en Java-backend och behöver Flash Builder 4 IDE för utveckling. Adobe Flash Builder 4 är bra att använda om din webbapplikation kräver komplex grafik, om ditt team huvudsakligen består av Java-utvecklare (eftersom det fungerar bra med Java), eller om din applikation använder en händelsestyrd arkitektur.

Webbplatser som använder Flash för webbapplikationer inkluderar Mint.com, Flickr och Hyundai.

Silverlight

Silverlight är i grunden Microsofts version av Adobe Flex/Adobe Flash. Det har fått en del dragkraft, men verkar inte komma ikapp Adobe Flash när det gäller popularitet.

Silverlight-applikationer måste uppenbarligen ha en .NET-backend eftersom det är en Microsoft-produkt. Detta betyder dock att du kommer att ha en stramare Silverlight/.NET-integration jämfört med Adobe Flex/[some server-side scripting language like PHP]. Silverlight är ett bra alternativ om din webbapplikation kräver komplex grafik, om ditt team huvudsakligen består av .NET-utvecklare eller om din applikation använder en händelsestyrd arkitektur.

Webbplatser som använder Silverlight inkluderar Netflix.

HTML5

HTML5 är den senaste utvecklingen inom RIA-rörelsen. HTML5 är i huvudsak resultatet av att slå samman det bästa av HTML4, JavaScript, CSS, JavaScript-bibliotek och Flash till en enda specifikation som utnyttjar API-modellen.

HTML5 är en öppen teknik, vilket innebär att det inte kommer att finnas ett enda styrande organ som Adobe för Flash eller Microsoft för Silverlight. Eftersom HTML5-specifikationerna ännu inte är kompletta och IE9 ännu inte har släppts (läs om nya IE9-funktioner), måste du vänta lite innan du bygger en produktionsklar HTML5-webbapp. För närvarande stöder alla större webbläsare HTML5 förutom IE8 (se figur).

Eftersom IE8 har en stor del av webbläsarmarknaden kommer HTML5 verkligen inte att bli mainstream förrän IE9 släpps. När HTML5 väl har fått allmänt stöd kommer det att vara bra att använda om du inte vill köpa eller lära dig en IDE (som du skulle behöva för ramverk som Flex och Silverlight), din applikation använder en händelsedriven arkitektur, eller om du skulle använd hellre inbyggd HTML-funktionalitet och JavaScript API:er istället för att använda JavaScript-bibliotek från tredje part för grundläggande RIA-funktioner. Även om HTML5 kan hantera grafik mycket bra, är det fortfarande lättare/snabbare att använda Flash och Silverlight för komplex grafik och animering.

Framtiden för RIA

Är HTML5-appar framtiden för internet? Inte uteslutande. Så länge det finns kreativa och innovativa webbutvecklare där ute som drivs av att skapa något speciellt, kommer det alltid att finnas nya teknologier som kan ge fantastiska saker som HTML5 eller någon annan webbteknik inte kommer att kunna erbjuda.

Kreativitet och innovation är anledningarna till att JavaScript-bibliotek, ICEfaces, Flash, Silverlight och HTML5 kom till från början. Framtiden för webben kommer att bestå av många samexisterande teknologier, precis som det är idag.

Relaterat innehåll

Table of Contents

Toggle