Hur väljer man ett språk eller ramverk för en framtida flexibel webbtjänst?

Storlek: px
Starta visningen från sidan:

Download "Hur väljer man ett språk eller ramverk för en framtida flexibel webbtjänst?"

Transkript

1 Hur väljer man ett språk eller ramverk för en framtida flexibel webbtjänst? En fallstudie på en värdekodstjänst JAKOB RASMUSSEN Examensarbete Stockholm, Sverige 2009

2 Hur väljer man ett språk eller ramverk för en framtida flexibel webbtjänst? En fallstudie på en värdekodstjänst JAKOB RASMUSSEN Examensarbete i medieteknik om 30 högskolepoäng vid Programmet för medieteknik Kungliga Tekniska Högskolan år 2009 Handledare på CSC var Hannes Ebner Examinator var Marko Turpeinen TRITA-CSC-E 2009:066 ISRN-KTH/CSC/E--09/066--SE ISSN Kungliga tekniska högskolan Skolan för datavetenskap och kommunikation KTH CSC Stockholm URL:

3 Sammanfa-ning Genom intervjuer, workshops och en prototyp togs rekommendationer fram på vilket språk/ramverk som det borde användas i en webbtjänst som uppdragsgivaren Micromarketing utvecklade. I intervjuerna stod det ganska tydligt klart att om man har för avsikt att använda konsulter och extern personal för att sköta själva utvecklingen bör man använda sig utav PHP, ASP.NET eller Java. Det framgick även att beroende på hur pass objekt orienterat ett system är så är det betydligt viktigare för förståelsen av koden än vilken syntax språket använder som man skrivit systemet i. Web services visade sig ha en mycket stor del i MobiCodes vilket ledde till en granskning av vilken typ av web service som man borde använda. Främst studerades den typen av web services som bygger på W3C:s standarder och RESTful web service. Prototypen byggdes i Java och tog hjälp av ett antal nyare bibliotek för att bl.a. testa RESTful web services och att använda convensions over con*iguration i ORM:n. Rekommendationen blev den att vill man få den bästa koden bör man använda sig utav Java eller ASP.NET, i Micromarketings fall blev den slutgiltiga rekommendationen Java eftersom man idag sitter i en open source miljö.

4 How to choose a language or framework for a future flexible web service? a case study of a refund service Abstract Through interviews, workshops and a prototype a couple of programming languages and frameworks were presented as options for continued development of one of Micromarketings web services. The interviews indicated that if you attend to use consults and external people for the development you probably would like to use PHP, ASP.NET or Java. The interviews also indicated that the importance of object oriented architecture was more important than what kind of language syntax you were using when it comes to understanding the code. Web services turned out to be a major part of MobiCodes which led to a deeper studies in W3C web services standards and the RESTful way of designing web services. The prototype were developed in Java and tested a few quit new librarys, one for designing the RESTful web service and another for testing the conventions over con*igurations in the object relational mapper. The Uinally recommendation was for Micromarketing to use Java, you could also use ASP.NET but since Micromarketing already had an open source environment it was more natural to use Java. Both Java and ASP.NET will most likely contribute with the best code.

5 Förord Det Uinns några personer som jag lite extra skulle vilja tacka för att jag har kunnat genomföra detta examensarbete inom webbteknik vid CSC, KTH och på Micromarketing. Ett stor tack riktas till mina handledare Hannes Ebner på KTH som har bistått med tips och idéer från den vetenskapliga sidan samt Donnie SC Lygonis från Micromarketing som bistått med all tänkbar information om MobiCodes, kontaktuppgifter till nyckelpersoner och liknande. Jag vill också passa på att tacka alla de personer som har ställt upp på intervjuer och workshops och på så sätt gjort min studie möjlig.

6 Innehållsförtecking 1. Introduk4on Bakgrund MålsäSning Problemformulering Avgränsningar Läsarmålgrupp MicromarkeGng & MobiCodes Teori Modern webbutveckling Programmeringsspråk Objektorienterad programmering MVC arkitektur Programmeringsspråk och ramverk PHP ASP.NET Java Ruby on Rails Groovy and Grails Python, Django och TurboGears ColdFusion Web services Big Web Services RESTful web services Agil utveckling (Agile development) Agil design (Agile design) Agil dokumentagon Metoder TillvägagångssäS Intervju och workshop urvalet Intervjuer Workshop Prototyputveckling Validitet och reliabilitet Genomförande & Resultat Intervju med MobiCodes utvecklare Intervju med Donnie SC Lygonis, VD på MicromarkeGng Intervju på Fröjd InteracGve AB Intervju med Norbert Täubl, Stopp Intervju med Jim Carlberg och Niklas Eriksson, Pool Telefonintervju företag som migrerat från Coldfusion Gll Ruby on Rails Workshop med Eleni Bellos och Patrik Bruhl, MicromarkeGng Analyser ColdFusion Trender/popularitet Användbarhet/struktur FunkGonalitet Övriga aspekter Prototypen Beslutsunderlag... 40

7 2. Språk och ramverk ApplikaGonen Uhörande MobiCodes AdministraGonsgränssniS TestapplikaGonen Resultat MobiCodes AdministraGonsgränssniS Test applikagonen Slutsats Rekommenda4oner Referenser Bilaga 1: Principerna bakom det agila manifestot Bilaga 2: The Zen of Python, by Tim Peters Bilaga 3: Mailksvar från Staffan Rosenberg, Poolia Bilaga 4: Mailkonversa4on Anki Snis, Manpower Figurförteckning Figur 2.1. Klasser och objekt... 5 Figur 2.2. MVC arkitektur... 7 Figur 4.1. Modell av MobiCodes och dess infrastruktur Figur 4.2. Kodtabell Figur 4.3. ASribuSabell Figur 6.1. Utdrag ur MobiCodesApplicaGon.java, definering av vilken URI som ska länkas med vilken resource klass Figur 6.2. Databas schema över MobiCodes, med Primary Key (PK) och Foreign Key (FK) Förkortningar ASP.NET Active Server Pages för Microsofts.NET ramverk CFML ColdFusion Markup Language CGI Common Gateway Interface CRUD Create Read Update Delete DRY Don t Repeat Yourself HTML HyperText Markup Language IDE Integrated Development Environment IP Internet Protocol JDBC Java DataBase Connection JSON JavaScript Object Notation JSP Java Server Pages

8 JVM Java Virtual Machine MVC Model View Controller OOP Object Oriented Programming, ObjektOrienterad Programmering ORM Object Relational Mapping PHP PHP: Hypertext Preprocessor, tidigare Personal HomePage RPC Remote Procedure Call SOAP Simple Object Access Protocol UDDI Universal Description, Discovery and Integration WSDL Web Services Description Language XML extensible Markup Language

9 1. Introduk4on Detta kapitel redogör för bakgrunden och syftet med examensarbetet. En beskrivning av frågeställningen och avgränsningar ges även i detta kapitel Bakgrund En webbläsare kan tolka html kod, all annan typ av kod skrivs ut som ren text. För att inte begränsa sig till statiska sidor där all information måste hårdkodas in i html dokument så vill man kunna använda sig av dynamiska webbsidor. Fördelarna med dynamiska webbsidor är många och en förutsättning för att vi kan använda internet som vi gör idag. Det är en förutsättning för att kunna interagera med webbsidor, göra det möjligt att kunna logga in på olika typer av sajter och ha sina egna personliga inställningar, söka på Google, skapa innehållet på Wikipedia tillsammans med alla andra användare, köpa varor eller tjänser över nätet mm. Men dynamisk webbprogrammering har förändrats en hel del sedan world wide web introducerades runt Den första typen av dynamisk webbprogrammering byggde på CGI script. CGI script var inte helt enkla att använda sig av och man började istället utveckla andra typer av språk och plattformar som var mer anpassade för att användas på webben. Det började med ett fåtal, PHP var ett av de första men med tiden så utvecklades Uler och Uler och med tiden så förändras även språket samt förutsättningarna för språket eller plattformen. Plattformar som var populära för 7 8 år sedan behöver inte vara aktuella idag och samtidigt som plattformar som inte fanns för 7 8 år sedan kan vara högaktuella idag. Valde man en plattform för ett visst antal år sedan så kan man idag se facit av det valet, oavsett om det var rätt val eller fel val så kan tiden vara inne för att byta eller migrera till en annan plattform av en eller annan anledning. Nya möjligheter har dykt upp som inte fanns i första skedet. Trenderna har förändrats och kompetensen kanske idag Uinns i en annan plattform jämfört med när man gjorde sitt val en gång i tiden. Valet man gjorde då kanske inte var tillräckligt underbyggt eller genomtänkt. Det kan Uinnas en mängd olika anledningar för att göra ett byte, det kan vara rent tekniska anledningar. Att något man är ute efter att tillgodose helt enkelt inte är möjligt i den plattform man just nu bedriver sin tjänst i. Ett av dessa företag som nu ser över sitt val av plattform är Micromarketing som idag driver en tjänst som heter MobiCodes. MobiCodes körs och utvecklas idag i ColdFusion. Mircomarketing utlyste ett examensarbete som hade till uppgift att undersöka vilken eller vilka plattformar som skulle passa för att fortsätta utvecklingen av deras tjänst. I den här studien undersöks frågeställningen enligt de metoder som Uinns i kapitel 3 för att förhoppningsvis komma fram till rekommendationer till Micromarketing Målsä-ning Målsättningen med examensarbetet är att skapa en förståelse för betydelsen av att göra ett aktivt val när man står inför utmaningen att byta språk eller ramverk för olika typer av web tjänster. Att undersöka förutsättningarna och efter det använda sig utav det språk eller ramverk som passar bäst. 1

