Mobil lösning för intern informationsspridning

Storlek: px
Starta visningen från sidan:

Download "Mobil lösning för intern informationsspridning"

Transkript

1 IT Examensarbete 15 hp Juni 2013 Mobil lösning för intern informationsspridning Jonas Eliasson Institutionen för informationsteknologi Department of Information Technology

2

3 Abstract Mobile Solution for In-house Information Distribution Jonas Eliasson Teknisk- naturvetenskaplig fakultet UTH-enheten Besöksadress: Ångströmlaboratoriet Lägerhyddsvägen 1 Hus 4, Plan 0 Postadress: Box Uppsala Nethouse Sverige AB is an IT consultancy in need of a mobile solution to inform participants of in-house events and distribute news to their consultants working in the field. This report describes the planning and development of such a solution. The result of this thesis is a three system-solution. A mobile application where it is possible to view news and information about in-house events, and also receive suitable notifications, a web service which assists the mobile application by providing the corresponding information and finally a website to manage the information and notify mobile clients. Telefon: Telefax: Hemsida: Handledare: Mattias Lyrén Ämnesgranskare: Olle Eriksson Examinator: Olle Gällmo IT Tryckt av: Reprocentralen ITC

4

5 Innehåll 1 Introduktion Uppgiftsbeskrivning Mål och syfte Avgränsningar Bakgrund Vad är en webbtjänst Datautbytesformat XML JSON Aviseringar för mobila enheter Principer för objektorienterad design Metodik Verktyg Implementationsplattform - ASP.NET Web API MVC Entity Framework Windows Phone SDK PushSharp Implementation Principer för objektorienterad design SRP DIP Grundplattformen Domänmodeller, databas och dataaccess Tjänster Aviseringstjänst Exemplifiering av skiktningen Mobilapplikationen Användargränssnitt Registrering för aviseringar Kommunikation med webbtjänsten Inloggning och säkerhet Webbtjänsten Design av resurser Datautbytesformat Administrationsgränssnittet Resultat Mobilapplikationen Vyer och navigation

6 5.1.2 Aviseringar Webbtjänsten Konsumera nyheter och kategorier Registrering för aviseringar Datautbytesformat Administrationsgränssnittet Grundplattformen Slutsats och diskussion Möjliga förbättringar Bilagor 33 A Skisser mobilapplikation 33 B Skärmdumpar mobilapplikation 35 C Skärmdumpar administrationsgränssnitt 38 Referenser 42

7 1 Introduktion Nethouse är ett It-konsultbolag med kontor på fem orter i Sverige och arbetar med Itoch verksamhetsutveckling, med uppdragsgivare både i näringslivet och den offentliga sektorn. Idag har Nethouse ett antal anställda som arbetar ute på plats hos deras uppdragsgivare som bland annat resurskonsulter. Att få ut information om interna händelser och nyheter till dessa, men även de andra anställda, är viktigt, dels för att de ska känna sig uppdaterade med vad som händer men även för att de ska känna tillhörighet till sin faktiska arbetsgivare, Nethouse. Idag publiceras och sprids de interna händelserna och nyheterna via företagets internwebb. Internwebben är dock inte mobilanpassad och från vissa uppdragsgivare saknas möjlighet att överhuvudtaget ansluta sig till denna. 1.1 Uppgiftsbeskrivning För att lösa problemet med att sprida information till alla sina anställda vill Nethouse att en mobilapplikation tas fram. Mobilapplikationen behöver finnas i en version för Google Android, Apple Ios och Microsoft Windows Phone. Vidare önskas möjligheten att skicka aviseringar till de mobila enheterna när vissa nyheter av viktigare karaktär publiceras, för att på ett snabbare sätt uppmärksamma alla anställda om dessa nyheter. Initialt var tanken att mobilapplikationen skulle integreras med den befintliga internwebben som är baserad på Microsoft Sharepoint. Integration med Sharepoint valdes dock bort när det visade sig att nyhetsflödet i mobilapplikationen skiljer sig en hel del från nyhetsflödet på internwebben. Att ta fram en implementation/integration som omvandlar nyhetsflödet från internwebbens format till ett format som passar mobilapplikationen skulle i sig bli ett ganska stort arbete. Det finns även ett viss missnöje med den befintliga internwebben och diskussioner pågår om hur informationsflödet på internwebben möjligen ska förändras i framtiden, vilket skulle kunna leda till att en eventuell integration ganska fort blir inaktuell. Produktägaren tog därför beslutet att en helt separat lösning skulle tas fram och om behov finns i framtiden löser man integration med internwebben då. Som nämnts har Nethouse kontor på flera orter och till en början kommer den framtagna lösning användas av Örebrokontoret. Stöd för flera kontor måste dock tas i beaktande när systemet designas, där de olika kontorens information ska vara isolerade från varandra. 1

8 1.2 Mål och syfte Mål och syfte med examensarbetet är att Skapa en grundplattform för att skicka aviseringar till olika mobila enheter, så som Google Android, Apple Ios och Microsoft Windows Phone. Skapa en nyhets-webbtjänst anpassad för konsumtion av mobila enheter. Skapa en mobilapplikation för Windows Phone som kan ta emot aviseringar om ny information samt kan hämta information för läsning vid behov. Skapa ett enklare gränssnitt för administration och nyhetspublicering. 1.3 Avgränsningar Arbetet innefattar inte att utveckla en version av mobilapplikationen för Google Android eller Apple Ios, utan dessa kommer tas fram vid ett senare skede av Nethouse. Det ingår heller inte att utreda vilken typ av säkerhetslösning som ska används för mobilapplikationen respektive webbtjänsten, detta utreds parallellt av Nethouse, men implementeras under arbetets gång av mig. Vidare ska inget bibliotek för att skicka aviseringar utvecklas, utan tredjepartsbiblioteket PushSharp ska användas. 2

9 2 Bakgrund 2.1 Vad är en webbtjänst Webbtjänster (engelska: Web Services) låter datorer och andra enheter kommunicera med varandra via webben [1]. Idag är det otydligt vilka tjänster på webben som normalt menas med ordet webbtjänst. Fokus för detta arbete har varit webbtjänster som baseras på REST-arkitekturen (REpresentational State Transfer). REST-arkitekturen är en tillståndslös (engelska: Stateless) klient-server-arkitektur som kretsar kring resurser. För REST är resurser första klassens objekt och karaktäriseras av följande: En resurs identifieras (adresseras) unikt med en Uniform Resource Identifier 1 (URI), exempelvis En resurs manipuleras med hjälp av välkända HTTP-metoder, exempelvis GET och POST. En förfrågan till en resurs och förfrågans resultat kan skickas i flera olika representationsformat, så kallade mime types, exempelvis text/html, application/json och image/png. Figur 1 illustrerar resurser, deras adressering och hur de olika HTTP-metoderna vanligtvis implementeras. Resurs GET PUT POST DELETE Enskild Hämta ett element Uppdatera ett element Används generellt inte Ta bort ett element Samling Hämta samlingen Byta ut samlingen Lägg till ett element till samlingen Ta bort samlingen Figur 1: Typisk implementation av resurser och tillhörande HTTP-metoder (inspirerad av [2]). Att REST-arkitekturen är tillståndslös innebär att inget tillstånd eller session lagras åt användaren på servern mellan anrop, utan ett eventuellt tillstånd måste inkluderas av användare vid nästkommande anrop. Fördelen med denna tillståndslöshet är att systemet blir tidsmässigt frikopplat, vilket ofta är önskvärt i distribuerade system som webbtjänster [1]. 1 Identifierare eller namn för en resurs 3

