2012 HI1028 Projektkurs inom programvaruutveckling Johan Frisell, Joakim Hammer, Johannes Hedman, Jimmy Niemelä JJJJ Söderberg & Partners 0 4/27/2012
PROJEKTRAPPORT TEMA: TITEL: GRUPP: DELTAGARE: Projektkurs inom programvaruutveckling 9,0 hp Projekt KTH - Mobil uppsamlingsguide JJJJ Söderberg & Partners Johan Frisell Joakim Hammer Johannes Hedman Jimmy Niemelä HANDLEDARE: Lars Lindgren, Söderberg & Partners Reine Bergström, KTH BESTÄLLARE: Mikael Gellbäck, Söderberg & Partners DATUM: 2012-04-27 EXAMINATOR: Anders Lindström, KTH
Sammanfattning Följande rapport handlar om gruppens projektarbete som utförts på uppdrag av företaget Söderberg & Partners. Gruppens uppgift har handlat om att utveckla ett program som ska minska deras kostsamma pappersanvändning och underlätta processen som sker när företaget ska möta sina kunder. För att åtstadkomma detta har gruppen producerat tre separata delar som enligt Söderberg & Partners kriterier kan kommunicera med varandra. Delarna som ingått i kommunikationskedjan är en plattformsoberoende mobilapplikation som bygger på HTML5 och JQuery Mobile, en SQL databas samt en WCF-webbtjänst.
Abstract The following paper will describe the group s project work which was assigned by the company Söderberg & Partners. The task was to develop software able to reduce their costly paper usage and streamline the introductory meeting process with their customers. To achieve this, the group in collaboration with the company decided to produce three separate software components. A mobile application serving as the front end of the system, a SQL database as well as a web service based on WCF.
Förord Denna projektuppgift utfördes under kursen HI1028 Projektkurs inom programvaruutveckling 9.0hp i årskurs två VT 2012, på datateknikprogrammet vid KTH Haninge. Gruppen vill tacka Mikael Gellbäck vid Söderberg & Partners som erbjöd gruppen möjligheten att genomföra denna projektuppgift. Ett extra stor tack till Lars Lindgren vid Söderberg & Partners som har varit gruppens handledare på företaget under detta projekt. Projektgruppen JJJJ Söderberg & Partners KTH Haninge 2012-05-21 Johan Frisell Joakim Hammer Johannes Hedman Jimmy Niemelä
Innehållsförteckning 1 Introduktion... 1 1.1 Bakgrund... 1 1.2 Uppgiften... 1 1.3 Krav... 1 1.4 Altenativa lösningsmetod... 1 2 Metoder... 3 2.1 PhoneGap... 3 2.2 HTML5... 3 2.2.1 Native kontra HTML5... 3 2.3 CSS... 4 2.4 Javascript... 4 2.4.1 jquery... 5 2.4.2 jquery Mobile... 5 2.5 Microsoft.NET Framework 4.0... 5 2.5.1 WCF... 5 2.5.2 Entity Framework 4.0... 6 2.5.3 Säkerthet... 6 2.6 SQL Server 2008... 6 2.7 IIS 7.5... 7 2.8 Front-end... 7 2.9 Back-end... 7 3 Resultat... 9 4 Slutsats... 11 5 Referenser... 13 Appendix A - Kravlista... 0 Appendix B - Relationsdiagram för databas... 1
1 Introduktion 1.1 Bakgrund Detta projekt har genomförts av en grupp studenter från KTH Haninge som en del av utbildningen Högskoleingenjör inom Datateknik 180hp. Projektet utfördes på uppdrag av företaget Söderberg & Partners. Detta är ett företag som bland annat arbetar med rådgivning och förmedling av finansiella produkter. 1.2 Uppgiften Företaget har givit gruppen uppdraget att utveckla en applikation som är byggd för operativsystemet ios. Genom applikationen ska företagets kunder kunna skriva in och ändra sina personliga uppgifter och signera en fullmakt för att företaget ska kunna ge bättre service vid personliga rådgivningsmöten. Gruppen har även fått i uppgift att utveckla en webbtjänst samt databas för kommunikation och lagring av de personliga uppgifterna. Applikationen ska underlätta arbetet för företaget då de slipper kostsam pappershantering, då kunderna istället kan förmedla sin information via sin smartphone. Denna information ska skickas till företagets databas för lagring. Applikationen ska även ha en design som överenstämmer med företagets krav. 1.3 Krav Några av de krav som företaget ställde på produkten var att gruppen skulle kunna påvisa att koden är lätt att underhålla och kan återanvändas för andra plattformar än ios och att all information som användaren anger via uppsamlingsguiden lagras i en databas. För en fullständig kravlista, se Appendix A. 1.4 Altenativa lösningsmetod En alternativ lösning är att skriva en HTML5-hemsida med responsiv CSS som gör att hemsidan anpassas efter klientens upplösning. 1
2
2 Metoder 2.1 PhoneGap PhoneGap är en applikation som tillåter en utvecklare att skapa en hybrid applikation. Applikationerna skrivs som vanliga HTML-sidor och packas ner för att köras som en nativeapplikation inuti en UIWebView eller en WebView[1]. När PhoneGap används får man tillgång till mobiltelefonens funktioner som kamera, accelerometer, notifikationer etc.[2] Samma sidor som skrivits i vanlig HTML5 kan snabbt bli en native-applikation på plattformar som ios, android, Windows Phone 7 med flera. [3] PhoneGap valdes som skal till projektet eftersom gruppen hade läst om att det fungerat bra när andra personer och företag använt det till sina egna projekt. En stor orsak var även att ramverket är öppen källkod vilket betyder att varken gruppen eller beställaren behöver betala licenspengar för att använda PhoneGap. 2.2 HTML5 Hyper Text Markup Language, HTML, är ett märkspråk. Ett märkspråk använder sig utav märktaggar som kallas HTML-taggar för att beskriva sidor[5]. Varje element som ett dokument är uppbyggt av definieras mellan två taggar, en inledande och en avslutande. 2.2.1 Native kontra HTML5 I början av projektet behövde projektgruppen besluta ifall applikationen skulle vara skräddarsydd för respektive plattform, native, eller ifall den skulle vara en webbapplikation. Gruppen behövde göra en förstudie för att fatta ett bra beslut. Vid utveckling av en native-applikation kommer man att ha tillgång till nya funktioner som läggs till så fort som möjligt. Webbapplikationer följer standarder vilka inte uppdateras förrän det är säkert att de nya funktionerna är något som kommer användas i större bredd. Många framgångsrika applikationer har varit de som varit bland de första att utnyttja en innovativ funktion som lagts till i en mobil på ett bra sätt. [19] Eftersom native-applikationer skrivs direkt för ett specifikt operativsystem så exekveras koden snabbare än ifall den måste översättas via en web runtime barrier. Det krävs mera arbete att skriva native-applikationer då de behöver skrivas specifikt till varje operativsystem. De har även olika funktionaliteter och hårdvaruspecifikationer som måste tas i åtanke när man gör de olika versionerna. En webbapplikation kan köras på alla plattformar som har en webbläsare och på det här sättet går det mycket fort att utveckla applikationen. Även om upplösningen är olika mellan mobiler kan man använda sig av olika stilmallar gjorda med CSS som anpassar sidan så att den ser bra ut på alla. 3
Eftersom det i en HTML5-applikation går att dela upp innehållet i flera delar, t. ex. HTMLkod för sidans innehåll, Javascript för funktioner och CSS för stilen, kan olika personer arbeta parallellt med projektet. Att koda en HTML5-applikation är som att koda en hemsida vilket många redan kan. Man behöver inte lära sig t.ex. objective-c om man vill göra en applikation till ios. Det finns ett tredje alternativ utöver native- eller HTML5-applikation och det är att använda båda teknikerna i en så kallad hybridapplikation. Då integrerar man HTML5-sidorna i ett applikationskal som tillåter att webbsidorna körs som en native-applikation och då får man möjligheten att även kunna nå plattformens inbyggda API:er. Efter att ha gjort en förundersökning på de olika sätten man kan utveckla applikationen kom gruppen till beslutet att göra en hybridapplikation. Detta alternativ valdes eftersom HTML5 kändes som det bättre alternativet eftersom applikationen senare ska fungera för flera plattformar. 2.3 CSS Cascade Style Sheet, CSS, är ett språk som beskriver presentationen av webbsidor. CSS beskriver olika attribut som färg, layout och teckensnitt. Med hjälp av detta språk kan man på ett enkelt sätt ha olika layouter baserad på ifall sidan körs på en vanlig dator eller ifall den körs på mobilen. CSS behöver inte användas med HTML utan det kan användas med alla XML-baserade märkspråk. Separationen av CSS från HTML gör det lättare att underhålla, dela stilmallar mellan sidor och att skräddarsy sidor till olika miljöer. Detta kallas att separera strukturen från presentationen. [11] Gruppen behövde ett sätt att lätt kunna skala layouten korrekt ifall applikationen kördes på en mobil med lågupplöst- respektive högupplöst-skärm. Eftersom applikationen utvecklades i HTML5 fattade gruppen tidigt beslutet att använda CSS för att möjliggöra användningen av flera olika stylesheets beroende på skärmstorleken. 2.4 Javascript Javascript är ett skriptspråk som exekveras i någon form av webbläsare. Javascript tillfredsställer behovet att kunna manipulera och bearbeta indata som en användare exempelvis sänder in via ett formulär. Även möjligheten att dynamisk kunna förändra sidans struktur och utseende. Detta brukar kallas Dynamic HTML eller DHTML. AJAX är en förkortning för Asynchronous Javascript and XML och är en teknik som gör det möjligt för en hemsida att dynamisk utväxla data mellan server utan att behöva ladda om sidan. Användningsområdena i vår applikation är varierande och går från hantering av HTML5s localstorage, jquerys AJAX-kommunikation till felkontroller av formulär. Anledningen till att gruppen valt att använda Javascript är dels förutom att det stöds av de flesta webbläsarna [17] och dels att det har tillgodosett vårt behov av bland annat jquery 4
mobile. Ett annat alternativt med motsvarande funktionalitet är Microsofts Visual Basic Script, tyvärr är det begränsat till Internet Explorer vilket gjort det svårt att växa. 2.4.1 jquery jquery är ett externt bibliotek som gör det enklare att utnyttja Javascripts inbyggda funktioner för manipulering och traversering. Man kan exempelvis hitta olika HTML-taggar genom att mata in olika kriterier, som är mer specificerade än vad som går i ren Javascriptkod. Exempelvis finns så kallade selektorer som ger möjlighet till manipulation av ett visst element eller grupp på ett intuitivt sätt. Gruppen valde att använda jquery eftersom det gjorde Javascript-programmering smidigare. En stor orsak var även att det fanns mycket dokumentation på internet om hur man använder jquery och gruppen kunde snabbt lära sig använda biblioteket. 2.4.2 jquery Mobile jquery Mobile är ett API baserat på HTML5. Det är byggt med jquery och jquery UI som bas. Målet med jquery Mobile är att användaren inte ska behöva skriva specifika webbapplikationer till de olika mobila plattformarna utan istället ha möjligheten att designa en webbsida eller applikation som ska fungera på alla olika plattformar. Ramverket inkluderar ett navigationssystem baserat på AJAX som gör det möjligt att ha animerade sidövergångar, och det finns även tillgång till användargränsnitt-widgets för sidor, dialoger, knappar, formelement etc. [13] Eftersom HTML-sidorna skulle köras inuti ett skal behövde gruppen få applikationen att uppföra sig som en native-applikation. Gruppen ville undvika att användare av applikationen skulle uppleva att de surfade på en vanlig hemsida. jquery Mobile hade inbyggda funktioner som mobila applikationer hade nytta av så som animerade sidbytningar och statiskt sidhuvud m.m. 2.5 Microsoft.NET Framework 4.0 2.5.1 WCF WCF webbtjänst är en.net-modul som ingår i.net Framework 3.5 och senare. WCF står för Windows Communication Foundation och är ett API för serverbaserade applikationer. Med en webbtjänst skapar man ett mellanliggande lager mellan en databas och en klient. Protokoll som kan användas för att skicka data mellan webbtjänsten och den externa applikationen är bland annat HTTP, HTTPS och TCP/IP. [20] Denna typ av webbtjänst kan både skicka och ta emot meddelande i JSON-format vilket är det format som också användes i projektet. [21] Gruppen valde att använda WCF webbtjänst för att det enligt kravspecifikationen (se appendix A) var tvunget att kunna exekveras på en IIS 7.5-server. 5
2.5.2 Entity Framework 4.0 Entity Framework är en av många moduler som ingår i.net Framework som utvecklats av Microsoft för att bistå utvecklare med funktioner för att utföra vanliga uppgifter som filhantering, databashantering med mer. Entity Framework är ett verktyg som används för att skapa ett abstraktionslager mellan en databas och utvecklaren. För att utveckla en applikation där förfrågningar mot en databas ska kunna genomföras, krävs det att utvecklaren har kännedom om hur databasen är uppbyggd. Strukturen på data lagrat i en databas skiljer sig säkerligen från den struktur som utvecklaren använder för att lagra data i applikationen, vilket kräver att utvecklaren skapar metoder för att konvertera inhämtat data från databasen till den form som applikationen har för att lagra data. Detta gäller även i motsvarande fall där data från applikationen skall lagras persistent i databasen. Entity Framework skapar en databasmodell (ref 1, sid 41) lokalt inuti applikationen vilket baseras på det schema som databasen är uppbyggd kring. Ur modellen kan entitetsobjekt skapas inuti applikationen och dessa hanterar utvecklaren som vilket annat objekt som helst. När data ska lagras i databasen översätter Entity Framework entitetsobjektet till data som passar databasen med hjälp av metadata som beskriver databasschemat. Eftersom att gruppens webbtjänst fungerar som en direkt länk mellan användare av applikationen och databasen passar det gruppen att använda ett verktyg som Entity Framework men även för att det var ett krav från beställaren. Alternativet hade blivit att skriva de funktioner som behövs för att ansluta mot databasen och modifiera data. 2.5.3 Säkerhet Det är inte mycket känslig information som skickas mellan klienten och webbtjänsten, men då det skickas bland annat personnummer har företaget lagt in önskemål om att skicka denna information med en SSL-kryptering. SSL står för Secure Socket Layer och är ett protokoll som krypterar innehållet som skickas. En klient kan aldrig hämta ut information från någon annan användare än en själv. Detta har vi säkerställt med bland annat krav på att skicka med personnummer och lösenord vid varje kontakt med webbtjänsten. Detta kontrolleras därefter med en tabell i databasen över de som har tillåtelse att logga in. 2.6 SQL Server 2008 Microsoft SQL server är en av de stora databashanterare som är ute på marknaden just nu och har funnits i över 20 år. [18] Det är också den databashanterare som gruppen valde att använda, dels för att det var ett krav från beställaren men även för att den passar in väldigt bra då gruppen använder andra moduler från Microsoft. Den SQL-dialekt som användes i SQL server 2008 heter Transact-SQL men brukar förkortas T-SQL. Precis som många andra databashanterare stöder SQL server 2008 ACID, triggers med mera. Det går snabbt att skapa upp en databas och komma igång med hjälp av Microsofts egna Server Managementprogram. 6
2.7 IIS 7.5 IIS, vilket står för Internet Information System, är en plattform för att publicera webbtjänster. IIS kan hantera serverskriptspråken ASP.NET och PHP. En nytillkommen funktionalitet i IIS7, är att samtliga applikationer automatiskt tilldelas sin egen application pool vilket garanterar att varje enskild applikation ges en egen isolerad resursrymd. Denna isolering tillför en förhöjd pålitlighet och säkerhet till system i sin helhet. Plattformen är byggd med modularitet i åtanke. Utvecklaren har möjlighet att efter egna preferenser anpassa bibliotek och API för att optimera sin egen webbtjänst. Vill man skapa tillägg, finns även den möjligheten genom C, C++, C# och VB.NET. Denna flexibilitet har även stor inverkan på hur man kan hantera säkerhetfrågor genom att man kan ta bort all oönskad funktionalitet som skulle kunna medföra eventuella säkerhetshål. Det var ett krav från beställaren att gruppens applikation skulle kunna kommunicera med en webbtjänst som publiceras via IIS7.5. 2.8 Front-end Gruppen började med att skapa hemsidor med hjälp av HTML5, som motsvarade de steg som skulle finnas i uppsamlingsguiden. För att skriva hemsidorna användes Notepad++. Designen på hemsidorna baserades på Söderberg & Partners dåvarande hemsida och gjordes enbart med CSS. För att designen skulle skala bra på olika mobiler använde gruppen de stilmallarna i jquery Mobile som var speciellt anpassade för olika mobila plattformar. Den slutgiltiga designen baserades på önskemål från den marknadsansvarige och den designmanual som gruppen fick av företaget. Funktionaliteten för varje hemsida skapades med hjälp av Javascript, vilket är ett skriptspråk som stöds av de flesta webbläsare. För att underlätta kodningen av de olika funktionerna använde gruppen ett bibliotek kallat jquery, då detta innehöll färdiga funktioner som gruppen hade nytta av. jquery användes för att skapa de funktioner som klienten använde för att kontakta, skicka och ta emot information till och från webbtjänsten. Gruppen utformade ett protokoll som definierade hur data skulle skickas till och från webbtjänsten samt en lista över de felkoder som webbtjänsten kan komma att rapportera till klienten. För att kontrollera de inmatningar som användaren gör skapades ett antal funktioner vilka kontrollerade att inmatningarna var av korrekt typ och följde det format som angivits. För att hemsidorna skulle fungera som en fristående applikation använde gruppen PhoneGap, vilket var ett tillägg till utvecklingsmiljöerna Xcode och Eclipse. PhoneGap gav gruppen möjligheten att paketera hemsidorna i ett applikationsskal. 2.9 Back-end Gruppen började med att skapa ett ER-diagram över databasstrukturen. Detta omvandlades senare till ett relationsdiagram. Därefter skapades entiteterna i den databasserver som gruppen 7
tillhandahölls av företaget. Detta gjordes med hjälp av programmet SQL Server Management Studio och SQL-dialekten T-SQL. För kommunikationen mellan klient och databasserver skapades en webbtjänst i Microsoft Visual Studio. Ramverket som gruppen använde var WCF web service och skrevs i det objektorienterade språket C#. Hanteringen av databasen skedde med hjälp av Entity Framework 4.0 som konverterar en relationsdatabasentitet till ett objekt i webbtjänsten. Mellan klient och webbtjänst användes ett gränssnitt bestående av tre funktioner. Ett svar returnerades alltid som ett JSON-objekt bestående av en felkod samt data. Är felkoden skild från noll innebar det att ett fel inträffade. I webbtjänstens konfigurationsfil aktiverades SSL-kryptering som protokoll när paket skickades och mottogs. 8
3 Resultat Gruppen utvecklade en hybridapplikation till android- och ios-plattformarna på uppdrag av företaget Söderberg & Partners. Resultatet består av att en kund åt företaget kan logga in med sitt personnummer och ett lösenord de fått av företaget. Kunden har möjlighet att ange relevant information som företaget behöver för att vara mer förberedd inför rådgivningsmötet. Kunden kan även godkänna en informationsfullmakt inuti applikationen som medger att Söderberg & Partners får ta del av informationen. Ifall användaren loggar in igen kan denne ta del av informationen som finns i företagets databas om familjesituationen, inkomster, utgifter, med mera. För att verifiera inloggningar och lagra data som kunderna anger har gruppen skapat en databas i SQL server 2008. Denna databas kommunicerar därefter med en webbtjänst via Entity Framework. Den webbtjänst som gruppen skapat finns därefter åtkomlig för klienten, genom att skicka GET- eller POST-meddelande till en HTTPS-adress. Klienten kan då hämtaoch skriva information från och till databasen. De olika sidorna som behövdes i klienten byggdes i HTML5 med hjälp av Javascript och designen gjordes i CSS och jquery Mobile. Det behövdes olika stilmallar beroende på vilken smartphone applikationen kördes på eftersom upplösningen var olika. Annars var koden väldigt lika när det kommer till HTML5. Dock behövdes ett skal som skulle tillåta att klienten kunde köras på både android och ios och till detta användes PhoneGap. Med hjälp av PhoneGap kunde man relativt fort få sidorna att köras som en native-applikation på respektive plattform. 9
10
4 Slutsats Projektet gick i stort sett som väntat med få inslag av oväntade problem. All funktionalitet kravspecifikationen hade med blev implementerad. Problem som uppstod var att applikationen använde sig utav animerade sidbyten med hjälp av jquery Mobile som fungerade perfekt för ios, medan när den kördes på android fungerade de inte alls. Det fanns även vissa problem med nyare versioner av android som gjorde att applikationen blev väldigt långsam. Problemet med sidbytningarna löstes genom att stänga av dessa för android med förhoppningen att jquery Mobile utvecklarna snart publicerar en utlovad ny version som löser problemet. Det andra problemet löstes genom att specificera att de android versioner som har stöd för hårdvaruacceleration använder sig utav det under körningen av klienten. Ett annat problem gruppen hade var att det inte gick att skicka POST-meddelanden mellan klienten och webbtjänsten när de befann sig på olika domäner. Detta berodde på en inbyggd säkerhetsfunktion i webbläsarna. [22] Problemet löstes genom att använda jquerys post-funktion istället. Det som gruppen kunnat prestera bättre hade varit att i början av projektet gjort en bättre förstudie i hur de valda metoderna och teknikerna fungerade för de tänkta plattformarna. Man kunde i det fallet kanske haft möjligheten att titta på andra metoder för att undvika dessa problem. Dessutom borde gruppen oftare testat applikationen på de båda plattformarna för att tidigare upptäcka problem och kanske ändrat till att utveckla nativeapplikationer istället. Det hade tagit längre tid att lära sig de båda språken än vad det tog att lära sig HTML5 och resten av metoderna som användes i projektet, men samtidigt hade båda applikationerna fungerat så bra som möjligt oavsett vilken av plattformarna man körde applikationen på. En stor nackdel med den valda metoden är att gruppen är beroende av att utvecklarna av PhoneGap och jquery Mobile måste lösa problemen som vi stött på. Om gruppen hade valt native-utveckling istället hade det kanske tagit längre tid att utveckla två separata applikationer men då hade gruppen haft mer kontroll över projektet och kunnat lösa problem som uppstod utan att behöva förlita sig till andra utvecklare. Det som kan utveckla applikationen ytterligare är att lägga till t.ex. bank-id för signering av informationsfullmakten. Just nu är det endast ett kryssfält som användaren fyller i och sedan trycker på en knapp för att gå vidare. Det krävs ett sätt att bevisa att man är den personen som ska skriva på fullmakten. Gruppen anser även att det skulle vara en förbättring ifall det går att logga in med bank-id för säker inloggning. I och med att koden som är skriven är generell skulle det vara relativt enkelt att skapa nya versioner till bland annat Windows Phone 7 och BlackBerry. 11
12
5 Referenser Internet: 1. 2011-12 The jquery Foundation. Building PhoneGap apps with jquery Mobile http://phonegap.com/about/features (Hämtad 2012-05-16) 2. Adobe Systems. 2012. PhoneGap Supported Features http://phonegap.com/about/features (Hämtad 2012-05-16) 3. Adobe Systems. 2012. PhoneGap How PhoneGap Works http://phonegap.com/about (Hämtad 2012-05-16) 4. Adobe Systems. 2012. PhoneGap Get Started Guide http://phonegap.com/start (Hämtad 2012-05-16) 5. Refsnes Data. 1999-2012.HTML Introduction 6. http://www.w3schools.com/html/html_intro.asp (Hämtad 2012-05-16) 7. Refsnes Data. 1999-2012. HTML 4.01 / XHTML 1.0 Reference http://www.w3schools.com/tags/default.asp (Hämtad 2012-05-16) W3C. 2012. HTML5 differences from HTML4 http://www.w3.org/tr/html5-diff/ (Hämtad 2012-05-16) 8. Hassell, Jonathan. 2010. Developing for the iphone and Android: The pros and cons. Computerworld. 6 juli. http://www.computerworld.com/s/article/9178684/developing_for_the_iphone_an d_android_the_pros_and_cons (Hämtad 2012-05-16) 9. AdesDesign.2012. ADESDESIGNBLOG. Creating and Linking External CSS files, 10 Jan. http://www.adesdesign.net/blog/tutorials/css/creating-and-linking-external-cssfiles/ (Hämtad 2001-05-16) 10. W3C. 2012. Data- attribute reference http://www.w3.org/tr/html5-diff/ (Hämtad 2012-05-16) 11. W3C. 2012. HTML & CSS http://www.w3.org/standards/webdesign/htmlcss#whatcss 12. The jquery Foundation. 2012. jquery http://www.jquery.com (Hämtad 2012-05-18) 13. The jquery Foundation. 2012. jquery Mobile Overview http://jquerymobile.com/demos/1.1.0/docs/about/intro.html (Hämtad 2012-05-18) 14. The jquery Foundation. 2012. jquery Mobile http://www.jquerymobile.com (Hämtad 2012-05-18) 20. Microsoft MSDN. 2012. Protokoll http://msdn.microsoft.com/en-us/library/ms731172.aspx (Hämtad 2012-05-22) 21. Microsoft MSDN. 2012. JSON-format http://msdn.microsoft.com/en-us/library/bb412170.aspx (Hämtad 2012-05-22) 13
22. IBM. 2012. Cross-domain communication with JSONP http://www.ibm.com/developerworks/library/wa-aj-jsonp1/ (Hämtad 2012-05-23) Böcker: 15. Lernman, Julia. 2010. Programming Entity Framework. 3. Uppl. 1005 Gravenstein Highway North, Sebastol, CA 95472: O Reilly Media Inc. 16. Mostarda Stefano, De Sanctis Marco, Bochicchio Danielle. 2011. Entity Framework 4 in Action. 20 Baldwin Road PO Box 261 Shelter Island, NY 11964: Manning Publications Co. 17. Flanagan, David. 2006. JavaScript The Definitive Guide. 5. Uppl. 1005 Gravenstein Highway North, Sebastol, CA 95472: O Reilly Media Inc. 18. Padron-McCarthy Thomas, Risch Tore. 2005. Databasteknik. Studentlitteratur. Video: 19. GoogleDevelopers. Google I/O 2011: HTML5 versus Android: Apps or Web for Mobile Development? (Hämtad 2012-05-22) http://www.youtube.com/watch?v=4f2zky_yyyq 14
Appendix A - Kravlista Följande krav vill Söderberg & Partners vara uppfyllda för att vi skall anse att uppgiften är färdig. Den kod som skrivs skall vara objektorienterad och följa vedertagna kodstandarder vad gäller namngivning, struktur etc.. Om ni designar och implementerar det mobila gränssnittet för flera terminaler så skall ni ta i beaktande att synergierna vad gäller underhåll och vidareutveckling skall maximeras. Detta gäller även om ni bara implementerar gränssnittet för en terminaltyp. Då skall ni visa på hur man framöver skall dra fördel av er upplägg för att dra nytta av gemensam kod. Dock skall komplexiteten i utvecklingen inte höjas allt för mycket. Alla personlig uppgifter som användaren lägger in via det mobila gränssnittet skall lagras i en databas hos Söderberg & Partners. Den framtagna webbservicen skall vara skriven i ASP.NET 4.0 och kunna köras på IIS 7.5. All kommunikation mellan den mobila klienten och databasen skall gå via denna webbservice. Databaslagret skall använda sig av Entity Framework 4.0 för att kommunicera mellan.net och databasen. Webbservicen skall köras som en egen systemanvändare (AD-användare) i IIS:en för att maximera säkerheten. Databaskoden skall vara framtagen för SQL Server 2008 och använda sig av T-SQL.
Appendix B - Relationsdiagram för databas
Appendix C Källkod https://dl.dropbox.com/u/28702149/sp%20mobileapp.rar