10 1.3. Problemformulering Vilket/vilka programmeringsspråk/ramverk lämpar sig bäst för framtida Ulexibla utvecklingsprojekt? För att Uinna svar på frågeställningen användes sju stycken underfrågor: 1. Vad är nackdelarna med ColdFusion idag? Varför vill man på Micromarketing genomföra den här migrationen. Vad är inte tillfredsställande med ColdFusion? 2. Hur fungerar och vad är ColdFusion? Har ColdFusion några egenskaper som gör en att en migration till ett visst språk eller ramverk skulle vara mer fördelaktig. 3. Vilka språk och ramverk föredrar konsulter som arbetar med liknande system? För att kunna rekommendera ett språk eller ramverk som inte ska försätta Micromarketing i samma situation igen när det gäller personal rekrytering bör man titta på vad som används i branschen idag. Att även få en översyn på hur dokumentation och struktur bör se ut från branschen håll är intressant. 4. Plattformar med potentiell utveckling, prognoser för framtiden? Att titta på trenderna är en viktig aspekt. Att rekommendera det perfekta ramverket i dagsläget men som på sikt inte kommer att hålla är därför något man bör undvika. 5. Har systemet någon funktionalitet som kan vara avgörande för val av språk eller plattform? Finns det något typ av funktionalitet i MobiCodes som med fördel kan utvecklas i ett visst språk eller ramverk. 6. Vilka ekonomiska aspekter Ainns det att ta hänsyn till? Ekonomiska är en intressant fråga i utvecklings projekt som t.ex. MobiCodes. Hur bör man hantera ekonomin i systemet när man väljer språk eller ramverk. 7. Hur vill Micromarketing arbeta med systemet? Den här frågan önskas ge svar på frågor kring hur man inom företaget ska använda system, hur ska personalen arbeta med det, vad har man för visioner med systemet. Med hjälp av dessa under frågor togs lämpliga metoder fram för att besvara en eller Ulera utav dem. En samlad bild av dessa ska sedan ligga till grund för resultatet av problemställningen Avgränsningar Att avgränsa studien från språk och plattformar känns som en väsentlig del i det här examensarbetet. Dels för att det inte Uinns tid att gå igenom alla och dels för att det inte är en rimlig uppgift att göra. För att avgränsa studien till ett mindre antal ramverk så diskuterades alternativen tillsammans med handledare på Micromarketing och KTH och det ledde fram till följande språk 2

11 och ramverk: PHP, ASP.NET, Java (servlets, JSP m.m.), Groovy and Grails, Ruby on Rails, Turbo Gears och Django. Förutom diskussioner med handledare så hade dessa språk och ramverk intressanta egenskaper som gjorde dem aktuella, en del har stor spridning och popularitet och en del är mer eller mindre nya ramverk som i sin tur bygger på redan mer eller mindre etablerade programmeringsspråk. För att studien ska hamna inom rimliga gränser rent tidsmässigt så har den här studien ingen djupare genomgång av de olika ramverken och plattformarna utan de har istället försökt beskrivas utifrån de särdrag som de olika plattformarna samt språken har. Hur själva migreringen ska gå till undersöks inte i denna studie. Med andra ord så tas det inte hänsyn till om det Uinns automatiserade metoder för att att migrera från en plattform till en annan. Däremot kan grundläggande information om systemets nuvarande infrastruktur spela en roll för beslutet Läsarmålgrupp För att kunna ta del av den här rapporten bör man ha grundläggande kunskap om vad HTML och XML är. Man bör även ha en vis förståelse för hur internet fungerar med de olika protokollen, t.ex. http, IP o.s.v. I det teoretiska avsnittet beskrivs ett antal programmeringsspråk. Men för att få ut mesta möjliga av rapporten är grundläggande programmeringskunskap bra Micromarke4ng & MobiCodes Micromarketing arbetar med digital kommunikation och media och är främst inriktade på den mobila marknaden. Företaget har funnits sedan 1999 och har lång erfarenhet inom skräddarsydda kampanjer. Förutom den mobila marknaden tillhanda håller man tjänster inom webb och tryck (Micromarketing, 2008). En av Micromarketings tjänster heter MobiCodes, vilket är ett registrerat varumärke. MobiCodes är en tjänst som i huvudsak går ut på att generera och validera värdekoder. MobiCodes kan användas på Ulera olika sätt, man har t.ex. använt det tillsammans med ATGs system. Då kunde man gå till en ATG ombudsman och köpa en kod som hade ett värde från 50 kr upp till 250 kr. Sedan kunde man använda koden som betalningsmedel och värdet man köpte produkter på drogs då av från koden. Produkterna gällde då främst innehåll till mobiltelefoner. Mot detaljhandeln har man använt systemet för att ge kunder ett mervärde när de köper en vis typ av produkt. En kampanj som man hade nyligen gick ut på att man köpte ett hemmabiosystem samt en full HDTV från Samsung så Uick man två åskådarbiljetter till Scandinavien masters i golf och ett presentkort från MQ på 500 kr (Newsdesk, 2008). Denna kampanj var då tillgänglig i ett visst antal butikskedjor, t.ex. SIBA och OnOff. I samband med Idol på TV4 så körde man en kampanj där man genom en kod Uick tillgång till en ringsignal, en låt och en bild. I övrigt kan systemet användas i olika typer av tävlingar. 3

12 2. Teori I detta kapitel ges en redogörelse för teorier som är av betydelse för examensarbetet Modern webbutveckling Modern webbutveckling börjar mer och mer att ta efter mönster i traditionell mjukvaruutveckling. Exempel på detta är ökad stöd för objektorientering i PHP 5 jämfört med PHP 4 även ActionScript som används i Flash programmering är numera objektorienterat. Att strukturera sin kod enligt traditionella mönster är även det något som numera används inom webbprogrammering, exemple på det är MVC (läs mer kap 2.4) och three tier även kallat n tier som påminner om MVC. Att utvecklingen på webben ligger efter traditionell utveckling kan bero på webbens historia. Till en början såg man webben som ett informationsmedium och utvecklingen var då ett problem för de som skapade innehållet. Med tiden har webben gått från ett informationsmedium till en applikations plattform och samtidigt har man börjat se utvecklingen ur ett mjukvaruperspektiv (Gellersen och Gaedke, 1999). Med detta har de arbetssätt som används inom mjukvarubranschen även börjat användas i webbutveckling. Ett programspråk kan vara objekorienterat men det är inte på något sätt kopplat till någon speciell typ av struktur utan det är upp till varje utvecklare att bestämma. För att underlätta detta arbete med struktur och samtidigt undvika att uppuinna hjulet varje gång man bygger en ny applikation så Uinns det ett antal så kallade ramverk som man kan använda. ASP.NET är ett sådant ramverk, dessa ramverk hjälper utvecklaren att öka produktiviteten och återanvända sådan kod som återkommer i många applikationer. Ramverket kan hjälpa till att skapa kopplingar som behövs mellan de olika delarna i systemet. Trots att mjukvarubranschen har en Ulera års erfarenhet av dessa typer av projekt så ligger fortfarande den genomsnittliga kostnaden för underhåll av mjukvaran på 55% av mjukvarans totala livskostnad (SEPT, 2009). Två av de stora kostnaderna ligger på arbete som måste göras om p.g.a. dålig kvalité samt rent underhåll Programmeringsspråk Den här studien försöker visa skillnader mellan klassiska programspråk och de agila programspråken. Programmeringsspråk kan delas in i Ulera olika grupper, kompilerade eller tolkade, statiska eller dynamiska, hårdtypade eller löstypade och till dessa grupper kommer även begrepp som programspråk och scriptspråk. Ofta händer det att Ulera av dessa begrepp tolkas som synonymer och olika källor har olika åsikter i frågan. DeUinitionen på agila programmeringsspråk i den här studien syftar generellt till den grupp av språk som oftast räknas in i grupper så som scriptspråk, dynamiska språk och tolkade eller interpretated languages. De språk som inte räknas in i de agila språken kallas fortsättningsvis programspråk. 4

13 I den här studien kommer programspråken i första hand att syfta till Java, C#, C++, Visual Basic och de agila språken kommer att syfta till Ruby, Python, Groovy och PHP. Med de olika typerna av språk så Uinns det både fördelar och nackdelar. Fördelarna med programspråken är att de är snabbare och det beror på att de behöver färre instruktioner per kommando för att utföra samma operation (Wright och More, 2006). Likaså har de bättre minneshantering, med det inte menat att agila språk inte har detta men de tar hand om det utan att programmeraren behöver bry sig om det. Detta är ytterligare en anledning till att det är långsammare. Fördelarna med de agila språken är dels tiden det tar att programmera olika uppgifter, med dessa typer av språk går det snabbt att ändra och köra applikationen igen utan att behöva kompilera om. Dessutom är syntaxen betydligt enklare och man har plockat bort delar av koden som det annars är vanligt att man gör misstag på som t.ex. måsvingar ({}) samt att man inte behöver avsluta en rad med ett semikolon (;). När dessa språk sedan används i webbprogrammering så ger det även en fördel när man använder sig av information som sparas i webbläsaren. Vill man då göra en uppdatering i en funktion som bygger på att man går igenom Ulera steg på en webbplats så måste man med programspråken kompilera om innan uppdateringen börjar gälla. Man hamnar då Ulera steg bakåt i kedjan och testning av dessa funktioner blir tidskrävande, denna testning blir enklare när kompilering mellan varje uppdatering inte behöver göras (Rocher, 2006) Objektorienterad programmering Alla moderna språk är mer eller mindre objektorienterade, tidigare så var språken funktionsbaserade eller proceduella. Objektorienterad programmering (OOP) innebär bra möjligheter att avbilda eller modellera verkligheten på ett bra sätt (Nordqvist, 2003). Huvudbegreppen i OOP är klasser och objekt. Klasser beskriver hur objekten ser ut och vilka attribut de har. Objekten är instanser av en klasser och har sina speciella värden på sina attribut. Attributen är egenskaper som klassen har, t.ex. kan en bil ha ett attribut som heter registreringsnummer och ett annat som heter färg (se Uigur 2.1). reg nr märke färg motor Klass Objekt ABC 123 Saab gul bensin ABC 456 Volvo grön diesel ABC 789 Renault blå etanol DEF 123 Ferrari svart bensin Figur 2.1. Klasser och objekt. 5