10 2.2 Datautbytesformat För att kunna utbyta information över nätverk konverteras datastrukturer och objekt till ett så kallat datautbytesformat. Två vanligt förekommande datautbytesformat för webbtjänster är XML (extensible Markup Language) [3] och JSON (JavaScript Object Notation) [4]. REST-arkitekturen har inga krav på vilket format som används, men XML och JSON är båda vanligt förekommande. Följande Person-klass (listning 1) i programmeringsspråk C# kommer användas för att exemplifiera hur data kodas i XML respektive JSON i efterföljande sektioner. public class Person public string Name get; set; public int Age get; set; public List< > s get; set; Listning 1: En Person-klass i C# XML XML är ett märkspråk (engelska: Markup Language) som kännetecknas av sina taggar vilka används för uppmärkning av data. XML är designat för att vara lätt att läsa och tolka för datorer, men även för människor [3]. XML används både för att lagra data på filer och som ett datautbytesformat. Nedan (listning 2) följer ett exempel av en instans av Person-klassen kodad i XML. <Person> <Name>John Doe</Name> <Age>29</Age> < s> < > <Type>Home</Type> </ > < > <Type>Work</Type> </ > </ s> </Person> Listning 2: En instans av Person-klassen serialiserad till XML. 4

11 2.2.2 JSON JSON är ett textbaserat datautbytesformat som tagits fram för att vara enkelt, minimalt och portabelt [4]. Formatet klarar av att representera primitiva datatyper som strängar, nummer, booleska värden samt null, men formatet klarar även objekt och arrayer. Formatet bygger på nyckel-värde-par, där nyckeln alltid är en sträng och värdet kan vara något av de föregående nämna typer. Objekt omringas av, medan arrayer omringas av []. Nedan (listning 3) följer samma exempel av Person-klassen, men kodad i JSON. "Name" : "John Doe", "Age" : 29, " s" : [ "Type" : "Home", "Address" : "Type" : "Work", "Address" : ] Listning 3: En instans av Person-klassen serialiserad till JSON. 2.3 Aviseringar för mobila enheter För mobila enheter används aviseringar (engelska: Push notifications) när man vill upplysa en användare om att något har hänt, till exempel att ett nytt epostmeddelande har inkommit, utan att kräva ett manuellt ingripande från användaren. En naiv lösning för att uppnå detta vore att låta varje applikation ha en egen implementation av någon typ av tjänst som arbetar i bakgrunden och som meddelar när det finns ny information att tillgå. För en mobil enhet skulle denna lösning ställa till problem. Enheterna har begränsat med resurser (som till exempel batterikapacitet) och skulle påverkas negativt om alla applikationer med stöd för aviseringar ska ligga aktiva i bakgrund och köras. En bättre lösning är istället att man (i) inför en mellanhand, ett slags ombud, som ansvarar för att ta emot och sedan vidarebefordra alla aviseringar (oavsett applikation) som avser en viss mobil enhet och (ii) en bakgrundstjänst (för alla applikationer) på den mobila enheten som mottar och visuellt visar de aviseringar som har skickats via ombudet. Denna lösning är vad Microsoft, Apple och Google använder idag [5] [6] [7]. 5

12 Applikationens webbtjänst A 5, * 2, 3 B Applikation Mobil enhet C 1, 4 Aviseringsombud Aviseringstjänst Figur 2: Illustrerar principen för aviseringsflödet för mobila plattformar (inspirerad av [5]). Vissa detaljer saknas, främst där tillverkarna skiljer sig åt, till exempel kräver både Apple och Google att certifikat används för all kommunikation med deras aviseringsombud, vilket Microsoft inte gör. Följande exemplifierar registrering för aviseringar (se figur 2): 1 Applikationen begär en aviseringsadress. 2 Aviseringsklienten skickar vidare förfrågan till aviseringsombudet 2. 3 Aviseringsombudet returnerar en unik adress för aviseringar. 4 Aviseringsklienten returnerar adressen till applikationen. 5 Applikationen registrerar sig hos sin webbtjänst. Inkluderar aviseringsadressen som webbtjänsten kan använda vid framtida aviseringar. Följande exemplifierar hur en avisering skickas (se figur 2): A Applikations webbtjänst skickar en avisering till aviseringsombudet. B Aviseringsombudet aviserar den mobila enheten. C Aviseringsklienten visar visuellt aviseringen som inkommit eller vidarebefordrar aviseringen till applikationen 3. * Applikationen hämtar den faktiska informationen från sin webbtjänst. 2 Exempelvis: Microsoft Push Notification Service, Apple Push Notification Service eller Google Cloud Messaging 3 Denna hantering skiljer sig åt mellan tillverkarna 6

13 2.4 Principer för objektorienterad design Det finns en uppsättning principer för objektorienterad design som hjälper utvecklare att designa bra system. Principerna representerar samlade tankar och idéer från ett stort antal mjukvaruutvecklare och forskare med många års erfarenhet inom området [8]. Dessa principer sammanfattas av [8] som: The Single-Responsibility Principle (SRP) En klass bör endast ha en anledning att ändras. The Open/Closed Principle (OCP) Klasser bör vara öppna för utvidgning men stängda för modifieringar. The Liskov Substitution Principle (LSP) Subtyper bör kunna ersätta sina bastyper. The Dependency-Inversion Principle (DIP) Högnivå-moduler bör ej bero av lågnivå-moduler, bägge bör bero av abstraktioner. Abstraktioner bör ej bero av detaljer, detaljer bör bero av abstraktioner. The Interface Segregation Principle (ISP) Klienter bör inte vara tvingade att bero av metoder som de ej använder. 7

14 3 Metodik En agil arbetsmetod användes då en stor del av kraven var okända i det initiala skedet och snabbt kunde förändras under tidens gång. Agila arbetsmetoder kännetecknas av att vara flexibla och effektiva på att hantera förändringar i kravspecifikationen [9]. Med agila arbetsmetoder bedrivs arbetet iterativt och i inkrementella steg som öppnar upp för en mer kontinuerlig utvärdering och möjlighet att styra om projektet när förändrade eller nya krav uppkommer. Det finns fler olika typer av agila arbetsmetoder och för detta projekt valdes ett urplock av delar från Scrum [10] som arbetsmetod. Enligt skaparna av Scrum bör dock alla delar av metodiken tillämpas för en lyckad användning av Scrum [10], vilket dock inte var möjligt i detta projekt främst av den anledningen att projektet var ett självständigt examensarbete och de agila arbetsmetoderna förutsätter att man i själva verket arbetar i team, men även dess tidsbegränsade form och att projektet utfördes på distans försvårade en fullständig korrekt användning av metodiken. Nethouse tillhandahöll en produktägare och en Scrummästare. Då projektet var ett självständigt examensarbete bestod utvecklingsteamet enbart av mig. 3.1 Verktyg Nethouse tillhandahöll en HP-dator med Windows 8 Pro, en Samsung-mobiltelefon med Windows Phone 7.5 samt programvaran Visual Studio 2012 Professional. Under utvecklingen av webbtjänsten användes verktyget Fiddler [11] mycket. 3.2 Implementationsplattform - ASP.NET ASP.NET är en samling ramverk anpassade för webben framtaget av Microsoft och används för att bygga webbsidor, webbapplikationer och webbtjänster [12] Web API ASP.NET Web API är ett av ramverken som ingår i ASP.NET-familjen, framtaget för att hjälpa utvecklare att enklare skapa HTTP-tjänster (exempelvis REST-tjänster), som ska vara nåbara från olika typer av klienter [13] MVC ASP.NET MVC är ett annat ramverk som också ingår i ASP.NET-familjen. Det används för att skapa webbsidor som följer Model-View-Controller-konceptet [14]. 8