14 Förutom att objekten har sina speciella värden på attributen så har ett objekt oftast metoder som kan ändra värdena på attributen, en bil kanske lackeras om till en annan färg o.s.v. De här metoderna leder oss till en annan del av OOP, nämligen inkappsling. Inkappsling innebär att man skiljer på gränssnitt och implementation (Nordqvist, 2003). För omvärlden är det helt ointressant att veta exakt hur man lackerar om bilen, man vill bara lämna in bilen och få tillbaka den i den färg man vill ha. På samma sätt fungerar det i OOP, för omvärlden Uinns det bara en metod som med ett logiskt namn förhoppningsvis talar om vad den gör, i övrigt vet inte omvärlden exakt vad som händer när metoden anropas. Arv kan beskrivas som om det Uinns ett visst antal egenskaper som alla bilar har, det här är då superklassen. Under superklassen Uinns det subklasser som ärver från superklassen, de kan t.ex. vara en Cabriolet subklass som har några attribut som inte alla bilar har. Subklassen har då alla attribut och metoder som superklassen har, som färg och registreringsnummer men även en del egna attribut och metoder. PolymorUism innebär att en del subklasser vill utföra en metod från superklassen på ett något speciellt sätt. Det kan vara att samtidigt som man byter färg på bilen så skaman registrera det hos biltillverkaren, har man då en metod i superklassen som heter byt_färg så döper man special metoden i subklassen till samma namn, alltså byt_färg men man implementerar den på ett annorlunda sätt. Objektorientering har en något speciell roll i webbprogrammering. I webbprogrammering är det vanligt att man använder sig av relationsdatabaser. Relationsdatabaser sparar dock inte sina poster som objekt utan som rader i en tabell. En lösning för att arbeta objektorienterat med dessa databaser är att man kopplat samman raderna i tabellerna med ett objekt. Så istället för att använda sig utav SQL frågor så anropar man de rader man vill ha genom klassmetoder och de rader man får tillbaka som resultat blir då objekt av en klass. Man kan på så sätt enkelt skapa egna metoder i klassen för att modiuiera raderna i SQL tabellen istället för att använda SQLsyntax, detta kallas Object Relational Mapping (ORM) MVC arkitektur Model View Controller (MVC) innebär en uppdelning av en mjukvara i tre lager. Modellen tar hand om statusen på applikationen, en del information ska sparas en kortare stund medan andra ska sparas en längre tid. View representerar hur informationen ska presenteras för användaren, hur layouten ska se ut mm. Controllern tar hand om användarens förfrågningar, controllern tar den informationen och ser till att rätt sak blir utförd (se Uigur 2.2, sid 7). MVC har en historia sedan slutet på 1970 talet då det första grauiska gränssnitten började se dagen ljus och Trygve Reenskaug ses som MVCs fader (Ramm, Dangoor och Sayfan 2006). 6

15 Webbläsare Controller Figur 2.2. MVC arkitektur. View Model Databas / Web service Model Modellens huvudfunktioner är de s.k. CRUD operationerna (Creat, Read, Update och Delete), alltså att skapa, läsa, uppdatera och radera data. Men i modellen brukar man även bygga in vad man kallar för Buisness Logic. I en webbshop kan det handla om att en order under ett visst värde inte innefattar fri frakt, då ingår det i modelens uppgift att se till så att applikationen håller reda på det faktum (Thomas och Hansson, 2007). View Viewn får den information den ska visa från controllern och använder sin design för att göra detta. En view kan t.ex. vara en sida som har till uppgift att presentera samtliga produkter, eller endast produkter i en viss kategori. Vilket som gäller beror på vad controllern skickar för information. Controller Controllern är spindeln i nätet och är det lager som tar hand om alla förfrågningar som kommer in. Detta kan innebära att plocka fram information från modelen för att sedan skicka den vidare till Viewn som presenterar informationen. Trots att MVC arkitekturen varit känd sedan länge inom mjukvarubranchen så var det inte där man började när man började designa webbapplikationer. Utan istället buntade man ihop all typ av kod och databas anrop kunde ske direkt från en view sida. De tidiga teknikerna som ASP (Active Server Page), PHP och ColdFusion byggde på tekniken att integrera scriptkoden och på så viss uppmuntrade detta sätt att designa. Men sedan kom JSP och Servlets från java vilket gjorde att man använde JSP som view och servlets som allt annat. Men fortfarande var det enklare att skriva kod i JSPn istället för att göra en servlet (Ramm, Dangoor och Sayfan 2006). WebObjects var ett utav de första stegen mot att använda riktigt MVC i webbramverk och på det följde Struts, båda för Java (Thomas och Hansson, 2007). I webbapplikationer fungerar MVC så att modellen oftast kopplas till en databas men kan även användas mot ett web services gränssnitt. Viewn är i de Ulesta fall en HTML sida med integrerad kod beroende på vilket språk man använder. Fördelarna med MVC ska vara att man tydligt ska separera de olika lagren ifrån varandra för att på så sätt kunna vara utbytbara utan att påverka de andra lagerna (Holovaty och Kaplan Moss, 2008). Detta ger fördelar på Ulera olika sätt, dels blir underhållet enklare när man vet var man bör hitta de 7

16 olika delarna av systemet. En ytterligare fördel av utdelningen av arbete. I den har arkitekturen kan man på ett enklare sätt dela upp arbetet mellan programmerare och designers, även de som har sin expertis inom databaser har sin del att arbeta med Programmeringsspråk och ramverk Under de tidiga åren av internet använda man sig av s.k. CGI script (common gateway interface). Det är ett protokoll som låter webbservern använda sig utav externa program för att skapa dynamiskt innehåll på webbsidor (Holovaty och Kaplan Moss, 2008). Före detta fanns det endast Uiler med HTML kod som man Uick uppdatera en efter en om man ville ändra innehållet. Detta hade sina begränsningar, bl.a. var inlärningströskeln ganska brant och det var en hel del upprepning av kod. CGI script var inget språk utan endast ett protokoll, språk som kunde användas var bl.a. Perl eller Python. Efter detta började man utveckla metoder för att på enklare sätt integrera de dynamiska funktionerna i webbuilerna istället för att hämta externa script PHP 1995 började utvecklingen av vad idag kallas PHP. Det var en utveckling av CGI scripten och tjänade till att minska kodupprepningen. PHP/FI hette det då och stod för Personal Home Page / Forms Interpreter (PHP.net) och var utvecklat i C. På detta följde PHP/FI 2.0 och efter ytterligare utveckling kommer 1998 PHP 3. Man har då byt namn till endast PHP som nu får betydelsen PHP: Hypertext Preprocessor (PHP.net). I maj 2000 kommer PHP 4 som nu har fått objekt orienterande egenskaper men det ska dröja till PHP 5 innan det blir mer användbart (Naramore et al., 2005). PHP är från början tänkt att användas just som ett script som läses från topp till botten och har ingen naturlig MVC arkitektur men har efter att Ruby on Rails släppts fått många ramverk till sitt förfogande (Golding, 2008). Detta gör att det blir extra svårt att välja ett som passar bättre än andra men eftersom de kan ha olika varianter så Uinns det vissa som påminner om varandra mer än andra. T.ex. är CakePHP ett ramverk som har stora likheter med Ruby on Rails, Fuse är ett annat som Uinns till både PHP och ColdFusion men i original utförande är utvecklat för ColdFusion, ramverk som har likheter med Javas Struts Uinns också i ett antal varianter (Web Application Component Toolkit, 2008). Vad gäller syntax så är PHP en blandning av Java, C och Perl samt några egna. Som scriptspråk har det en låg ingångströskel och man kan snabbt komma igång med att utveckla(php.net). Nackdelen är att PHP inte har en klar struktur över hur man ska använda och strukturera upp sin kod och Uiler. Det blir enkelt att man bara bygger på det och på så sättet får en struktur som är svår att underhålla och framför allt bygga på för någon annan. För att hantera externa paket har PHP ett extension interface som kallas för PHP Extentions and Application Repository (PEAR) ASP.NET Active Server Pages (ASP) var introducerat runt 1997 av Microsoft. ASP var inget språk i sig utan stod för en teknik som användes för att skapa dynamiska webbsidor. Språket som användes var Visual Basic script, VB 8

17 script. Som namnet antyder så var det det ett språk som tolkades och inte kompilerades. ASP lämnade mer att önska och den sista versionen som kom ut var version 3. Efter detta började man utveckla ASP.NET, det är igen vidareutveckling av ASP utan är en ny utveckling och är inte bakåtkompatibelt med ASP. Som namnet antyder bygger ASP.NET på Microsofts.NET plattform..net plattformen är inte bunden till ett språk utan är uppbyggt på ett speciellt sätt för att kunna hantera Ulera olika språk. Common Type System (CTS) och Common Language SpeciUications (CLS) är de grunder som alla språk inom.net måste förhålla sig till. I princip går det till så att alla typer av språk ska kompileras till så kallad Intermediate Language (IL) kod. Common Language Runtime (CLR) som är Microsofts implementation av IL just in time kompilerar sedan koden till maskinkod som operativsystemet kan tolka..net har fem stycken standardspråk som ingår i ramverket, dessa är C# (C sharp), Managed C++, Visual Basic.NET (VB.NET), J# (J sharp) och JScript.NET (Hurwitz och Liberty, 2003). Men med hjälp av CTS och CLS kan man skapa Uler språk som är kompatibla med.net. IronRuby och IronPython är två sådana exempel. Att.NET har stöd för dessa språk innebär att även ASP.NET har stöd för dessa samt alla de bibliotek som ingår.net. Att det är uppbyggt på det här visset innebär att man kan bygga en CLR för en annan plattform än Microsofts, t.ex. Unix eller Mac OS X och köra samma applikationer på dessa utan att behöva ändra källkoden, write once run anywhere. I ASP.NET använder man sig av termer som Code Behind, Code Beside och Code Inline. Code Beside är en nyare variant av Code Behind men fungerar på liknande sätt. Code inline innebär att all dynamisk kod samt HTML eller layoutkod ligger i samma dokument. Code Beside innebär istället att man använder sig av en separat Uil för att hantera all dynamisk kod. Att använda sig utav den ena eller andra har inga prestandamässiga skillnader utan de enda skillnaderna som Uinns är att att det blir lättare att underhålla, läsa och ändra (Esposito, 2005) Java Java har ett antal olika tekniker för webbprogrammering och de är i huvudsak Java Server Pages (JSP), Servlets och Applets. Applets är ett Javaprogram som är inbäddad i HTML koden på liknande sätt som man lägger in en bild i koden. Koden bäddas in i HTML koden med applet taggar, och kan använda param taggar för att skicka parametrar till programmet. För att sedan kunna exekvera koden måste man ha en webbläsare med Java teknologi som i sin tur kör koden i sin Java Virtual Machine (JVM) (Sun Microsystems, 2009a). Java Servlets API:t är en standardpåbyggnad till Java som gör det möjligt att bygga dynamiska webbapplikationer. Servlets kan liknas vid en Applet som körs på serversidan (Sun Microsystems, 2009b), Servlets har tillgång till hela Javas API inklusive Java Database Connector (JDBC) (Sun Microsystems, 2009c). JSP är en påbyggnad av Servlets och är till för att enklare skapa HTML och XML sidor. JSP gör det enklare att mixa statisk och dynamiskt innehåll (Sun Microsystems, 2009c). JSP påminner lite om PHP på det sättet att det är en blandning av HTML kod med integrerade Javakod. Skillnaden från PHP är att JSP sidan inte tolkas av webbservern utan skickas vidare till en servlet engine som bryter ut HTML koden och 9

18 kompilerar Java koden till en servlet där HTML koden läggs tillbaka som write funktioner i Java (Downey, 2007). Servlets är redan kompilerad källkod som körs av en servlet engine, Tomcat är en populär sådan men det Uinns Uler. Servlets och JSPs är de metoder som kan ansluta till en databas, Applets kan inte göra detta p.g.a. den anledningen att den körs hos klienten och är inte tillräckligt säker för att få göra det (Dr. Zhiqi, 2007). När det gäller att koppla ihop Java med en databas så har Java just där en styrka i JDBC. JDBC är ett API för Java för att kunna kontakta en databas och just antalet databaser som det Uinns stöd för i JDBC är mycket stort och det Uinns så gott som ingen databas som inte har stöd av en JDBC driver. Applets är den tredje delen av Java och är kompilerade klasser som inte har tillgång till databaser men kan användas för mer avancerade grauiska inslag på klient sidan. JSP sidor har sina fördelar i att Java script (inte att förväxlas med JavaScript) kan integreras i HTML koden. Detta leder till att det går fortare att utveckla den grauiska layouten utan att behöva använda sig utav en massa writefunktioner som skulle krävas i en Servlet. Att underhålla layouten i en Servlet är betydligt svårare än att göra det i en JSP sida. I och med den uppdelningen är det inte helt ologiskt att använda Servlets i controllers samt i kontakt med databasen och JSPs i views (Downey, 2007) Ruby on Rails Ruby on Rails är ett ramverk som bygger på det dynamiska språket Ruby utvecklat av Japanen Yukihiro Matsumoto och släpptes första gången Målet var att göra ett språk kraftfullare än Perl men mer objektorienterat än Python, resultatet blev Ruby (Thomas, 2004). Till Ruby Uinns ett ramverk kallat RubyGems. RubyGems är en standard för hur bibliotek (librarys) och tilläggsapplikationer ska paketeras för att det ska vara så enkelt som möjligt att hitta installera uppdatera och avinstallera. RubyGems har en gemensam lagringsserver där alla paket Uinns tillgängliga för det mesta men det kan även vara så att man explicit måste ange källan man vill hämta det ifrån. Innan RubyGems fanns var man tvungen att leta på nätet efter det paket (gem) man ville ha och när man väl lyckats installera det kunde det visa sig att man saknade ett paket som man var tvungen att ha för att just det paketet skulle fungera. Med RubyGems kan man be om att installera ett paket och alla paket som det i sin tur behöver (Thomas, 2004) släpptes ramverket Ruby on Rails (rails) första gången under MIT license vilket är en öppen källkods licens. Basecamp är ett projectmanagement verktyg utvecklat i Ruby och från detta projekt plockade man ut delar för att sedan skapa Ruby on Rails. Rails är ett RubyGem men har ett antal gems som också krävs för att det ska fungera, ett av dem är Active Record paketet som tar hand om mappningen till databasen (ORM). ORM innebär att man istället för att använda sig av SQLsyntax i koden för att arbeta mot databasen så använder man sig av objekt. Varje objekt motsvarar en tabell i databasen med ett antal attribut som då är kolumnerna i tabellen. Så istället för att arbeta direkt mot databasen så 10

19 arbetar man mot dessa objekten som har en del fördeuinerade metoder för t.ex. skapa, läsa, uppdatera och radera (CRUD) men även metoder för att söka efter objekt. Mappningen följer en av Rails grundstenar convention over con*iguration, alltså konventioner framför konuiguration (Geer, 2006). Detta innebär att skapar du ett objekt som heter week så skapas det efter det en tabell i databasen som heter weeks. Rails har bra stöd för detta och stöder inte bara regelbundna substantiv utan även oregelbundna som person och people. Man kan även skapa egna regler om man t.ex. vill använda svenska ord. Att det fungerar så här innebär att man slipper en massa konuiguration om vilken tabell som hör till vilket objekt och vilken kolumn som hör till respektive attribut. Andra egenskaper som Rails använder sig av är generatorer och scaffolding. Generatorer innebär att skelett för olika typer av Uiler i applikationen skapas och lägger sig på rätt plats, t.ex. controllers och objekt där man kan välja vilka metoder man kan behöva för controllern och vilka attribut man vill ha på objektet och vilken typ de ska vara. Scaffolding är en annan typ av generator där man kan välja att göra en scaffold av ett objekt och då skapas ett helt grauiskt gränssnitt med alla CRUD operationer och ett index över alla objekt i objektets motsvarande tabell. Funktioner som man i de Ulesta fall använder sig av i databasdrivna webbapplikationer. Förutom convention over con*iguration så använder sig Rails av Don t Repeat Yourself (DRY), vilket innebär att ramverket eftersträvar att man så långt det går inte ska behöva upprepa kod Groovy and Grails Groovy är vad man kallar ett dynamiskt språk utvecklat för att kunna användas i Java miljö. Det skiljer sig dock på en väsentlig punkt från andra och det är att det faktisk kompileras ner till bytecode och sedan exekveras. Det beter sig i sin natur precis som Ruby eller Python men det tolkas inte utan kompileras. Detta märker man inte av av den anledningen att det fungerar som ett scriptspråk men mer viktigt är att veta att en Groovy class är en Java klass och de kan på så vis arbeta med varandra. En Java klass kan alltså använda sig av metoder i ett interface som är implementerat av Groovy utan att märka någon skillnad (Rocher, 2006). Eftersom Groovy är så nära integrerat med Java så drar Groovy samma fördelar från JDBC som Java gör. Även alla bibliotek (librarys) som Uinns tillgängliga för Java är även tillgängliga för Groovy och det Uinns en hel del och oftast Ulera för samma uppgift och mer parten av dessa är öppen källkod (open source). (Rocher, 2006) Groovy släpptes första gången sommaren 2005 och ses som ett svar på Java implementationerna av Ruby och Python som kallas JRuby och Jython. Detta är scriptspråk som i princip fungerar som i originalutförande men har fördelen av att kunna köras på en Java Virtuell Machine (JVM). Det är en stor fördel med tanke på alla de installationer som Uinns av JVMs och att byta ut hela sitt system bara för att byta plattform är kostsamt (Bini, 2007). Integrated Development Environment (IDE) är något som är populärt i Java miljön och Eclipse är en av de populäraste, Microsoft har sin Visual Studio för att nämna några. IDE innebär en textredigerare, kompilerare och en 11