15 3.2.3 Entity Framework Entity Framework (EF) är en så kallad Object-Relationship Mapper (ORM), vilket används för att hämta och lagra data i en relationsdatabas [15]. EF agerar som ett abstraktionslager för relationsdatabaser och låter utvecklare undgå att behöva skriva SQL-frågor och dylikt Windows Phone SDK Microsoft tillhandahåller ett så kallat Software Development Kit (SDK) för Windows Phone-utveckling som innehåller allt man behöver för att utveckla Windows Phoneapplikationer [16]. Det medföljer en kraftfull Windows Phone-emulator som har stöd för nästan alla funktioner som en motsvarande telefon har, exempelvis kan aviseringar skickas till emulatorn. 3.3 PushSharp Eftersom alla mobila operativsystem idag använder sig av samma typ av idé för att skicka aviseringar (se avsnitt 2.3 Aviseringar för mobila enheter), finns det ramverk att tillgå som hjälper en med att skicka aviseringen till de aviseringsombud man vill stödja med webbtjänsten. Till detta projekt har ramverket PushSharp (version 2.0) valts efter önskemål från Nethouse. PushSharp stödjer i dagsläget Apple (iphone, ipad, Mountain Lion), Android, Windows Phone (7, 7.5, 8) och Windows 8 [17]. Viktigt att påpeka är att ramverket fortfarande utvecklas och dess Application Programming Interface (API) kan inte ses som stabilt, utan förändringar kan komma att ske, vilket man behöver ha i åtanke och ta särskilda åtgärder för när man implementera ramverket. 9

16 4 Implementation Totalt har fyra olika system implementerats: en grundplattform, en webbtjänst, ett administrationsgränssnitt och en mobilapplikation, där grundplattformen och mobilapplikationen har varit av en mer betydande storlek. I detta avsnitt beskrivs ett urplock av de väsentligaste bitarna som utvecklingen av systemen inneburit. 4.1 Principer för objektorienterad design Nethouse kommer troligen i framtiden att utöka system med mer funktionalitet och därför har stor vikt lagts på att efterfölja de kända principer för god objektorienterad design som nämnts i bakgrunden. Två av dessa har påverkat designen av systemet särskilt mycket, dessa är The Single-Responsibility Principle (SRP) och The Dependency- Inversion Principle (DIP) SRP SRP säger att en klass endast bör ha en anledning till att ändras [8]. En klass som har alldeles för många ansvar brukar vara stora och kallas för God classes. En tumregel för att efterfölja SRP är att hålla klasserna små och se till att de har hög kohesion. En liten klass har få instansvariabler och en klass har hög kohesion om dess metoder använder många av klassens instansvariabler. Maximal kohesion uppnås om varje metod använder alla instansvariabler, vilket sällan är möjligt att uppnå dock, men man bör eftersträva hög kohesion [18]. Om man noterar grupperingar av klassens instansvariabler, exempelvis att variabler a och b används uteslutande i funktionerna f och g, medan variablerna c och d används uteslutande i funktionen h, kan det vara ett tecken på att klassen gör mer än en sak och eventuellt kan den delas upp efter dessa grupperingar. De tumregler och tekniker nämnda ovan användes under projektet för att identifiera fall då SRP inte efterföljdes DIP När man försöker efterfölja DIP kan man som tumregel tänka att alla beroenden man har bör vara på abstraktioner och inte konkreta klasser [8]. Listning 4 illustrerar användningen av DIP i projektet 4. Klassen NewsController tillhör administrationsgränssnittet och tar bland annat emot förfrågningar om att skapa eller ändra nyheter. Den som skapar eller ändrar en nyhet kan välja att avisera nyheten och om så är fallet kommer den privata metoden Push att anropas. NewsController känner endast till gränssnittet IPush- Service och att en metod som heter Push finns. Det är någon annan klass som avgör och faktiskt förser (via konstruktorn) NewsController med en konkret implementation av någon IPushService, exempelvis PushSharpFacade. 4 Vissa justeringar och många detaljer borttagna 10

17 public interface IPushService void Push(NewsItem newsitem); public class PushSharpFacade : IPushService public void Push(NewsItem newsitem) //... public class NewsController private readonly IPushService pushservice; public NewsController(IPushService pushservice) this.pushservice = pushservice; private void Push(NewsItem newsitem) pushservice.push(newsitem); Listning 4: Exemplifiering av DIP i projektet (förenklad) Resultatet av DIP är att man får ett system som är löst kopplat (engelska: Loosely coupled) [19], där enskilda moduler eller klasser är enkla att byta ut. Säg att man vill byta ut PushSharp som ramverk för aviseringar. En ny implementation av IPushSharp kan skapas och därefter injiceras, helt utan att ändra eller ens kompilera om NewsController-klassen, vilket förövrigt är i enlighet med The Open/Closed Principle. DIP gör det även lättare att skapa tester till klasser [19]. Exempelvis vill man inte skicka riktiga aviseringar när man testar NewsController, utan när Push i pushservice anropas ska helst inget utföras. Man skapar då en så kallad mock-klass som implementerar IPushService och där metoden Push inte gör något (se listning 5). Mock-klassen injiceras istället för PushServiceFacade-klassen i testfallen för NewsController, vilket resulterar i att inga aviseringar skickas när testen körs. public class PushServiceMock : IPushService public void Push(NewsItem newsitem) Listning 5: En mock-klass av IPushService från listning 4, som inte utför något när metoden Push anropas. Till hjälp för att lyckas med DIP sattes en så kallad Dependency Injection (DI) container i bruk tidigt i projektet. En DI container hjälper till med att injicera rätt konkret klass för ett visst beroende som en annan klass har. Det är inte på något sätt ett krav att använda en DI container för att efterfölja DIP, men det hjälper till en hel del när 11

18 DIP tillsammans med konstruktorinjektion kan ha en annan positiv påverkan och hjälpa till med att identifiera när en klass bryter mot SRP. När konstruktorn för en klass börjar få många argument (därmed många beroenden) signalerar det att klassen i fråga kanske har mer än en anledning att ändras och då bryter mot SRP [19]. Man kan då undersöka vilka beroenden som används tillsammans och försöka extrahera dessa till en egen klass. 4.2 Grundplattformen Grundplattformen (och systemet i helhet) är uppdelad i ett antal lager. Figur 3 nedan illustrerar vilka lager som finns och deras relationer till varandra. Illustrationen visar även vilka lager webbtjänsten och administrationsgränssnittet interagerar med. Domänmodeller Dataaccess DB Tjänster Aviseringstjänst Webbtjänsten systemen blir större [19]. Istället för att manuellt knyta samman alla beroenden vid applikations startpunkt låter man DI container göra det automatiskt. Som DI container för projektet användes Unity 5 [20] och alla beroenden injicerades via klasserna konstruktorer. Administrationsgränssnittet Figur 3: Grundplattformens skiktning Figur 4 exemplifierar mer i detalj hur skiktning tillsammans med DIP används i projektet. Alla beroenden är på abstraktioner, gränssnitt i detta fall, och tre lager visas; Repositories och Services (grundplattformen) samt Controllers (webbtjänsten). 5 Framtaget av en grupp människor på Microsoft 12