20 debugger. Utrycket Edit Compile Run är välkänt för Java utvecklare och innebär att man först redigerar sin kod, kompilerar den för att sedan köra applikationen (Dr. Zhiqi, 2007). Att ha allt detta samlat i ett utvecklings verktyg gör förfarandet snabbare än om man skulle ha olika delar för de olika stegen. En anledning för att inte byta plattform från Java är att det saknas bra IDE för andra språk och i detta fallet speciellt för Ruby on Rails. Med Groovy and Grails är det möjligt att jobba vidare i Eclipse eftersom det Uinns en groovy plug in och förutom möjligheten att jobba med Groovy kan man köra Grails ifrån Eclipse (Rocher, 2006) Python, Django och TurboGears Python släpptes första gången redan 1989 och var då utvecklat av Guido Van Rossum (Agarwal och Agarwal, 2005). Pythons har liksom Ruby ett system för att enkelt installera och uppdatera externa paket, i Pythons fall heter det easy_install. Python har till skillnad från Ruby ett Ulertal olika ramverk som utvecklare använder. Två utav dem som påminner mycket om Ruby on Rails är Django och TurboGears. Django är ursprungligen utvecklat för artikelpublicering för nyhetstidningar. Det är alltså precis som Ruby on Rails skapat efter ett verkligt projekt. Man utvecklade alltså ramverket för att man verkligen behövde det och såg det som ett sätt att underlätta framtida projekt (Holovaty och Kaplan Moss, 2008). Funktionerna i Rails, Grails, Django och TurboGears är ganska lika och ramverken har bara valt att implementera dem på olika sätt och tolkat MVCarkitekturen på lite olika sätt vilket är beskrivet tidigare. En funktion som dock är unik för Django är ett automatiskt genererat administrationsgränssnitt med enklare inloggningsfunktioner. Man kan sedan välja vilka objekt som ska ingå i gränssnittet. Med andra ord lämpar sig Django väl för olika typer av publiceringsapplikationer vilket dess ursprung även talar för. Även speciuikt för Django är att man har speciella datatyper för e post adresser och URL (Uniform Resource Locator) adresser. Ett känt begrepp inom Python programmering är Pythonic. Det är ett karakteristiskt sätt för hur Python och dess bibliotek används (Ramm, Dangoor och Sayfan, 2006). Detta sätt att använda koden som påminner om en UilosoUi och sträcker sig utanför standardbiblioteken och går även att känna av i många tredjepartsbibliotek. Tim Peters har formulerat detta i The Zen of Python (Appendix B). TurboGears har även försökt fånga denna UilosoUi så långt det är möjligt. Man har även tagit hänsyn till förfrågningar på webben, vilket gör att de ser ut som standardmetoder när de väl når koden i applikationen (Ramm, Dangoor och Sayfan, 2006) ColdFusion ColdFusion har haft många turer genom åren från olika bolag utvecklade Alaire Corporation första versionen. Alaire blev uppköpt av Macromedia och ColdFusion MX utvecklades (Churvis et al., 2003). Efter detta köptes Macromedia upp av Adobe som nu utvecklar och under håller 12

Web Services. Cognitude 1

Web Services. Cognitude 1 Web Services 1 Web Services Hur ska tillämpningar integreras? Hur ska tillämpningar integreras (via nätet ) för att erbjuda tjänster åtkomliga på nätet? SVAR: Web Services (Enligt Microsoft, Sun, IBM etc.)

Läs mer

Webbservrar, severskript & webbproduktion

Webbservrar, severskript & webbproduktion Webbprogrammering Webbservrar, severskript & webbproduktion 1 Vad är en webbserver En webbserver är en tjänst som lyssnar på port 80. Den hanterar tillgång till filer och kataloger genom att kommunicera

Läs mer

Inledande programmering med C# (1DV402) Introduktion till C#

Inledande programmering med C# (1DV402) Introduktion till C# Introduktion till C# Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll i

Läs mer

Du fulländar mig! Om synergierna mellan agila metoder och UX. Joakim Holm Adaptiv AB. Erik Hammarström Antrop AB

Du fulländar mig! Om synergierna mellan agila metoder och UX. Joakim Holm Adaptiv AB. Erik Hammarström Antrop AB Du fulländar mig! Om synergierna mellan agila metoder och UX Joakim Holm Adaptiv AB Erik Hammarström Antrop AB Vetenskapliga metoden 1. Observera verkligheten 4. Genomför experiment 2. Utforma hypotes

Läs mer

Javautvecklare. Utbildningsfakta. 400 YH-poäng, 2 år

Javautvecklare. Utbildningsfakta. 400 YH-poäng, 2 år Javautvecklare 400 YH-poäng, 2 år Utbildningsfakta Kurser (12 stycken) Grundläggande programmering och javaverktyg 50 yhp Grafiskt gränssnitt och interaktion 20 yhp Internet, webb och webbramverk 40 yhp

Läs mer

Webbteknik II. Föreläsning 4. Watching the river flow. John Häggerud, 2011

Webbteknik II. Föreläsning 4. Watching the river flow. John Häggerud, 2011 Webbteknik II Föreläsning 4 Watching the river flow Web Service XML-RPC, SOAP, WSDL, UDDI HTTP Request, Response, Headers, Cache, Persistant Connection REST Hype or the golden way? Web Service / Webbtjänst

Läs mer

Automation Region. Affärsdriven systemutveckling genom agila metoder. Stefan Paulsson Thomas Öberg

Automation Region. Affärsdriven systemutveckling genom agila metoder. Stefan Paulsson Thomas Öberg Automation Region Affärsdriven systemutveckling genom agila metoder Stefan Paulsson Thomas Öberg Frontit Frontit är ett svenskt konsultföretag i gränslandet mellan Management & IT, som stärker sina kunders

Läs mer

Användningscentrering i agila utvecklingsprojekt. johanna.sarna@valtech.com Valtech

Användningscentrering i agila utvecklingsprojekt. johanna.sarna@valtech.com Valtech Användningscentrering i agila utvecklingsprojekt johanna.sarna@valtech.com Valtech Vem är jag? Johanna Särnå Jobbar på Valtech sedan 3 år tillbaka Jobbar där med användbarhet och projektledning Certifierad

Läs mer

Introduktion till programmering. Programspråk och paradigmer

Introduktion till programmering. Programspråk och paradigmer Introduktion till programmering Programspråk och paradigmer Vad är ett programspråk? Aprogramming languageis a formal constructedlanguagedesigned to communicate instructions to a machine, particularly

Läs mer

Creo Customization. Lars Björs 2014-10-16

Creo Customization. Lars Björs 2014-10-16 Creo Customization Lars Björs 2014-10-16 Norra Europas största partner och återförsäljare av PTC relaterad programvara (Windchill, Creo, Arbortext, MathCad, Relex) 70 anställda Egen utvecklingsavdelning

Läs mer

Kursplanering Utveckling av webbapplikationer

Kursplanering Utveckling av webbapplikationer Kursplanering Utveckling av webbapplikationer Fakta Ämne Programmering Poäng 40 Yh-poäng Kurskod YSYS-WEB Klass Systemutvecklare.NET Syfte och koppling till yrkesrollen För att kunna arbeta som systemutvecklare

Läs mer

Avancerade Webbteknologier

Avancerade Webbteknologier Projektledning, Business Knowledge Användbarhet & Layout Avancerade Webbteknologier Lkti Lektion 1 Kommunikation Tobias Landén tobias.landen@chas.se Avancerade webbteknologier del 1 (4 KY poäng) Syfte

Läs mer

KONSULTPROFIL Rodrigo

KONSULTPROFIL Rodrigo KONSULTPROFIL Rodrigo Systemutvecklare.NET/EPiServer/SharePoint Sammanfattning Rodrigo är en utåtriktad och glad person med båda fötterna på jorden som trivs både med att leda och samarbeta. Har jobbat

Läs mer

Ruby on Rails eller Django?

Ruby on Rails eller Django? Ruby on Rails eller Django? En jämförelse av två ramverk för webbutveckling MARTIN KARSBERG och PÄR- JOHAN JÖNSSON Examensarbete Stockholm, Sverige 2010 Ruby on Rails eller Django? En jämförelse av två

Läs mer

Hur hänger det ihop? För att kunna kommunicera krävs ett protokoll tcp/ip, http, ftp För att veta var man skall skicka

Hur hänger det ihop? För att kunna kommunicera krävs ett protokoll tcp/ip, http, ftp För att veta var man skall skicka Webben som verktyg Idag: Hur hänger det ihop? Viktiga tekniker Stegen i ett webbprojekt Verktyg Dreamweaver Photoshop Joomla CMS Storyboard och flödesschema Fixa webbhotell Hur hänger det ihop? För att

Läs mer

2014-2015 Alla rättigheter till materialet reserverade Easec

2014-2015 Alla rättigheter till materialet reserverade Easec 1 2 Innehåll Introduktion... 3 Azure Client SDK Libraries... 4 Översikt: Azure Client Libraries... 5 Azure SDK... 6 Azure SDK (forts.)... 7 Azure SDK (forts.)... 8 Cloud Services... 10 Cloud Services...

Läs mer

Middleware vad, hur, varför när?

Middleware vad, hur, varför när? Middleware vad, hur, varför när? Anders Kingstedt Askus AB Ersättas med en bild 1 Disposition Vad? Hur? Varför? När? Målsättning Ge er möjlighet att skilja på och 2 Vad? - är Middleware Ersättas med en

Läs mer

PHP-presentation Dataföreningens Open Source-nätverk

PHP-presentation Dataföreningens Open Source-nätverk PHP-presentation Dataföreningens Open Source-nätverk Netera AB Jimmy Furland jimmy@netera.se Björn Hansson hansson@netera.se Introduktion HTML-inbäddat webbprogrammeringsspråk Står för PHP Hypertext Preprocessor

Läs mer

<script src= http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js></script> AngularJS Skriven av: Isak Glans. Datum: 2015-04-29. Kurs: Webbutveckling. Lärare: Per Sahlin. Utbildning: Systemutvecklare i.net, Newtons Yrkeshögskola. 1 Sammanfattning Syftet med denna uppsats är att

Läs mer

Guide för Innehållsleverantörer

Guide för Innehållsleverantörer Library of Labs Content Provider s Guide Guide för Innehållsleverantörer Inom LiLa ramverket är innehållsleverantörer ansvariga för att skapa experiment som "LiLa Learning Objects", att ladda upp dessa

Läs mer

F8 Webbteknologier 1. Dynamiska webbsidor

F8 Webbteknologier 1. Dynamiska webbsidor Dynamiska webbsidor F8 Webbteknologier 1 EDA095 Roger Henriksson Datavetenskap Lunds universitet HTML är statisk. En sida får sitt utseende bestämt när en webbdesigner skapar den. Ofta vill man ha mera

Läs mer

E13 "Behind the Wild"

E13 Behind the Wild E13 "Behind the Wild" Föreläsning 13, HT2014 Det vi missat och lite till Kurs: 1dv403 Webbteknik I Johan Leitet E13 Behind the Wild Dagens agenda Cookies Web storage Context/ändra context Augmentation