19 Grundplattformen Repositories Device Repository Implementation <<interface>> Device Repository Services Device Service Implementation <<interface>> Device Service Webbtjänsten Controllers Device Controller Figur 4: Exemplifiering av skiktning och DIP för projektet (i själva verket är gränssnitt och konkreta implementationer placerade i separata projekt) Domänmodeller, databas och dataaccess För systemet definierades ett antal domänmodeller: NewsItem, Category, Office, Image och Device, som beskriver nyheter, kategorier, kontor, bilder respektive enheter. Domänmodellerna är placerade i ett eget projekt (lager) och saknar själva några beroenden, istället har i princip alla andra lager ett beroende på domänmodellerna. Databas är upptill Nethouse att välja vid produktionssättning, vid utveckling har SQL Server Compact används. Systemet kräver en databas som är kompatibel med Microsoft Entity Framework (EF). Utvecklingen av databasen har skett med arbetsflödet Code-First development för EF. Code-First development låter användaren definiera domänmodeller med vanliga POCOklasser 6 och därefter generera databasen utefter dessa modeller. Listning 6 visar domänmodellen som beskriver enheter i systemet. 6 Plain Old CLR Object - vanligt.net objekt 13

20 public abstract class Device public Guid DeviceId get; set; public string PushId get; set; public DateTime LastSyncedAt get; set; public int PushedNewsCounter get; set; public void ResetPushedNewsCounter() PushedNewsCounter = 0; //... Listning 6: Domänmodellen Device som beskriver enheter i system (vissa detaljer borttagna). För att isolera beroenden samt användningen av EF, skapades så kallade repositoryklasser för alla domänmodeller. Tjänsterna i tjänstelagret (eller andra klasser för den delen) gör aldrig några direkta anrop till EF, utan deras anrop är alltid till någon av repository-klasserna Tjänster All interaktion med grundplattformen från webbtjänsten och administrationsgränssnittet sker via någon av de tjänster som skapats. Tjänsterna tar emot förfrågningar från webbtjänsten och administrationsgränssnittet som de validerar och exekverar. Det kan handla om att validera att användaren har rättigheter till en viss resurs eller att injicera användarens kontor i frågan till dataaccesslagret för att exempelvis endast hämta alla nyheter tillhörande användarens kontor Aviseringstjänst För aviseringar implementerades ramverket PushSharp. När man använder sig av tredjeparts bibliotek måste man ta i beaktande hur stor risk det är att dess API kan komma att förändras eller att man kommer vilja byta till ett annat bibliotek i framtiden. Finns en risk för detta bör man se till att isolera användningen av biblioteket så att en framtida ändring är enkel att utföra och inte kräver ändringar runt om i hela kodbasen. Då Push- Sharp fortfarande utvecklas kraftigt och dess API kan komma att ändras vid framtida uppdateringar var det viktigt att ramverket separerades från projektet i övrigt. Lösningen var att isolera all kod rörande PushSharp i ett separat projekt och definiera ett gränssnitt (engelska: Interface) för aviseringar som den egna kodbasen kunde bero av (se listning 7). 14

21 public interface IPushService void Push(NewsItem newsitem, Device device); Listning 7: Gränssnitt för att skicka aviseringar. Gränssnittet ovan implementerades sedan i det separata PushSharp-projektet. Sker i framtiden förändringar i PushSharps API är de ändringarna som man behöver göra isolerade till det projektet. Vill man vid ett senare skede byta till något annat ramverk för aviseringar kan man på nytt implementera gränssnittet ovan med det nya ramverket och använda den implementationen i stället Exemplifiering av skiktningen Följande kod-listningar visar vilka metoder som är involverade med att uppdatera en registrering av en befintlig enhet samt i vilka lager dessa metoder finns. Listning 8 visar metoden som tar emot uppdateringsförfrågan i webbtjänsten och vidarebefordrar den till tjänstelagret där UpdateDevice som syns i listning 9 tar över och utför affärslogiken kring uppdateringen. Därefter anropas Update i dataaccesslagret (listning 10) som låter dess basklass utföra själva uppdateringen i UpdateOnCommit som syns i listning 11. public HttpResponseMessage PutDevice(DeviceDto devicedto) if (ModelState.IsValid) deviceservice.updatedevice(devicedto); return Request.CreateResponse(HttpStatusCode.OK); else return Request.CreateResponse(HttpStatusCode.BadRequest); Listning 8: Metoden PutDevice (från DeviceController i webbtjänsten) som hanterar registreringsuppdateringar via PUT-förfrågningar från mobila klienter. 15

22 public void UpdateDevice(DeviceDto devicedto) var device = GetDeviceById(deviceDto.DeviceId); if (device!= null) device.pushid = devicedto.pushid; device.resetpushednewscounter(); device.lastsyncedat = DateTime.Now; devicerepository.update(device); unitofwork.savechanges(); Listning 9: Metoden UpdateDevice (från DeviceService i grundplattformens tjänstelager) som utför affärslogiken gällande registreringsuppdateringar. public void Update(Device device) UpdateOnCommit(device); Listning 10: Metoden Update (från DeviceRepository i grundplattformens dataaccesslager) som anropar basklassens uppdateringsmetod. protected virtual void UpdateOnCommit(T entity) if (entity == null) throw new ArgumentNullException("entity"); if (context.entry(entity).state == EntityState.Detached) set.attach(entity); context.entry(entity).state = EntityState.Modified; Listning 11: Metoden UpdateOnCommit (från EFRepository i grundplattformens dataaccesslager) som är basklassen till alla repositories. 4.3 Mobilapplikationen Iföljande sektion beskrivs några av de väsentligaste delarna från utvecklingen och implementationen av mobilapplikationen. För att referera till mobilapplikationen kommer även mobilappen samt appen att användas. 16

23 4.3.1 Användargränssnitt För att ta fram en design samt för att välja färger till mobilappen fanns två val, antingen kunde Nethouse grafiska profil efterföljas eller så kunde det temakoncept som Microsoft tillhandahåller för Windows Phone användas. Efter diskussion föll valet på temakonceptet istället för den grafiska profilen, dels då vissa användare föredrar ljus text mot mörk bakgrund och andra tvärtom vilket då automatiskt anpassar sig efter användarens preferenser och dels för att det ger appen en känsla av att vara en ursprungsapplikation (engelska: Native application). Skisser togs fram för användargränssnittet (se bilaga A Skisser mobilapplikation på sidan 33) som med avsikt försöker utnyttja några av plattformens kännetecken för att skapa känslan av en nativ applikation. Tanken var inte att skapa en design som även var applicerbar för de övriga plattformarna, utan tanken var att varje mobilapplikation skulle utnyttja den egna plattformens styrkor. Ett tydligt exempel är valet av komponenten som används för att växla mellan senaste nytt och de olika kategorierna, kallad Pivot control. En pivot control ger ett enkelt och snabbt sätt att växla mellan olika vyer och används flitigt i appar för att visa samma innehålla men filtrerat efter olika kriterier, vilket är passande här, där man filtrerar antingen efter senaste nytt eller efter en kategori. För att byta vy sveper (engelska: Swipe) man horisontellt på valfri del av ytan. Fortsätter man att svepa i samma riktning cirkulerar man runt alla vyer, som figur 5 illustrerar. Figur 5: Användaren kan navigera mellan senaste nytt och de olika kategorierna genom att svepa horisontellt över skärmen. Nyheterna hämtas dynamiskt när de behövs. Normalt skapar man pivot-kontrollen statiskt vid kompilering, detta är dock inte möjligt för mobilappen, då det saknas fördefinierade kategorier. Vad som behövs är istället att dynamiskt skapa de pivot-vyer som behövs under körning. Efter att användaren loggat 17

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

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

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

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

Användarhandledning Nordea Swish Företag App

Användarhandledning Nordea Swish Företag App Användarhandledning Nordea Swish Företag App Swish Företag Ta betalt enklare App, manual version 2.0 Innehåll 1 Nordea Swish Företag App... 3 1.1 Kort introduktion... 3 1.2 Användare av Nordea Swish Företag

Läs mer

Snabbstart för Novell Vibe Mobile

Snabbstart för Novell Vibe Mobile Snabbstart för Novell Vibe Mobile Mars 2015 Komma igång Mobil tillgång till Novell Vibe-webbplatsen kan inaktiveras av din Vibe-administratör. Om du inte kan använda Vibemobilgränssnittet enligt beskrivningen

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

Storegate Pro Backup. Innehåll

Storegate Pro Backup. Innehåll Storegate Pro Backup Välkommen! I denna manual kan du bland annat läsa om funktioner och hur du ska konfigurerar programmet. Läs gärna vårt exempel om versionshantering och lagringsmängd innan du konfigurerar

Läs mer

Användarmanual. Meetings app 1.7

Användarmanual. Meetings app 1.7 Användarmanual Meetings app 1.7 Revisionsnummer: 1 Dokumentnamn: Meetings App 1.7 Datum: 2012-12-19 Formpipe Software AB. All rights reserved. 2 (27) Innehållsförteckning 1 INLEDNING...4 2 FÖRKRAV OCH

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

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

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll FrontPage Express I programpaketet Internet Explorer 4.0 och 5.0 ingår också FrontPage Express som installeras vid en fullständig installation. Det är ett program som man kan använda för att skapa egna

Läs mer

Instruktioner. Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 3. Hem (SIDA 2)