Läs mer

Datakommunika,on på Internet

Datakommunika,on på Internet Webbteknik Datakommunika,on på Internet Rune Körnefors Medieteknik 1 2015 Rune Körnefors rune.kornefors@lnu.se Internet Inter- = [prefix] mellan, sinsemellan, ömsesidig Interconnect = sammanlänka Net =

Läs mer

Distribuerade affärssystem

Distribuerade affärssystem Distribuerade affärssystem Kursens mål Bygga upp, strukturera och programmera distribuerade system med en flerskiktsarkitektur Beskriva och förklara teorier och uttryck som används inom affärskritiska

Läs mer

Introduktion till programmering, hösten 2011

Introduktion till programmering, hösten 2011 Föreläsning 1 Programmering är ett hantverk. Det betyder att man inte kan läsa sig till den förmågan, man måste träna och man tränar genom att skriva mer och mer avancerade program. Programmering förutsätter

Läs mer

Henrik Häggbom Examensarbete Nackademin Våren 2015

Henrik Häggbom Examensarbete Nackademin Våren 2015 AV Henrik Häggbom Examensarbete Nackademin Våren 2015 1 INLEDNING Som examensarbete på min utbildning på Nackademin Programutveckling.NET kommer jag skapa ett webbaserat system för statistik, tabeller

Läs mer

CMS. - Content management system

CMS. - Content management system CMS - Content management system Agenda CMS Server, webbhotell och FTP Wordpress, ställ mycket frågor Om vi hinner - Snabb genomgång av CMS - uppgiften Nu & Då Sidor med bara HTML och CSS kräver manuell

Läs mer

Kvalitetssäkra ditt projekt med kontinuerlig integration

Kvalitetssäkra ditt projekt med kontinuerlig integration Kvalitetssäkra ditt projekt med kontinuerlig integration Mathias Olausson http://olausson.net/blog Om oss: QWise Vi hjälper systemutvecklingsteam att bli bättre. Vi är experter på ALM och Team System.

Läs mer

PM 01 En jämförelse av två analysmodeller för val av komponentteknik

PM 01 En jämförelse av två analysmodeller för val av komponentteknik MÄLARDALENS HÖGSKOLA Institutionen för Ekonomi och Informatik v PM 01 En jämförelse av två analysmodeller för val av komponentteknik Eskilstuna, 2002-12-12 EI0230 Komponentbaserad applikationsutveckling

Läs mer

KAi SENSEMAKING SYSTEM

KAi SENSEMAKING SYSTEM Alexander Hall, 791023-8554 Individuellt mjukvaruutvecklingsprojekt 7,5 hp Linnéuniversitetet 2013-06-09 KAi SENSEMAKING SYSTEM ABSTRAKT KAi Sensemaking System är en webbapplikation för feedback/återkoppling

Läs mer

PROV. 13 JSP Standard Tag Library

PROV. 13 JSP Standard Tag Library 13 JSP Standard Tag Library 13.1 Bibliotek med nya JSP-kommandon 13.2 JSP Standard Tag Library (JSTL) 13.3 Filstruktur för webbapplikationer med JSTL 13.4 Deklaration av JSP-kommandon 13.5 Lägga till biblioteksfiler

Läs mer

Ingenjörsfirman Stéen 2001-12-13 Java Sida 1 av 1

Ingenjörsfirman Stéen 2001-12-13 Java Sida 1 av 1 Java Sida 1 av 1 Java Mål och Syfte Målet med denna kurs i Java är att du direkt efteråt ska kunna börja utveckla dina första Javaapplikationer. Kursen ger dig många konkreta exempel på hur detta effektiva

Läs mer

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse Lär känna MS SQL 2008 / Övning Observera Övningar som finns tillgängliga är till för att du ska kunna testa dina kunskaper och träna på dem. Det är helt upp till dig när du vill genomföra och om du vill

Läs mer

Litteratur. Nätverk, Internet och World Wide Web. Olika typer av nätverk. Varför nätverk? Anne Diedrichs Medieteknik Södertörns högskola

Litteratur. Nätverk, Internet och World Wide Web. Olika typer av nätverk. Varför nätverk? Anne Diedrichs Medieteknik Södertörns högskola Litteratur Nätverk, Internet och World Wide Web Anne Diedrichs Medieteknik Södertörns högskola Beekman kap 9-11 Varierar i olika upplagor. Läs alla kapitel om nätverk och Internet och webb Olika typer

Läs mer

Asp.net mvc intro PER KVARNBRINK, 2015-01-27

Asp.net mvc intro PER KVARNBRINK, 2015-01-27 Asp.net mvc intro PER KVARNBRINK, 2015-01-27 Byggstenarna i ett mvc-projekt 1. Databasen 2. Datamodellen (M:et) 3. Entity framwork 4. Routing 5. Kontroller (C:et) 6. Vy (V:et) 7. Vymodeller 8. Troligen

Läs mer

DOM (Document Object Model) är modellen efter vilken en webbläsaren är uppbyggd. Alla objekt/element i webbläsaren finns hierarkiskt ordnade i DOM.

DOM (Document Object Model) är modellen efter vilken en webbläsaren är uppbyggd. Alla objekt/element i webbläsaren finns hierarkiskt ordnade i DOM. JavaScript del1 Syftet med detta häfte är att sammanfatta det viktigaste i JavaScript så kort och koncist som möjligt men ändå tillräckligt omfattande för att ge god kännedom om en av de vanligaste teknikerna

Läs mer

Nya webbservern Dvwebb.mah.se

Nya webbservern Dvwebb.mah.se Nya webbservern Dvwebb.mah.se Bakgrund: BIT (Bibliotek och IT) beslutar att ta ner Novell systemet 28/3 som är en katalogtjänst som styr bland annat alla studenter s.k. hemkataloger på Malmö högskola såväl

Läs mer

UTVECKLINGSMILJÖER Microsoft Visual Studio (2003-2013), SQL Server Management Studio 2008-2010, Eclipse

UTVECKLINGSMILJÖER Microsoft Visual Studio (2003-2013), SQL Server Management Studio 2008-2010, Eclipse KONSULTPROFIL Daniel Systemutvecklare.NET Sammanfattning Daniel har mer än 10års erfarenhet av utveckling i olika programspråk. Daniel har i första hand arbetat med Webbutveckling och känner att han har

Läs mer

Decentraliserad administration av gästkonton vid Karlstads universitet

Decentraliserad administration av gästkonton vid Karlstads universitet Datavetenskap Opponent(er): Markus Fors Christian Grahn Respondent(er): Christian Ekström Per Rydberg Decentraliserad administration av gästkonton vid Karlstads universitet Oppositionsrapport, C/D-nivå

Läs mer

Elisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved.

Elisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved. Administrera din SAS miljö med SAS Metadata Server och SAS Management Console. Elisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved. SAS Intelligence Value Chain

Läs mer

NU! NU! Bygg en webbplats NU! Bygg en webbplats. Swedish Language Edition published by Docendo Sverige AB. Bygg en webbplats.

NU! NU! Bygg en webbplats NU! Bygg en webbplats. Swedish Language Edition published by Docendo Sverige AB. Bygg en webbplats. web_omslag.qxp 2006-03-20 17:06 Sida 1 NU! CDn innehåller: Upptäck hur du: Använder "dra och släpp-metoden" för att lägga till text, bilder och andra objekt till en webbsida Skapar listrutor och dynamiska

Läs mer

SCRUM och agil utveckling

SCRUM och agil utveckling SCRUM och agil utveckling Johan Åberg johan.aberg@liu.se Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Läs mer

Christer Scheja TAC AB

Christer Scheja TAC AB Byggnadsautomation för ingenjörer Byggnadsautomation för ingenjörer VVS-tekniska föreningen, Nordbygg 2004 Christer Scheja TAC AB resentation, No 1 Internet/Intranet Ihopkopplade datornät ingen ägare Internet

Läs mer

Diagnostisktprov Utveckla i Azure

Diagnostisktprov Utveckla i Azure .easec Diagnostisktprov Utveckla i Azure Mats Johannesson 2015-06-08 1 o Indikerar ett svar önskas. Flera svar önskas. Maxpoäng: 86 Din poäng: Godkänt: 43 poäng Väl Godkänt: 60 poäng 2 1. Vilka fyra alternativ

Läs mer

Priskamp. En prisjämförelsesite Björn Larsson 130609

Priskamp. En prisjämförelsesite Björn Larsson 130609 Priskamp En prisjämförelsesite Björn Larsson 130609 Abstrakt Detta är en post-mortem slutrapport om mitt projekt "Priskamp" inom ramen för kursen Individuellt Mjukvaruutvecklingsprojekt VT 2013. Projektets

Läs mer

Continuous Integration med Jenkins. Linus Tolke Enea Experts

Continuous Integration med Jenkins. Linus Tolke Enea Experts Continuous Integration med Jenkins Linus Tolke Enea Experts Föredraget Grunderna i mjukvaru-cm Trender inom mjukvaruutveckling Continuous Integration Vad är Jenkins Demo Jenkins i ArgoUML-projektet Problem

Läs mer

Innehåll. Dokumentet gäller från och med version 2014.3 1

Innehåll. Dokumentet gäller från och med version 2014.3 1 Innehåll Introduktion... 2 Före installation... 2 Beroenden... 2 Syftet med programmet... 2 Installation av IIS... 2 Windows Server 2008... 2 Windows Server 2012... 6 Installation av webbapplikationen

Läs mer

E12 "Evil is going on"

E12 Evil is going on E12 "Evil is going on" Föreläsning 12, HT2014 AJAX Kurs: 1dv403 Webbteknik I Johan Leitet E12 Evil is going on Dagens agenda AJAX XMLHttpRequest-objektet JSON Vad är AJAX? Asynchronous JavaScript and XML