Instruktioner. Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 3. Hem (SIDA 2) 1 Instruktioner Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 2. Logga in (SIDA 2) 3. Hem (SIDA 2) 4. Skapa/redigera sidor (SIDA 3) 41. Lägg till ny sida (SIDA 3) 42. Avancerat (SIDA 4) 5. Texteditor (SIDA

Läs mer

Användarmanual. Meetings 1.5

Användarmanual. Meetings 1.5 Användarmanual Meetings 1.5 Revisionsnummer: 1 Dokumentnamn: FormPipe Meetings 1.5 - Användarmanual ipad Datum: 2013-12-05 Formpipe Software AB. All rights reserved. 2 (23) Innehållsförteckning 1 INLEDNING...

Läs mer

Introduktion till frånvaro

Introduktion till frånvaro Introduktion till frånvaro För att nå Skola24 kan du antingen använda en länk på skolans hemsida, skriva www.skola24.se direkt i webbläsaren och välja domän ur en lista eller skriva [domännamn].skola24.se

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

Blogga med Wordpress

Blogga med Wordpress Blogga med Wordpress Introduktion En blogg kan användas på en lång rad olika sätt, även om det vanligaste kanske är att se den som en mer eller mindre publik yta på nätet att dela med sig av tankar och

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

Krav och riktlinjer för applikationsutveckling

Krav och riktlinjer för applikationsutveckling Svenska Filminstitutet Box 27126, 102 52 Stockholm Besök: Filmhuset, Borgvägen 1 Telefon: 08-665 11 00 Fax: 08-661 18 20 www.sfi.se BILAGA till Branschstandard Tillgänglig Bio 2015-03-25 Krav och riktlinjer

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

MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR

MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR I följande dokument hittar ni information om hur ni administrerar er nya hemsida. Manualen går endast igenom grundläggande administration. För mer avancerad redigering

Läs mer

STADSLEDNINGSKONTORET SOA SDK IT-AVDELNINGEN VERSION 2.1. Läs mig först. Stockholms stad SOA-plattform. Sida 1 (5)

STADSLEDNINGSKONTORET SOA SDK IT-AVDELNINGEN VERSION 2.1. Läs mig först. Stockholms stad SOA-plattform. Sida 1 (5) Läs mig först Stockholms stad SOA-plattform 1 (5) Innehållsförteckning 1 Beskrivning av SDK 3 1.1 Software Developer Kit för Utvecklare... 3 1.2 Support för... 3 1.3 Omfattning... 4 1.4 Versionshantering...

Läs mer

Översikt av kapitlet. Ge databasen ett lösenord. Förhindra ändringar av koden i databasen

Översikt av kapitlet. Ge databasen ett lösenord. Förhindra ändringar av koden i databasen Översikt av kapitlet Ge databasen ett lösenord Förhindra ändringar av koden i databasen 10 Säkraochdelaut information I detta kapitel kommer du att få lära dig att: Tilldela ett lösenord till en databas.

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

Säkerhetskopiera mobilen

Säkerhetskopiera mobilen Säkerhetskopiera mobilen gratis och helautomatiskt 7 Bästa gratistipsen 7 För Android, Iphone och Windows Phone 7 Säkerhetskopiera till Dropbox. Så fixar du automatisk säkerhetskopiering av mobilen Visst

Läs mer

Lab 5: ASP.NET 4.5 Site Navigation

Lab 5: ASP.NET 4.5 Site Navigation Lab 5: ASP.NET 4.5 Site Navigation Enkel navigering är en viktig del av en modern webbapplikation. Eftersom en stor del av utvecklingstiden för en site används för att bygga menyer, trädstrukturer och

Läs mer

Compose Connect. Hosted Exchange

Compose Connect. Hosted Exchange Sida 1 av 15 Compose Connect Hosted Exchange Presentation av lösningen: Compose Hosted Exchange Följande möjligheter finns för hantering av e-post 1. Lokalinstallerad Outlook-klient För att kunna använda

Läs mer

Användarmanual. Meetings 1.6

Användarmanual. Meetings 1.6 Användarmanual Meetings 1.6 Revisionsnummer: 2 Dokumentnamn: Meetings by Formpipe 1.6 - Användarmanual ipad Datum: 2014-03-30 Formpipe Software AB. All rights reserved. 2 (24) Innehållsförteckning 1 INLEDNING...

Läs mer

Användarhandbok. version 1.15.8. sida 1 av 15

Användarhandbok. version 1.15.8. sida 1 av 15 Användarhandbok version 1.15.8 sida 1 av 15 Innehållsförteckning Introduktion... 4 Gränssnitt... 4 Inloggning... 5 Användarnamn och lösenord... 5 Kod... 5 Startsida... 6 Menyer... 6 Systembild... 7 Sidobjekt...

Läs mer

Systemkrav och tekniska förutsättningar

Systemkrav och tekniska förutsättningar Systemkrav och tekniska förutsättningar Hogia Webbrapporter Det här dokumentet går igenom systemkrav, frågor och hanterar teknik och säkerhet kring Hogia Webbrapporter, vilket bl a innefattar allt ifrån

Läs mer

Manual Lead tracking. Version 1.0 2013-12-12

Manual Lead tracking. Version 1.0 2013-12-12 Manual Lead tracking Version 1.0 2013-12-12 Innehållsförteckning 1 Inledning... 3 1.1 Om manualen... 3 1.2 Om tjänsten... 3 2 Använd tjänsten för första gången... 4 2.1 Installera applikationen... 4 2.2

Läs mer

Lathund för Novell Filr

Lathund för Novell Filr 1(57) Stadsledningsförvaltningen IT-avdelningen Lathund för Novell Filr 2(57) Innehåll 1. Introduktion... 4 2. Termer... 4 3. Icke tillåtna tecken i filnamn... 4 4. ipad... 5 4.1 Installation... 5 4.2

Läs mer

Manual C3 BMS v. 3 för iphone/ipad

Manual C3 BMS v. 3 för iphone/ipad Manual C3 BMS v. 3 för iphone/ipad Hur fungerar det? Larmsystemet består av en server och databas i Stockholm samt applikationen C3 BMS i telefonen. Trafiken mellan server o ch telefon sker över internet

Läs mer

Advoco NetPBX Advoco Mi

Advoco NetPBX Advoco Mi Advoco NetPBX Advoco Mi Advoco Mi är en mobilapplikation som, installerad på en mobiltelefon med Windows eller Androids mobiloperativsystem, gör att du kan hantera samtal i Advoco NetPBX företagsväxel

Läs mer

360 emeetings. Papperslösa möten på ipad eller iphone

360 emeetings. Papperslösa möten på ipad eller iphone 360 emeetings Papperslösa möten på ipad eller iphone 360 emeetings ver. 1.0-2014 360 emeetings för Apple ios Papperslösa möten på ipad eller iphone 360 emeetings hjälper dig och din verksamhet att minska

Läs mer

ALEPH ver. 16 Introduktion

ALEPH ver. 16 Introduktion Fujitsu, Westmansgatan 47, 582 16 Linköping INNEHÅLLSFÖRTECKNING 1. SKRIVBORDET... 1 2. FLYTTA RUNT M.M.... 2 3. LOGGA IN... 3 4. VAL AV DATABAS... 4 5. STORLEK PÅ RUTORNA... 5 6. NAVIGATIONSRUTA NAVIGATIONSTRÄD...

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

Skapa ett eget programnu! NU! Komplett med programvara och konkreta exempel! Patrice Pelland. Swedish Language Edition published by Docendo Sverige AB

Skapa ett eget programnu! NU! Komplett med programvara och konkreta exempel! Patrice Pelland. Swedish Language Edition published by Docendo Sverige AB NU! Skapa ett eget programnu! Patrice Pelland Komplett med programvara och konkreta exempel! Swedish Language Edition published by Docendo Sverige AB Kapitel 2 Installera Visual Basic 2005 Express Edition

Läs mer

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer. Översikt Klasshierarkier UML klassdiagram Relation mellan klasser mellan klasser och objekt Association ning ing andling Programmering tillämpningar och datastrukturer 2 UML UML Unified Modeling Language

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

Installation/uppdatering av Hogia Personal fr.o.m. version 13.1

Installation/uppdatering av Hogia Personal fr.o.m. version 13.1 Installation/uppdatering av Hogia Personal fr.o.m. version 13.1 Viktig information gällande installation Från version 12.2 av Hogia Personal krävs Microsoft.Net Framework 3.5 SP1 för att installation skall

Läs mer

Bonus Rapport Kommersiell Design KTH

Bonus Rapport Kommersiell Design KTH Bonus Rapport Kommersiell Design KTH Johan Holmström & Lars Åkesson Introduktion Denna rapport beskriver projektet och delmomentet Kommersiell Design i kursen Interaktionsdesign 2 på KTH i Stockholm. Detta

Läs mer

EXAMENSARBETE. Mobila anpassningar. Joakim Wallmark Ali Rahimpour. Högskoleingenjörsexamen Datateknik

EXAMENSARBETE. Mobila anpassningar. Joakim Wallmark Ali Rahimpour. Högskoleingenjörsexamen Datateknik EXAMENSARBETE Mobila anpassningar Joakim Wallmark Ali Rahimpour Högskoleingenjörsexamen Datateknik Luleå tekniska universitet Institutionen för System- och rymdteknik Mobila Anpassningar Förord Vi som

Läs mer

MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR

MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR I följande dokument hittar ni information om hur ni administrerar er nya hemsida. Manualen går endast igenom grundläggande administration. För mer avancerad redigering

Läs mer

Datatal Flexi Presentity

Datatal Flexi Presentity Datatal Flexi Presentity En snabbguide för Presentity Innehållsförteckning 1. Login 2 2. Hänvisa 3 2.1 Att sätta hänvisningar 3 2.2 Snabbknappar 4 2.3 Windows gadget 5 3. Samtal 5 4. Status 6 4.1 Exempel

Läs mer

Skapa ett paket av TI-Nspire programvara med Microsoft SMS 2003

Skapa ett paket av TI-Nspire programvara med Microsoft SMS 2003 Skapa ett paket av TI-Nspire programvara med Microsoft SMS 2003 Detta dokument ger steg för steg-instruktioner för att skapa och implementera ett TI-Nspire nätverkspaket via plattformen Microsoft SMS 2003.

Läs mer

Administrationsmanual ImageBank 2

Administrationsmanual ImageBank 2 Document information ID: P001 Appendix C Rev: 4 Author: Tomas von Peltzer Product nr: Title: Reviewed by: Approved by: P001 ImageBank Administration Manual Product name: Ingvar Falconer Date: 2014-10-22

Läs mer

Introduktion till MySQL

Introduktion till MySQL Introduktion till MySQL Vad är MySQL? MySQL är ett programmerings- och frågespråk för databaser. Med programmeringsspråk menas att du kan skapa och administrera databaser med hjälp av MySQL, och med frågespråk

Läs mer

Axalon Process Navigator SP Användarhandledning

Axalon Process Navigator SP Användarhandledning Axalon Process Navigator SP Användarhandledning Axalon Process Navigator SP 2013, senast reviderad: den 11 juni 2014 Innehåll Innehåll... 2 Om denna användarhandledning... 3 Syfte... 3 Vem är denna handledning

Läs mer

Guide för Google Cloud Print

Guide för Google Cloud Print Guide för Google Cloud Print Version A SWE Beskrivning av anmärkningar Följande anmärkning används i den här bruksanvisningen: Information om hur du agerar i en viss situation eller hur du använder en

Läs mer

Arbetshäfte Office 365 en första introduktion

Arbetshäfte Office 365 en första introduktion Arbetshäfte Office 365 en första introduktion Innehåll En introduktion för att bekanta sig med O365... 2 Skapa din profil... 2 Övning:... 3 2. Kontakter... 4 Lägg till kontakt och grupp... 4 Övning:...

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

Novell Messenger 3.0.1 mobil snabbstart

Novell Messenger 3.0.1 mobil snabbstart Novell Messenger 3.0.1 mobil snabbstart Maj 2015 Novell Messenger 3.0.1 och senare kan användas på mobila enheter med ios, Android BlackBerry. Du kan vara inloggad på Messenger från olika platser på samma

Läs mer

Installationsguide fo r CRM-certifikat

Installationsguide fo r CRM-certifikat Installationsguide fo r CRM-certifikat För att säkerställa en säker inloggning till CRM Finance webb så behöver alla kunder installera ett kund-unikt klientcertifikat innan man kan försöka logga in i systemet.

Läs mer

Daniel Akenine, Teknikchef, Microsoft Sverige

Daniel Akenine, Teknikchef, Microsoft Sverige Daniel Akenine, Teknikchef, Microsoft Sverige Quincy Invånare: 5,300 Arbete: 52% jordbruk 18 % byggsektor 18 % offentlig sektor Språk: Spanska 57% Företaget Inköp Företaget Inköp Installering Lång

Läs mer

VAD GÖR DU / VEM ÄR DU?

VAD GÖR DU / VEM ÄR DU? INNEHÅLL Vad blir din roll Databaser vad är och varför Terminologi Datamodellering vad är och varför Utvecklingsprocessen SQL vad är det Data / Information / Kunskap Kapitel 1 delar av. Praktisk Datamodellering

Läs mer

Välj den översta profilen. Klicka på Radera, applikationen raderas. Klicka på hemknappen så att apparna slutar skaka

Välj den översta profilen. Klicka på Radera, applikationen raderas. Klicka på hemknappen så att apparna slutar skaka Dokumentet beskriver hur du ersätter DME med MobileIron på din iphone/ipad för epostsynkning och managering av iphone/ipad. Dokumentet är skrivet för iphone med ios version 8.1.1, vilket innebär att en

Läs mer

MANUAL MOBIL KLINIK APP 2.2

MANUAL MOBIL KLINIK APP 2.2 MANUAL MOBIL KLINIK APP 2.2 Innehåll Innan appen tas i bruk 2 Registrera besök manuellt 6 Dokumentera besöket 7 Registrera besök med NFC-tagg 7 Planera nytt besök 9 Avboka besök 10 Patienter 10 Anteckningar

Läs mer

Snabbstartsguide. Visa eller växla mellan onlinekonton Klicka på ditt konto-id för att ändra inställningar eller växla mellan konton.

Snabbstartsguide. Visa eller växla mellan onlinekonton Klicka på ditt konto-id för att ändra inställningar eller växla mellan konton. Snabbstartsguide Microsoft OneNote 2013 ser annorlunda ut jämfört med tidigare versioner, så vi har skapat den här guiden för att hjälpa dig minimera din inlärningskurva. Växla mellan pekskärm och mus

Läs mer

FileMaker Pro 10 och FileMaker Pro 10 Advanced

FileMaker Pro 10 och FileMaker Pro 10 Advanced FileMaker Pro 10 och FileMaker Pro 10 Advanced Detta dokument tillhandahåller information om senaste nytt och problem med FileMaker Pro 10 och FileMaker Pro 10 Advanced. Allmän information finns i hjälpen

Läs mer

1 Installationsinstruktioner

1 Installationsinstruktioner 1 Installationsinstruktioner 1.1 Förbereda installationen Kontrollera systemkraven. Försäkra dig om att din dators hårdvara uppfyller de systemkrav som är specificerade. Vid installering av Engineering

Läs mer

Manual till DIKO 2012-10-19

Manual till DIKO 2012-10-19 Manual till DIKO 2012-10-19 Innehåll Manual till DIKO 2012-10-19... 1 1 Använda DIKO med en dator... 2 1.1 För att logga in i DIKO... 2 1.2 Dag... 3 1.3 Importera bilder... 4 1.4 Redigera bilder i samband

Läs mer

Manual - Storegate Team

Manual - Storegate Team Manual - Storegate Team Om tjänsten Med Storegate Team får du full kontroll över företagets viktiga digitala information. Du kan enkelt lagra, dela och arbeta i filer med högsta säkerhet inom ditt företag.

Läs mer

Konfigurationer Video- och distansmöte Bilaga till Tekniska anvisningar

Konfigurationer Video- och distansmöte Bilaga till Tekniska anvisningar Konfigurationer Video- och distansmöte Bilaga till Tekniska anvisningar Innehållsförteckning 1 Inledning... 3 2 Inkopplingsalternativ... 4 2.1 Lokal gatekeeper ansluten till Central Sjunet SBC... 4 2.2

Läs mer

Tele2 Växel. Användarmanual Statistik

Tele2 Växel. Användarmanual Statistik Tele2 Växel Användarmanual Statistik Innehåll 1. Tele2 Växel Statistik... 3 1.1 Få tillgång till Tele2 Växel Statistik... 4 1.2 Översikt Tele2 Växel Statistik... 5 2. Tele2 Växel Statistik Bas... 7 2.1

Läs mer

2. Dels går det att klicka sig fram via appsamlingen (2a) (som liknar en rutig kvadrat). Klicka på E-post (2b). 2b.

2. Dels går det att klicka sig fram via appsamlingen (2a) (som liknar en rutig kvadrat). Klicka på E-post (2b). 2b. Google E-post I Google Apps for Education (GAFE) ingår motsvarande Googles G-mail som e-postprogram. Eftersom det är skolan som administrerar våra GAFE-konton samt att vi behåller vår gamla domän zonline.se

Läs mer

Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas.

Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas. .0.0 DIAGNOSTISKT PROV Tid Klockan 09.00-2.00 Hjälpmedel Inga Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas. Rättning Tentamen omfattar 6 poäng Denna tentamen

Läs mer

Säkerhet. Säkerhet. Johan Leitet johan.leitet@lnu.se twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449

Säkerhet. Säkerhet. Johan Leitet johan.leitet@lnu.se twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449 Säkerhet Säkerhet Webbteknik II, 1DV449 Johan Leitet johan.leitet@lnu.se twitter.com/leitet facebook.com/leitet F06 Säkerhet Dagens agenda HTTPS Autentisiering - Egen autentisiering - Lösenordshantering

Läs mer

Inlämningsarbete Case. Innehåll Bakgrund bedömning inlämningsarbete... 2 Inlämnade arbeten... 4

Inlämningsarbete Case. Innehåll Bakgrund bedömning inlämningsarbete... 2 Inlämnade arbeten... 4 Inlämningsarbete Case Innehåll Bakgrund bedömning inlämningsarbete... 2 Inlämnade arbeten... 4 1 Bakgrund bedömning inlämningsarbete Syfte: Eftersom det står i betygskriterierna att för VG skall deltagaren

Läs mer

Systemkrav WinServ II Edition Release 2 (R2)

Systemkrav WinServ II Edition Release 2 (R2) Systemkrav WinServ II Edition Release 2 (R2) Observera: Alla rekommendationer är aktuella vid den tid då dokumentet publicerades och visar den senaste informationen för nödvändig mjukvara. Systemkrav för

Läs mer

Använda Office 365 på en iphone eller en ipad

Använda Office 365 på en iphone eller en ipad Använda Office 365 på en iphone eller en ipad Snabbstartsguide Kontrollera e-post Konfigurera din iphone eller ipad så att du kan skicka och ta emot e-post från ditt Office 365-konto. Kontrollera din kalender

Läs mer

Umeå Stockholm Västerås Linköping Göteborg Malmö Tel vxl 090-15 49 00 www.vitec.se

Umeå Stockholm Västerås Linköping Göteborg Malmö Tel vxl 090-15 49 00 www.vitec.se Umeå Stockholm Västerås Linköping Göteborg Malmö Tel vxl 090-15 49 00 www.vitec.se Innehåll 1. INLEDNING... 3 2. VITEC PORTAL GENERELLT... 3 2.1 SORTERING AV KOPPLADE FUNKTIONER... 3 2.2 INFORMATION OM

Läs mer

Förpackningens innehåll

Förpackningens innehåll CaddieON Snabbguide Förpackningens innehåll 1. CaddieON golfarmband 2. USB-adapter för laddare 3. Identifikations taggar (15 st.) 4. Snabbguide 5. Skyddspåse 6. CaddieON credits 2 3 6 1 CREDITS 5 4 CaddieON

Läs mer

SMULTRON. Fredrik Li, Ester, Anders, Jessica, Philip. Malmö Högskola Konst Kultur Kommunikation OOP5 - Mobile Applications IDK 05 - April/Maj 2007

SMULTRON. Fredrik Li, Ester, Anders, Jessica, Philip. Malmö Högskola Konst Kultur Kommunikation OOP5 - Mobile Applications IDK 05 - April/Maj 2007 SMULTRON av Fredrik Li, Ester, Anders, Jessica, Philip Malmö Högskola Konst Kultur Kommunikation OOP5 - Mobile Applications IDK 05 - April/Maj 2007 - När man har turen att hitta en plats där man trivs

Läs mer

Eltako FVS. 6 steg för att aktivera fjärrstyrning med hjälp av din smartphone (Mobil klient)

Eltako FVS. 6 steg för att aktivera fjärrstyrning med hjälp av din smartphone (Mobil klient) Eltako FVS 6 steg för att aktivera fjärrstyrning med hjälp av din smartphone (Mobil klient) Obegränsad flexibilitet och bekvämlighet i fastighetsautomation 1. Konfigurera åtkomst till din dator/nätverk

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

Lathund - Redigera innehåll på Comfort Audios webbplats. 1. Logga in i WordPress... 2 2. Ändra/lägg till användare... 2. 3. Lägga till nya sidor...

Lathund - Redigera innehåll på Comfort Audios webbplats. 1. Logga in i WordPress... 2 2. Ändra/lägg till användare... 2. 3. Lägga till nya sidor... 2012-05-18 1. Logga in i WordPress... 2 2. Ändra/lägg till användare... 2 2.1 Lägga till ny administratör... 2 2.2 Ändra behörighet på befintlig användare... 2 2.3 Lägg till befintlig användare på fler

Läs mer

Office 365 MB. Innehåll. Inledning / Inställningar... 2. Outlook (e-post)... 2. Kalender... 3. Personer (kontakter)... 5 OneDrive molnet... 5.

Office 365 MB. Innehåll. Inledning / Inställningar... 2. Outlook (e-post)... 2. Kalender... 3. Personer (kontakter)... 5 OneDrive molnet... 5. Innehåll Inledning / Inställningar... 2 Inloggning...2 Koppling av mobiltelefonen / pekplatta till systemet...2 Ladda Office 365 till egen dator...2 Tema...2 Outlook (e-post)... 2 E-post inställningar...2

Läs mer

Installationsanvisning - Kopplingen mellan GK96 och golf.se -

Installationsanvisning - Kopplingen mellan GK96 och golf.se - Installationsanvisning - Kopplingen mellan GK96 och golf.se - (Läs hela anvisningen innan du installerar)!denna installationsanvisning innehåller förändringar från tidigare versioner! 1. Programmets syfte...

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

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

Snabbstartsguide. Få hjälp Klicka på frågetecknet om du vill söka efter hjälpinnehåll.

Snabbstartsguide. Få hjälp Klicka på frågetecknet om du vill söka efter hjälpinnehåll. Snabbstartsguide Microsoft Access 2013 ser annorlunda ut jämfört med tidigare versioner, så vi har skapat den här guiden som hjälper dig att minimera inlärningskurvan. Ändra skärmstorleken eller stäng

Läs mer

Produktbilaga. Fördelar med LärSjälv. Tjänsterna

Produktbilaga. Fördelar med LärSjälv. Tjänsterna Produktbilaga Fördelar med LärSjälv Undervisningen sker i ditt eget tempo när du har tid, lust och behov Du får intressant och inspirerande utbildning Förtesten säkerställer att du bara behöver lära dig

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

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

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2 Paneler - VCPXX.2 Programmeringsmanual för VCP-paneler Revision 2 Innehållsförteckning Innehållsförteckning... 2 1 Symbolfiler för kommunikation via IndraLogic... 3 2 Uppsättning i IndraWorks... 6 3 Programmering

Läs mer

Instruktion. Datum. 2013-06-19 1 (12) Coverage Dokument id Rev Status? - 1.0 Godkänd. Tillhör objekt -

Instruktion. Datum. 2013-06-19 1 (12) Coverage Dokument id Rev Status? - 1.0 Godkänd. Tillhör objekt - 20130619 1 (12)? 1.0 Godkänd Secure Manager Guide Hantera användarprofiler i tjänsten Telia Secure Manager Dokumentet beskriver hur du som administratör beställer och hanterar användarprofiler i administrationsportalen

Läs mer

Spara dokument och bilder i molnet

Spara dokument och bilder i molnet Spara dokument och bilder i molnet Ett moln är en samling pyttesmå vattendroppar på 1 000 meters höjd eller till och med högre. Molnen är diffusa och ändrar hela tiden form. Det finns faktiskt en hel del

Läs mer

Jetshop AB WEBSERVICE-API 1.2 ANVÄNDARMANUAL. Version 1.2 2011-10-12

Jetshop AB WEBSERVICE-API 1.2 ANVÄNDARMANUAL. Version 1.2 2011-10-12 Jetshop AB WEBSERVICE-API 1.2 ANVÄNDARMANUAL Version 1.2 2011-10-12 1. Förord I det här dokumentet ges en generell beskrivning av det Webservice-API som är utvecklat av Jetshop AB, och är avsett för dig

Läs mer

Innehåll Molntjänster... 4 Vad är detta?... 5 Cirkeln sluts... 6 The Cloud... 7 The Cloud (forts.)... 8 Definition av molntjänster...

Innehåll Molntjänster... 4 Vad är detta?... 5 Cirkeln sluts... 6 The Cloud... 7 The Cloud (forts.)... 8 Definition av molntjänster... 1 2 Innehåll Molntjänster... 4 Vad är detta?... 5 Cirkeln sluts... 6 The Cloud... 7 The Cloud (forts.)... 8 Definition av molntjänster... 9 Definition av molntjänster (forts.)... 11 Tjänster... 12 Skikt

Läs mer

Användarmanual för Pagero Kryptering

Användarmanual för Pagero Kryptering för Pagero Kryptering Version 1.1-1 - Allmänt... 3 Kryptering av filer... 3 Dekryptering av filer... 3 Installation... 4 Inställningar... 5 Skapa nycklar... 6 Lägg till kataloger för övervakning... 6 Lägg

Läs mer

TeamEngine STYRELSEPLATS DELA STYRELSEMATERIALET SMARTARE OCH SMIDIGARE

TeamEngine STYRELSEPLATS DELA STYRELSEMATERIALET SMARTARE OCH SMIDIGARE TeamEngine STYRELSEPLATS DELA STYRELSEMATERIALET SMARTARE OCH SMIDIGARE DET HÄR ÄR TEAMENGINE DISTRIBUERA STYRELSEMATERIALET ENKLARE Med TeamEngine styrelseplats får du och övriga styrelsemedlemmar en

Läs mer

Instruktion: Trådlöst nätverk för privata enheter

Instruktion: Trådlöst nätverk för privata enheter Instruktion: Trådlöst nätverk för privata enheter orebro-byod Sida 2 av 21 Innehållsförteckning 1 Inledning... 3 2 Så ansluter du till nätverket orebro-byod... 4 2.1 Allmän information:... 4 2.2 Enkel

Läs mer

Klasshierarkier - repetition

Klasshierarkier - repetition Klasshierarkier - repetition Klasser kan byggas på redan denierade klasser, egna och/eller färdigskrivna, genom: I att klassobjekt används som attribut (instansvariabler): har-relation. Exempel: traksystemet

Läs mer

Fortum Hemkontroll. Ta kontrollen över ditt hem. Manual

Fortum Hemkontroll. Ta kontrollen över ditt hem. Manual Ta kontrollen över ditt hem Manual Innehållsförteckning Vad behöver jag för att komma igång? 2 Att komma igång 3 Installera gateway 4 Installera dina styruttag 6 Tilldela rumsfärger och nummer 7 Koppla

Läs mer

Version 1.8.7A. Tidrapportering med ctimesheet

Version 1.8.7A. Tidrapportering med ctimesheet Version 1.8.7A Tidrapportering med ctimesheet Installation I tidrapporten på webben finns en ikon som heter Mobile. Klicka på ikonen. En sida öppnas och du kan här välja mellan automatisk eller manuell

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

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

Guide till SvD:s. digitala korsord

Guide till SvD:s. digitala korsord Guide till SvD:s digitala korsord Välkommen att prova SvD:s korsord digitalt. Du kan ha ett eller flera korsord i gång samtidigt och om ingen tävling pågår kan du även få ledtrådar och facit direkt på

Läs mer