Läs mer

Tentamensskrivning Nätverksprogrammering (EDA095 - FED) 2004-05-25, kl 8-13

Tentamensskrivning Nätverksprogrammering (EDA095 - FED) 2004-05-25, kl 8-13 LUNDS TEKNISKA HÖGSKOLA Datavetenskap Nätverksprogrammering 2004 LÖSNINGAR Tentamensskrivning Nätverksprogrammering (EDA095 - FED) 2004-05-25, kl 8-13 DEL 1 - Frågor av teoretisk, principiell eller utredande

Läs mer

Utvecklingen av ett tidregistrerings- och faktureringssystem

Utvecklingen av ett tidregistrerings- och faktureringssystem Datavetenskap Opponenter: Anders Heimer & Jonas Seffel Respondenter: Daniel Jansson & Mikael Jansson Utvecklingen av ett tidregistrerings- och faktureringssystem Oppositionsrapport, C-nivå 2006:10 1 Sammanfattat

Läs mer

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1 Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut

Läs mer

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions Testdriven utveckling Magnus Jonsson Siemens Medical Solutions 2 Soarian Stort projekt, ca 400 personer i projektet Distribuerad utveckling i USA, Indien och Sverige Web baserat lösning med admin client

Läs mer

Föreläsning 1. Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program

Föreläsning 1. Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program Föreläsning 1 Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program Deitel: 1.1-1.9, 2.1-2.3 DA101A Programmering Programmering, DA101A Kursansvarig:

Läs mer

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10 Projekt Rapport RaidPlanner Jeanette Karlsson UD10 Abstrakt: Denna rapport handlar om mitt projekt i kursen Individuellt Mjukvaruutvecklings projekt. Rapporten kommer att ta upp hur jag gått tillväga,

Läs mer

Föreläsning 1: Intro till kursen och programmering

Föreläsning 1: Intro till kursen och programmering Föreläsning 1: Intro till kursen och programmering Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/vt11 Studentportalen http://www.studentportalen.uu.se Lärare: Tom Smedsaas, Tom.Smedsaas@it.uu.se

Läs mer

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas. Eclipse Avsikt Att bekanta dig med Eclipse programmeringsmiljö, dvs att med hjälp av Eclipse 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till byte-kod

Läs mer

Collector en Android-app för att samla saker. Kim Grönqvist (kg222dk) 2013-06-10 Slutrapport

Collector en Android-app för att samla saker. Kim Grönqvist (kg222dk) 2013-06-10 Slutrapport Collector en Android-app för att samla saker Kim Grönqvist (kg222dk) 2013-06-10 Slutrapport Abstrakt Jag har gjort en Android-app för att samla saker, Collector. Med den kan man upprätta att göra-listor

Läs mer

Grundkurs i programmering - intro

Grundkurs i programmering - intro Grundkurs i programmering - intro Linda Mannila 4.9.2007 Dagens föreläsning Allmän kursinformation: mål, syfte, upplägg, examination, litteratur, etc. Hur arbetar en dator? Hur vi får datorn att förstå

Läs mer

Statistik från webbplatser

Statistik från webbplatser Statistik från webbplatser problem och möjligheter Ulf Kronman Föredragets huvuddelar Frågorna och motfrågorna Vilka frågor ställer chefen, BIBSAM och ISO? Varför ställer webmastern krångliga motfrågor?

Läs mer

Teknikprogrammet Klass TE14A, Norrköping. Jacob Almrot. Självstyrda bilar. Datum: 2015-03-09

Teknikprogrammet Klass TE14A, Norrköping. Jacob Almrot. Självstyrda bilar. Datum: 2015-03-09 Teknikprogrammet Klass TE14A, Norrköping. Jacob Almrot Självstyrda bilar Datum: 2015-03-09 Abstract This report is about when you could buy a self-driving car and what they would look like. I also mention

Läs mer

Design. Vad lärde jag mig förra lekfonen? Hur bidrog jag Fll lärandet? Kravhantering sammanfa0ning 13/04/14

Design. Vad lärde jag mig förra lekfonen? Hur bidrog jag Fll lärandet? Kravhantering sammanfa0ning 13/04/14 Design Vad är design? Vad är arkitektur? Architectural Pa:erns Designprinciper Design Pa:erns UML Domain Driven Design Domänmodell Vad lärde jag mig förra lekfonen? Hur bidrog jag Fll lärandet? Kravhantering

Läs mer

Curriculum Vitae. Systemutvecklare/konsult. Kontaktuppgifter. Sammanfattning. Uppgifter hos Pulsen. Stefan Elvestål. Född: 1973 Nationalitet: Svensk

Curriculum Vitae. Systemutvecklare/konsult. Kontaktuppgifter. Sammanfattning. Uppgifter hos Pulsen. Stefan Elvestål. Född: 1973 Nationalitet: Svensk /konsult Stefan Elvestål Född: 1973 Nationalitet: Svensk Kontaktuppgifter Mobil: 0703-88 35 39 elvestal@outlook.com Sammanfattning Jag är en målmedveten och ständigt nyfiken utvecklare som är nogrann med

Läs mer

Hemsideutveckling för Anjool AB

Hemsideutveckling för Anjool AB Beteckning: Akademin för teknik och miljö Hemsideutveckling för Anjool AB Christopher Gidlöf Maj 2012 Examensarbete 15hp B nivå Datavetenskap Internetteknologi Examinator: Carina Petterson Handledare:

Läs mer

2009-02-02. Verktyg för agil systemutveckling. Vad är ett verktyg? Olika typer av verktyg för mjukvaruutveckling. Vad kan ett bra verktyg tillföra?

2009-02-02. Verktyg för agil systemutveckling. Vad är ett verktyg? Olika typer av verktyg för mjukvaruutveckling. Vad kan ett bra verktyg tillföra? Vad är ett verktyg? Verktyg för agil systemutveckling Individuals and interactions over processes and tools - The Agile Manifesto Papper, penna, linjal CAD-program Skruvmejsel Skruvdragare Etc 1 2 Vad

Läs mer

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur Objekt-orienterad utveckling Saker man vill uppnå: Objektorienterad analys och design Sven-Olof Nyström Uppsala Universitet 16 mars 2005 en systematisk metod för att gå från problembeskrivning till färdigt

Läs mer

Delrapport DP3. FGS för paketstruktur för e-arkiv Bilaga 1 METS

Delrapport DP3. FGS för paketstruktur för e-arkiv Bilaga 1 METS Delrapport DP3 FGS för paketstruktur för e-arkiv Bilaga 1 METS Karin Bredenberg & Mats Berggren IT/SoU 010-476 71 23 2013-01-14 2.0 1(9) INNEHÅLLSFÖRTECKNING 1. BILAGA 1: METS...3 1.1 INTRODUKTION...3

Läs mer

Innehåll i detta dokument

Innehåll i detta dokument Läs igenom hela dokumentet innan du startar. Kopiera över allt på CD-skivan till din hårddisk. Din dator kommer behöva startas om en gång vid installationen av CodeSys. Du måste ha rättigheter att installera

Läs mer

ASP.NET MVC. Copyright Mahmud Al Hakim mahmud@dynamicos.se http://www.webbacademy.se. Innehåll

ASP.NET MVC. Copyright Mahmud Al Hakim mahmud@dynamicos.se http://www.webbacademy.se. Innehåll ASP.NET MVC Copyright Mahmud Al Hakim mahmud@dynamicos.se http://www.webbacademy.se Innehåll Introduktion till MVC Controller Action-metoder Views Arbeta med Layout-sidor och sektioner Route konfiguration

Läs mer

Nya möjligheter med M3 Technology. Björn Svensson, Björn Torold

Nya möjligheter med M3 Technology. Björn Svensson, Björn Torold Nya möjligheter med Technology Björn Svensson, Björn Torold Vem är vi? 2 Copyright 2011 Lawson. All rights reserved. Nya möjligheter med Technology System Foundation Grid Förändrar basen i Installation

Läs mer

Statistik från webbplatser

Statistik från webbplatser Statistik från webbplatser virtuella besök eller levererade sidor? Ulf Kronman Karolinska Institutet Universitetsbiblioteket Föredragets huvuddelar Frågorna och motfrågorna Vilka frågor ställer chefen,

Läs mer

Undervisningen ska ge eleverna tillfälle att arbeta i projekt samt möjlighet att utveckla kunskaper om projektarbete och dess olika faser.

Undervisningen ska ge eleverna tillfälle att arbeta i projekt samt möjlighet att utveckla kunskaper om projektarbete och dess olika faser. WEBBTEKNIK Webbteknik används för att utveckla och vidareutveckla statiska och dynamiska webbsidor, webbplatser, webbapplikationer eller andra applikationer där webbtekniker används, till exempel applikationer

Läs mer

Labora&on 8 Formulär övningar/uppgi6er

Labora&on 8 Formulär övningar/uppgi6er Labora&on 8 Formulär övningar/uppgi6er 1M321 Webbteknik 1, 7,5hp Medieteknik 2015 Rune Körnefors rune.kornefors@lnu.se 1a. Ladda ner arbetsdokument Till övningarna i denna labora&on finns det en par dokument

Läs mer

Varningssystem byggt på öppna källkodskomponenter Magnus Runesson SMHI Magnus.Runesson@smhi.se

Varningssystem byggt på öppna källkodskomponenter Magnus Runesson SMHI Magnus.Runesson@smhi.se Öppen Källkod inom Offentlig Sektor 15-16 april 2008, Stockholm Varningssystem byggt på öppna källkodskomponenter Magnus Runesson SMHI Magnus.Runesson@smhi.se 2008-05-14 Signatur Om SMHI Som experter inom

Läs mer

QC i en organisation SAST 2008-09-16

QC i en organisation SAST 2008-09-16 QC i en organisation SAST 2008-09-16 1 Agenda Hur är vi organiserade inom test på SEB? Hur är QC uppsatt på SEB? Hur arbetar vi med QC i en stor organisation? Uppfyllde QC våra förväntningar och hur har

Läs mer

Mobila tjänster för lojalitets system. Mobila tjänster för lojalitetssystem Mobile services for loyalty network

Mobila tjänster för lojalitets system. Mobila tjänster för lojalitetssystem Mobile services for loyalty network Mobila tjänster för lojalitets system Mobila tjänster för lojalitetssystem Mobile services for loyalty network Andreas Björklund EXAMENSARBETE 2012 Datateknik Postadress: Besöksadress: Telefon: Box 1026

Läs mer

Java Programmer for JDK 1.1 1997 Developer for Java 2 Platform 2002

Java Programmer for JDK 1.1 1997 Developer for Java 2 Platform 2002 Systemarkitekt/systemutvecklare Trevor Lyall arbetar som systemarkitekt och senior systemutvecklare. Han har en lång och bred erfarenhet av projekt inom flera olika branscher. Med sitt djupa intresse för

Läs mer

Agile Enterprise Architecture

Agile Enterprise Architecture Agile Enterprise Architecture Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Läs mer

L0009B. Moment. Introduktion till geografiska databaser: G:\L0009B\Allmänt\IntroGeoDB.pdf (F)

L0009B. Moment. Introduktion till geografiska databaser: G:\L0009B\Allmänt\IntroGeoDB.pdf (F) L0009B Moment FL 1: Kursintroduktion. Kursinformation: G:\L0009B\Allmänt\KursInformationL0009B.pdf (F) Kursplan: Se https://portal.student.ltu.se/stuka/kurs.php?kurs=l0009b&lang=swe (F) Allt som markerats

Läs mer

ITK:P2 F1. Hemsidor med HTML HTML. FTP, HTTP, HTML, XML och XHTML

ITK:P2 F1. Hemsidor med HTML HTML. FTP, HTTP, HTML, XML och XHTML ITK:P2 F1 FTP, HTTP, HTML, XML och XHTML DSV Peter Mozelius 1 Hemsidor med HTML Hur många av er har provat på att bygga en egen hemsida med HTML eller XHTML? För hand eller med hjälpverktyg? Har ni lagt

Läs mer

Programmering B med Visual C++ 2008

Programmering B med Visual C++ 2008 Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,

Läs mer

Kursplanering Objektorienterad programmering

Kursplanering Objektorienterad programmering Kursplanering Objektorienterad programmering Fakta Ämne Programmering Poäng 40 Yh-poäng Kurskod YSYS-OOP Klass Systemutvecklare.NET 2 Syfte och koppling till yrkesrollen Syftet är att få en stabil grund

Läs mer

Programmeringteknik. Planering 2014-05-12 MÅL LABB: MOMENT LAB4 HTML - EXEMPEL HTML. Webbdelen

Programmeringteknik. Planering 2014-05-12 MÅL LABB: MOMENT LAB4 HTML - EXEMPEL HTML. Webbdelen MÅL Programmeringteknik Webbdelen Efter webbmomentet ska du: kunna använda ett tiotal kommandon i: HTML (göra webbsidor) CSS (webbsidans utseende) Javascript (programmering - klienten) PHP (programmering

Läs mer

Jonas Daag Microsoftspecialist

Jonas Daag Microsoftspecialist Sofia Österman Jonas Daag Microsoftspecialist Systemutveckling/IT-Arkitekt KOMPETENS PROJEKLEDNING SYSTEMUTVECKLING SYSTEMFÖRVALTNING WEB FÖRÄNDRINGSHANTERING KRAVANALYS SÄKERHET MOBILITET MIGRERING LÖSNINGSARKITEK

Läs mer

UML. Tomas Czarnecki Institutionen för Informationsbehandling Åbo Akademi,FIN-20520 Åbo, Finland e-mail: tczarnec@abo.fi url: www.abo.

UML. Tomas Czarnecki Institutionen för Informationsbehandling Åbo Akademi,FIN-20520 Åbo, Finland e-mail: tczarnec@abo.fi url: www.abo. UML Tomas Czarnecki Institutionen för Informationsbehandling Åbo Akademi,FIN-20520 Åbo, Finland e-mail: tczarnec@abo.fi url: www.abo.fi/~tczarnec Abstrakt The Unified Modeling Language, UML, är ett visuellt

Läs mer

Senior utvecklare/arkitekt Rama Pour Rajaei Utbildningar Certifieringar Kontaktinformation

Senior utvecklare/arkitekt Rama Pour Rajaei Utbildningar Certifieringar Kontaktinformation Senior utvecklare/arkitekt Rama Pour Rajaei Rama har jobbat mer än 12 år som IT-konsult och är en mycket skicklig konsult inom sitt område som är systemutvecklingen/arkitektur av affärskritiska system

Läs mer

Slutrapport. APFy.me

Slutrapport. APFy.me Slutrapport APFy.me Innehållsförteckning 1 Inledning... 3 2 Mål och syfte... 3 3 Projektbeskrivning... 3 4 Leverabler... 4 5 Resultat... 4 6 Utvärdering och analys... 4 6.1 Utvärdering av resultat... 4

Läs mer

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor http://w3.msi.vxu.se/multimedia Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor Rune Körnefors Innehåll Variabler i JavaScript

Läs mer

Dagens föreläsningar

Dagens föreläsningar Webuppgift Dagens föreläsningar HTTP och hur kontakten sker mellan klient och server. Apache-servern HTML. Exekvera Pythonscript. Formulär. Model-View-Controller på webben. CSS. Presentation av uppgiften.

Läs mer

Federerad Roll Administration ÄR GROUPER EN MEDSPELARE? OVE OLANDER MITTUNIVERSITETET

Federerad Roll Administration ÄR GROUPER EN MEDSPELARE? OVE OLANDER MITTUNIVERSITETET Federerad Roll Administration ÄR GROUPER EN MEDSPELARE? OVE OLANDER MITTUNIVERSITETET Vad är/var problemet? NyA webben har behörigheter/roller via federerade attribut edupersonentitlement/gmai Studentcentrum

Läs mer

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2015.Q1

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2015.Q1 Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2015.Q1 För att 3L Pro skall fungera krävs att nedanstående hårdvarukrav och mjukvarukrav är uppfyllda. Viktigt är att tänka på att

Läs mer

Kort om World Wide Web (webben)

Kort om World Wide Web (webben) KAPITEL 1 Grunder I det här kapitlet ska jag gå igenom allmänt om vad Internet är och vad som krävs för att skapa en hemsida. Plus lite annat smått och gott som är bra att känna till innan vi kör igång.

Läs mer

DI Studio 4.3 - nyheter

DI Studio 4.3 - nyheter DI Studio 4.3 - nyheter Sofie Eidensten och Patric Hamilton Copyright 2010 SAS Institute Inc. All rights reserved. 2 Varför DI Studio Snabbare utveckling Enklare underhåll Gör det överskådligt 3 Nyheter

Läs mer

PHP. Dynamiska webbsidor

PHP. Dynamiska webbsidor PHP Dynamiska webbsidor WEBBPROGRAMMERING PÅ SERVERSIDAN DB server web browser client client script HTTP Request (get, post) HTTP Response (HTML, CSS, JS) web server server script JS PHP file (txt, xml,

Läs mer

Imperativ programmering

Imperativ programmering Imperativ programmering 1DL126 3p Imperativ programmering Jesper Wilhelmsson ICQ: 20328079 Yahoo: amigajoppe MSN / epost: jesperw@it.uu.se Rum: 1335 Tel: 471 1046 Imperativ programmering Vilka programmeringsspråk

Läs mer

Kurskatalog 2010 INNEHÅLLSFÖRTECKNING

Kurskatalog 2010 INNEHÅLLSFÖRTECKNING SFÖRTECKNING 1. RFID-Kurser... 2 1.1. RFID Grundkurs... 2 1.2. RFID Fortsättningskurs... 3 1.3. RFID dator programmering... 4 1.4. RFID Systemadministration... 5 1.5. RFID Aktiv Systemadministration...

Läs mer

dit06omr@cs.umu.se 12 juni 2009 Projektplan Webb-baserat bokningssystem för flyg Kurs: Applikationsutveckling för internet, TFE

dit06omr@cs.umu.se 12 juni 2009 Projektplan Webb-baserat bokningssystem för flyg Kurs: Applikationsutveckling för internet, TFE Projektplan Webb-baserat bokningssystem för flyg Kurs: Applikationsutveckling för internet, TFE VT-09 Innehållsförteckning Inledning & problembeskrivning...1 Systembeskrivning...2 Affärsobjekt...2 Databasen...4

Läs mer

Plattform as a Service, leverantör tillhandahåller plattformen, jag tillhandahåller applikation och ansvarar för denna.

Plattform as a Service, leverantör tillhandahåller plattformen, jag tillhandahåller applikation och ansvarar för denna. Modul 1: Molntjänst Publikt moln Privat moln Hybrid moln IaaS PaaS SaaS DaaS DaaS SLA Infrastructure as a Service, leverantör tillhandahåller infrastrukturen, jag tillhandahåller virtuella maskiner eller

Läs mer

ADO.NET Murach Kapitel 17-20

ADO.NET Murach Kapitel 17-20 Databaser och C# ADO.NET Murach Kapitel 17-20 2013-01-30 1 Winstrand Development Databas ADO.NET Är en del av.net ramverket och tillhandahåller delar för att kommunicera med olika datakällor. Dessa kan

Läs mer

Collaborative Product Development:

Collaborative Product Development: Collaborative Product Development: a Purchasing Strategy for Small Industrialized House-building Companies Opponent: Erik Sandberg, LiU Institutionen för ekonomisk och industriell utveckling Vad är egentligen

Läs mer