5.2.2 Mellomlaget (Viewmodel) Modellaget Controller-laget Verktøy (Utilities) REST-laget...

Størrelse: px
Begynne med side:

Download "5.2.2 Mellomlaget (Viewmodel)...21 5.2.3 Modellaget... 23 5.2.4 Controller-laget... 23 5.2.5 Verktøy (Utilities)... 24 5.2.6 REST-laget..."

Transkript

1

2 1 Forord Denne rapporten er prosjektets produktrapport og redegjør for applikasjonens bruksområder, funksjonalitet, oppbygning, tekniske detaljer og hvordan man feilsøker. Rapporten er beregnet for både sensor, veileder, og eventuelle utviklere som skal arbeide med eller drifte applikasjonen i ettertid, men kan også leses av andre interessenter. Rapporten er beregnet for personer med datatekniske kunnskaper, spesielt om de benyttede teknologier, men grundige innføringer blir gitt for spesiell programvare, teknologi og teknikker som påkreves for å få fullt utbytte av dokumentasjonen. 2

3 Innholdsfortegnelse 1 Forord Innledning Gruppen Om oppdragsgiver Get AS BEKK AS Bakgrunn for oppgaven Dagens løsning Oppgavens mål Windows Phone Introduksjon til Windows Phone Metros designprinsipper Typografi Bevegelse Content, not Chrome - Fokus på innhold Autentisk digitalt Navigasjonsmuligheter Panorama Pivot Single Andre navigasjonsveier Tekniske krav til mobile enheter Kodespråk og verktøy Beskrivelse av applikasjonen Konsept Generell beskrivelse Design Funksjonalitet Kontekstuelle menyer (Context Menus) Struktur / navigasjon Struktur i kildekoden MVVM - en introduksjon Hvorfor bruke MVVM Generelt om struktur Presentasjonslaget (View)

4 5.2.2 Mellomlaget (Viewmodel) Modellaget Controller-laget Verktøy (Utilities) REST-laget Datagrunnlag (REST) Hva er en REST-tjeneste? Kundens REST-tjeneste Endpoints Svakheter og uregelmessigheter som må tas høyde for Inkonsekvent parsing av felter (lister) Inkonsekvent parsing av felter (tall) Wrappere Json.NET, deserialisering og converters Isolated Storage Brukere og sikkerhet Feilsøking Teknikker Runtime-feil og exceptions Breakpointing IntelliSense Grensetilfeller Tilbakemeldinger Tilbakemelding fra oppdragsgiver Tilbakemelding fra kunden Tilbakemelding fra Microsoft Utvidelsesmuligheter Videreutvikling av frakoblet modus Minimering av datatrafikk Bruk av live tile Sosial deling Bedre filtreringsmuligheter Hjem-knapp Endring av legg til i kalender -knapp i programsiden

5 2 Innledning Denne innledningen inneholder bakgrunnsinformasjon for oppgaven, og finnes både i prosess- og produktrapporten. Innledningsvis vil vi beskrive hvem som har vært involvert i prosjektet, bakgrunnen for oppgaven og hva som har vært oppgavens mål. 2.1 Gruppen Gruppen bestod av tre dataingeniørstudenter og én informasjonsteknologistudent: Hans Petter Naumann, Kristofer Selbekk, Alexander Barve og Vegard Nyeng. Gruppemedlemmene har tidligere arbeidet sammen på skoleprosjekter, og kjenner hverandres faglige styrker meget godt. Vi valgte å danne denne gruppen da vi tidligere har hatt god kommunikasjon, sterke faglige kvaliteter og samme, høye ambisjonsnivå. Figur 2.1: Organisasjonskart over alle aktører 5

6 2.2 Om oppdragsgiver I dette prosjektet har vi hatt to ulike bedrifter å forholde oss til, hvor vi skiller mellom kunde og oppdragsgiver. Kunden, Get AS, har hyrt inn BEKK, vår oppdragsgiver, til å utføre dette prosjektet. Ved prosjektslutt vil Get overta ansvaret for vedlikehold og videreutvikling av applikasjonen Get AS Get AS er en av Norges største leverandører av bredbånd og digital-tv. Med over 500 ansatte og over 1 million kunder, har Get alltid vært grensesprengende innen teknologi. Som første leverandør av bredbånd (1997) og første leverandør av digital-tv i verden med vifteløs HD PVR-dekoder (2007), har Get alltid arbeidet Figur 2.2: Get-logo for å bringe den nyeste underholdningsteknologien til hjem og arbeidsplasser over hele Norge. Get AS vil bli referert til som kunden i fremover BEKK AS Bekk er et konsulentselskap med omkring 300 ansatte, som utvikler IT-systemer for offentlige og private virksomheter. Bedriften, som er eid av Evry, har kontorer både i Oslo og Trondheim. Figur 2.3: Bekk-logo Til prosjektet vårt stilte Bekk med to veiledere: Dan Robert Ekrem og Hans Magnus Inderberg. Dan Robert har sin ekspertise innen interaksjonsdesign, og har bidratt mye innen konseptutvikling og interaksjonsdesign. Hans Magnus er programmerer, og var behjelpelig med innen implementeringsfasen. I tillegg ble vi bistått av grafisk designer Morten Kjøs Utengen, som assisterte oss innen designspørsmål. BEKK AS vil bli referert til som oppdragsgiver i fremover. 2.3 Bakgrunn for oppgaven Kunden har allerede utviklet TV-guide-applikasjoner for ios og Android-baserte telefoner, men ønsket å utvide sin portefølje med en applikasjon for Windows Phone 7, da mange eksperter har foreslått at dette også blir en viktig mobil-plattform i fremtiden. Det fantes ikke noe umiddelbart behov for støtte på denne plattformen, men kunden ville utforske de tekniske mulighetene og være ute på markedet før sine konkurrenter. Deres eksisterende TVguide-applikasjoner innholder en komplett tv-guide, mulighet til å sortere ut kanaler, igangsette opptak på kundens PVR-boks over nettverket, varsling på mobil før tvprogrammer begynner og oversikt over filmene tilgjengelige i kundens filmleie-tjeneste. 6

7 2.4 Dagens løsning I dag har kunden applikasjoner for ios- og Android-baserte telefoner, i tillegg til webapplikasjoner tilpasset vanlige og mobile nettlesere. ios-versjonen av dagens applikasjon er portet med PhoneGap til Android, og er relativt like hverandre. Begge disse versjonene inkluderer funksjonalitet for å se tv-programmet for den kommende uken, filmer i filmleiedatabasen og søkefunksjonalitet, samt opptaksfunksjonalitet for innloggede brukere. Applikasjonene har fått gode, om enn varierende skussmål på sine respektive salgskanaler, og gjennom å analysere disse tilbakemeldingene fikk vi innsikt i hva vår versjon av applikasjonen burde inkludere. 2.5 Oppgavens mål Målet med prosjektet er å konseptualisere, planlegge og produsere en TV-guide-applikasjon for smarttelefoner basert på Windows Phone 7-plattformen. Applikasjonen som skal utvikles skal inkludere all funksjonalitet som finnes i dagens applikasjoner for ios og Android, og, om tiden tillater, noen nye funksjoner. Applikasjonen skal tilby: TV-guide Muligheten til å velge TV-kanaler som vises Søk i TV-programmet og filmleiedatabasen Fjernstyring av programopptak Muligheten til å lage varsling før et TV-program starter Applikasjonen bør tilby (om tiden tillater): Planleggingsfunksjonalitet Trailerstreaming ved filmleie I tillegg hadde vi følgende overliggende visjoner å strekke oss etter: Lage den beste TV-guiden i Norge Lage den beste WP7-appen i Norge I utgangspunktet skulle vi lage en hybridapplikasjon, som gjør det lettere å forvalte og oppdatere applikasjonen. Det ble det etter hvert tatt en helomvending på, siden det viste seg å være lite hensiktsmessig for plattformen. Vi endte da opp med å implementere applikasjonen i native-kode, C#. Begrunnelsen for dette følger senere i rapporten. Videre ble det ytret et ønske om at applikasjonen designes med hensyn på styrkene og designprinsippene til Windows Phone 7, og at nåværende informasjons-api er blir brukt til sitt fulle potensiale. 7

8 3 Windows Phone 7 Her vil vi diskutere de styrker og kvaliteter denne plattformen tilbyr, hvilke retningslinjer for design som blir anbefalt, tekniske krav til telefoner, samt hvilke utviklingsverktøy som er tilgjengelige for utvikling av WP7-applikasjoner. I denne seksjonen vil vi gjøre rede for hva Windows Phone 7 (heretter kalt WP7) er, hvilke designretningslinjer og navigasjonsmuligheter plattformen gjør tilgjengelig, tekniske krav til hardware og hvilke kodespråk plattformen programmeres på. 3.1 Introduksjon til Windows Phone 7 Windows Phone 7 er Microsofts nysatsning for mobile enheter. Plattformen erstattet Windows Mobile i 3. kvartal 2010, og baserer store deler av sin grafiske utforming på designspråket Metro Figur 3.1: Windows Phone-motto (også utviklet av Microsoft). Plattformen ble utviklet i samarbeid med en rekke forskjellige hardware-utviklere (Nokia, Samsung, HTC m.fl.), og setter strenge krav til hardware-spesifikasjonene på telefonene som implementerer det. Sent i 2011 kom det en større oppdatering - kodenavn Mango - som blant annet ga støtte for multitasking. 3.2 Metros designprinsipper Metro er Microsofts egenutviklede designspråk, og brukes meget konsekvent på WP7- plattformen. Designspråket, som er basert på klassisk sveitsisk grafisk design, har hovedtyngden sin på bruk av typografi for å skille elementer fra hverandre. For å gjøre tredjepartsapplikasjoner mer tro mot resten av WP7-plattformen, har Microsoft satt sammen en rekke designprinsipper. Under følger en rask introduksjon til de forskjellige framlagte prinsippene, og hvordan vi har forholdt oss til dem Typografi Typografi er kunsten å visualisere tekst på en lesbar måte. Et sentralt poeng i Metro-design er å bruke størrelsen, tykkelsen og formen på teksten til å forme et visuelt hierarki, for å unngå å bruke grafiske elementer som skillelinjer og unødvendige ikoner for å gjøre samme jobben typografi kan oppnå. Microsoft har tilpasset sin egen Segoe-font til mobile plattformer, Segoe WP. Denne fonten er standardfonten i WP7. Det er intet krav om å kun bruke disse fontene, og vi har valgt å bruke en kombinasjon av Segoe WP og kundens egen font - FS Lola - i applikasjonen Bevegelse Bevegelse er her definert som animasjoner og overganger mellom forskjellige views i applikasjonen. Ved riktig bruk av animasjoner oppnår man et mer levende grensesnitt for brukeren, i tillegg til en raskere oppfatning av brukeropplevelsen - man føler at applikasjoner oppfører seg raskere og mer responsivt enn de nødvendigvis gjør. 8

9 Oppdragsgiver ønsket at dette designkravet skulle få mindre fokus enn de andre i vår applikasjon. Derfor har applikasjonen kun implementert enkle overgangs- og innlastningsanimasjoner Content, not Chrome - Fokus på innhold Metro oppfordrer til å fokusere brukeren på innholdet - og ikke inkludere unødvendige grafiske elementer kun for syns skyld. Dette er et godt prinsipp for mobile enheter, siden skjermstørrelse og bevegelses-basert interaksjon da er noe man må ta høyde for. I vår applikasjon - som er meget informasjonstung - hadde vi stort fokus på å maksimere lesbarheten, oversiktligheten og brukervennligheten gjennom nettopp dette prinsippet Autentisk digitalt Metro oppfordrer til å designe med enheten man designer for i bakhodet. En liten, men høyoppløselig skjerm og bevegelsesbasert, rask interaksjon gir muligheten for å utforme brukergrensesnittet autentisk digitalt. Med andre ord - ingen gjenspeilingseffekter, falske bokhyller og andre grafiske elementer som prøver å fremstille enheten som noe annet enn det den er. Vår applikasjonen følger dette prinsippet gjennomgående. Det er ingen tv-antenner, kabler eller andre grafiske elementer som pynter på grensesnittet - alt fokus er på å presentere selve innholdet på best mulig måte for enheten. 3.3 Navigasjonsmuligheter Windows Phone 7 tilbyr tre forskjellige visningsalternativer, kalt panorama -, pivot -, og single -views. Her følger en kort oversikt over hva de forskjellige er og hva de er ment for Panorama Panorama-visning (også kalt panoramaview) er en bred visning med et satt bakgrunnsbilde som beveger seg i en annen hastighet enn elementene som ligger over. Man kan bevege seg horisontalt bortover flere sidestilte views, og slik navigere seg rundt raskt og Figur 3.2: Panoramavisning i Windows Phone 7 enkelt. Sidene i et panoramaview er knyttet sammen i en slags sirkel. For eksempel, hvis man befinner seg i siden helt til venstre, og navigerer én mot venstre, så havner man på siden helt til høyre. Slik er det aldri vanskelig å navigere seg til det ønskede viewet. Microsoft anbefaler å bruke enten denne visningen eller pivot-visningen til applikasjonens oppstartsside, fordi man får en rask oversikt over et større spekter av funksjonalitet og informasjon. Når man er i en side i et panoramaview, vil man ofte kunne se litt av den neste siden til høyre. Slik får brukere et hint om at det finnes mer informasjon tilgjengelig. 9

10 3.3.2 Pivot Pivot-visning ligner på panorama-viewet i at det fungerer på lik måte - man navigerer seg horisontalt bortover flere sidestilte, men adskilte views. Pivot-views blir typisk brukt til å gruppere lignende views av lik viktighetsgrad. I motsetning til panorama kan ikke brukeren her se noe av siden til høyre, men derimot synes overskriften til den neste siden. Pivotsidene er knyttet sammen i en sirkel, i likhet med beskrivelsen av panoramaviewet Single Single-visning er spesielt tilpasset visning av detaljer. De har ingen sidestilte views, og er én-dimensjonale Andre navigasjonsveier I tillegg til de forskjellige visningstypene, finnes det andre måter å navigere gjennom applikasjonen på. Den første er såkalt ContextMenu, som er en navigasjonsmeny som dukker opp når man holder på et element i en liste, og ApplicationBar, som er en halvskjult rekke med ikoner og valg nederst på skjermen. 3.4 Tekniske krav til mobile enheter Figur 3.3: Pivotvisning i Windows Phone 7 Microsoft satt tøffe, men rettferdige krav til hardware-leverandørene da de lanserte Windows Phone 7. Alle enheter som skal implementere WP7 må minimum møte følgende spesifikasjoner: Capacitive, 4-point multi-touch screen with WVGA (480x800) resolution ARM v7 "Cortex/Scorpion" Snapdragon QSD8X50, MSM7X30, and MSM8X55 DirectX9 rendering-capable GPU 256MB of RAM with at least 4GB of Flash memory Accelerometer, ambient light sensor, proximity sensor and Assisted GPS FM radio tuner Six (6) dedicated hardware buttons back, Start, search, 2-stage camera, power/sleep and volume buttons Optional hardware: Front-facing camera, compass and gyroscope Spesifikasjoner er hentet fra Microsofts nettsider. 3.5 Kodespråk og verktøy Windows Phone 7-applikasjoner programmeres i Microsofts egenutviklede programmeringsspråk C#. Språket er et komplett, objektorientert språk, og er meget godt egnet til å utvikle avanserte og sammensatte programmer. Brukergrensesnittene struktureres og stilsettes i Microsofts egenutviklede XAML-strukturspråk. Microsoft har lagt til rette for at utviklere skal benytte seg av MVVM-strukturen der presentasjonslaget, dataen og logikken separeres (som blir forklart noe senere). 10

11 Windows Presentation Foundation (WPF) er rammeverket som tar seg av UI-rendring. WPF gir utvikleren mange sterke verktøy, inkludert databinding - som gir en enkel og effektiv kommunikasjonslinje mellom XAML-strukturkoden og forretningslogikken. Forretningslogikken (skrevet i C#) er basert på Microsofts.NET-rammeverk - og da en lettvektsversjon av.net spesialtilpasset WP7-enheter. Rammeverket tilbyr i tillegg endel praktisk ekstrafunksjonalitet som forenkler utvikling for mobile enheter. For å utvikle WP7-applikasjoner trenger man noen spesialtilpassede verktøy. Microsoft Visual Studio 2010 (med Windows Phone 7 SDK-tilleggspakke), Expression Blend 2010 og Windows Phone 7 Emulator er verktøyene vi brukte - og regnes som en satt standard i WP7- utviklingsmiljøer. Visual Studio 2010 blir generelt sett brukt som programmerings-ide, og tilbyr nyttig funksjonalitet som breakpointing (for debugging), intellisense, en kompilator, og testverktøy. Hva breakpointing og intellisense er, er beskrevet senere i denne rapporten. Expression Blend 2010 blir brukt som et UI-programmerings-IDE, og har et brukergrensesnitt tilpasset utvikling av attraktive, responsive og sammensatte UI-elementer. Windows Phone 7 Emulatoren er verktøyet som kjører selve applikasjonen på datamaskinen - for rask testing av funksjonalitet og utseende. 11

12 4 Beskrivelse av applikasjonen Vi vil i denne seksjonen gjøre rede for den overordnede strukturen og funksjonaliteten som tilbys i TV-guide-applikasjonen slik at leseren får større utbytte av senere kapitler. Her vil vi gi en innføring til applikasjonens konsept, en generell beskrivelse av hva applikasjonen er og gjør, samt navigasjonsstruktur. 4.1 Konsept Før kodingen av applikasjonen ble påbegynt, gikk gruppen gjennom en grundig konseptutviklingsfase. Vi ønsket å utvikle en applikasjon som tok de beste elementene fra dagens mobile tv-guider, samt nye ideer vi og våre veiledere kom opp med, og sette dem sammen til et enkelt, brukervennlig og strømlinjeformet konsept. Flyten i applikasjonen skulle være intuitiv og effektiv, og det grafiske uttrykket skulle bidra til merkevarebygging for kunden. 4.2 Generell beskrivelse Applikasjonen er en TV-guide - et hjelpemiddel som skal bidra til å forenkle planlegging av tv-kvelden for sluttbrukeren og andre tv-tittere, i tillegg til å øke kundens salg av filmleietjenester. Brukeren blir presentert med en komplett oversikt over dagens tv-program, med søke-, planleggings- og opptaksfunksjonalitet, oversikt over kundens filmleieutvalg (inkludert filmtrailervisning), programvarsling og annen mindre, men smart, funksjonalitet. Nedenfor følger screenshots av et utvalg av sidene som er å finne i den ferdige applikasjonen Design Designet som ble valgt gjenspeiler kundens grafiske profil i alle ledd. Logo ble implementert på oppstartsskjerm og hovedsiden, og kundens selvutviklede font (FS Lola) ble brukt i union med WP7-plattformens egne Segoe WP-fontfamilie. Gulfargen, brukt gjennomgående i applikasjonen, er ment å fremheve kundens varemerke, og gråfargen gir en fin kontrast og fremhever denne. Metro designprinsippene var noe som ble fokusert da den grafiske fremstillingen til applikasjonen ble utformet. Fokuset ble lagt på å strukturere innholdet, og ikke unødvendig støy. Fargebruk og typografi gir informasjon og struktur til brukeren, fremfor å kun være pent. Et eksempel er bruken av farger i kanalvisning, der programmer har ulik farge ettersom de har gått, er pågående eller starter senere. Ved navigasjon mellom sidene er det lagt til animerte overganger. Standard overganger for WP7-plattformen er brukt for å gi applikasjonen en mer integrert følelse, og bidrar til at overgangen mellom views oppleves raskere enn de er. 12

13 Figur 4.1: Førstesiden Figur 4.2: Kanalvisning Figur 4.3: Filmleie 13

14 4.2.2 Funksjonalitet Applikasjonen inneholder mye funksjonalitet under sitt minimalistiske ytre. Brukeren kan logge inn og ut som han eller hun ønsker. Nye kunder, eller brukere som har glemt passord, kan hente ny kode ved å skrive inn telefonnummeret sitt. En innlogget bruker kan ta opptak av programmer, slik at de blir tatt opp på brukerens tvboks hjemme. En innlogget bruker vil også, ved å gå til kanalvelgeren, automatisk få satt opp de kanalene hun eller han har på boksen hjemme i tv-guiden. Kanalvelgeren er selvfølgelig også tilgjengelig for brukere som ikke er logget inn, og lar vedkommende velge kanaler å følge med på. Sett bort fra opptak er alt av funksjonalitet tilgjengelig selv om brukeren ikke er en betalende kunde. En spennende mulighet som tilbys i denne applikasjonen er Min kalender. Dette er en funksjon som hverken finnes i Kundens øvrige mobilapplikasjoner, eller i tilsvarande TV- Guider fra før av. Brukeren kan velge å legge programmet i kalenderen sin fra programsiden eller forskjellige kontekstuelle menyer rundt om i applikasjonen. Hvis programmet er en serie vil brukeren få valget om å legge til hele serien som et abonnement. Programmer i kalenderen, planlagte programmer, vil dukke opp kronologisk i kalenderen, slik at brukeren for en oversikt over planlagte programmer. Ved serieplanlegging vil alle programmene i den aktuelle serien, som går på tv de neste 7 dagene, ligge i kalenderen. Programmer og abonnementer kan fjernes som brukeren selv ønsker fra Min kalender-siden. Planlagte programmer for i dag vises på hovedsiden, mens alle planlagte programmer og abonnementer er å finne på Min kalender-siden. I på tv nå -viewet kan brukeren se hva som går på tv i øyeblikket, på de kanalene hun eller han har valgt. En gul linje representerer en progressbar som viser hvor langt et program har gått i forhold til lengden på sendingen. Fra denne siden kan brukeren gå inn på en hvilken som helst kanal i listen, og få oversikt over hva som går på tv på denne kanelen i dag og de neste 6 dagene. Hver dag har er en egen side i pivot-viewet, så å endre dag gjøres enkelt ved et swipe til høyre eller venstre. Brukeren kan også velge å bli varslet om et program. Dette gjøres like enkelt som opptak, ved et raskt trykk på programsidens varslingsknapp eller gjennom en ContextMenu. En beskjed vil bli vist på telefonen 10 minutter før programmets start. En innebygget reminder-funksjon i operativsystemet er her brukt, og sørger for at brukeren får varslingen uavhengig av om applikasjonen kjører eller ikke. For å implementere varslinger, blir Reminder-klassen brukt. OSet i versjon 7.5 gir ikke direkte tilgang til den innebygde kalenderen, og et kompromiss ble derfor tatt for å allikevel gi brukeren muligheten til å sette varslinger. Sluttbrukeren vil ikke merke videre forskjell, og resultatet blir det samme som gjennom direkte kalenderintegrasjon. Søkefunksjonen er tilgjengelig hvor enn man befinner seg i applikasjonen. Et søkeord er alt som trengs for å søke, og resultatene vises i to forskjellige sider i en pivot; én side for tvprogrammer og én for filmer i filmleiedatabasen. Dette gir et raskt, effektivt søk hvor brukeren enkelt kan finne det hun eller han leter etter. En oversikt over tilgjengelige filmer i kundens filmleie er delt inn i 5 hovedkategorier, og har fått sin egen side i applikasjonen. Her kan brukeren se hvilke nye filmer som har kommet ut, 14

15 hvilke som er i HD, anbefalte filmer, topp 25 og filmer som er på vei ut. Alle øvrige filmer som ikke ligger i en av disse kategoriene kan finnes via søkefunksjonen. Ved å gå inn på en film kan brukeren lese om filmen, se screenshots og eventuelt trailer om tilgjengelig. Trailer vises i liggende fullskjerm-modus. På hovedsiden finnes en delside som heter filmer i dag. Her får brukeren en oversikt over alle filmer som går på tv denne dagen, sortert etter starttidspunkt. Kun filmer som går på kanaler valgt av brukeren vises, slik at mest mulig uinteressant informasjon blir filtrert vekk. I Om appen -siden kan brukeren ringe kundens kundeservice eller besøke kundens kundesupportsider på internett Kontekstuelle menyer (Context Menus) Elementene på noen sider gir mulighet for å åpne en kontekstuell meny ved at brukeren holder en finger over elementet. Disse menyene gir brukeren ulike valg for dette elementet, som for eksempel funksjoner som hører til dette objektet. For eksempel vil contextmenyen til en film i filmer i dag -viewet gi 4 alternativer: gå til film, ta opp, varsle og legg til i kalender. Andre views som tar i bruk contextmenyer er kalender (gå til program, opptak, varsling, fjern program, stopp abonnement), på tv nå (gå til program, opptak), kanalvelger (gå til kanal) og søkeresultater for tv-programmer (gå til program, opptak, varsling, legg til i kalender). Disse contextmenyene bidrar til et renere design da de ikke synes før brukeren holder over et element. Om brukeren ikke er klar over at contextmenyene finnes, er likevel all denne funksjonaliteten, foruten stopp abonnement og fjern fra kalender, tilgjengelig via applicationbaren i enkeltsiden for et program. 15

16 Figur 4.4: Context Menu i "filmer i dag" Figur 4.5: Context Menu i Kanalvelger 16

17 4.2.4 Struktur / navigasjon Applikasjonens navigasjon ble nøye gjennomtenkt. Det var mye informasjon å presentere brukeren, og med tanke på mobilplattformen, liten plass å vise det på. WP7-plattformen tilbyr en rekke forskjellige navigasjonsmuligheter som gjør strukturering av applikasjonens brukergrensesnitt enkelt og strømlinjeformet. Ved oppstart bringes brukeren til en panorama-side med oversikt over hva som går på TV i øyeblikket. Den samme panorama-visningen inneholder en navigasjonsmeny, planlagte programmer for i dag og filmer som går på tv i dag. Videre graving nedover i navigasjonen vil enten bringe brukeren til en pivot-side eller single-side, avhengig av hva som skal vises. Her følger en oversikt over navigasjonsflyten i applikasjonen: Figur 4.6: Oversikt over navigasjonsflyten Gruppen mente denne løsningen på navigasjonen var best av flere grunner. Etter brukertester, sammenligning av lignende applikasjoner på flere forskjellige plattformer, og diskusjoner med kunden internt, kom vi frem til hvilken funksjonalitet som burde være enkelt tilgjengelig, og i hvilken rekkefølge elementene skulle sorteres i. Denne omfattende prosessen blir diskutert nærmere i prosessdokumentasjonen. 17

18 5 Struktur i kildekoden Her tar vi for oss struktureringen av kode i applikasjonen. Applikasjonens hovedklasser benytter seg av en MVVM-basert kodestruktur for å skille de forskjellige applikasjonslagene. Vi betegner de ulike komponentene som presentasjonslag (View), mellomlag (ViewModel), modeller (Model), kontrollerlag (Controller) og verktøylag (Utility). Applikasjonen begynner med å kjøre filen App.xaml.cs, oppstartsfilen som intialiserer applikasjonen, samt laster inn og deserialiserer lagret data. Brukeren blir så sendt videre til viewet LoadingScreen.xaml, som laster inn data asynkront fra server. Denne seksjonen vil gi en kort introduksjon til kodemønsteret MVVM, samt en oversikt over de forskjellige lagene og hvilke roller de spiller. 5.1 MVVM - en introduksjon Applikasjonen bruker kodemønsteret MVVM (Model-View-ViewModel) for å strukturere kildekode. Det er et utviklingsmønster for applikasjonsutvikling, og er basert på det eldre utviklingsmønsteret MVC (Model-View-Controller). MVVM legger et klart skille mellom design-kode (user interface) og backend-kode. Modeller representerer maler for objekter, eksempelvis kanaler og programmer i dette prosjektet. Views er kodefilene som inneholder brukergrensesnittet - plassering og design av innhold som knapper og tekst. Disse filene er to-delt, med en XAML-basert struktur-del, og en C# basert logikk-del. Det siste laget i MVVM - ViewModels - fungerer som datagrunnlag for brukergrensesnittet, og henter inn informasjonen som skal vises i et view. Informasjonen består ofte av modeller, som viewmodellene kan endre på og restrukturere etter hvilke behov viewet har. Viewene bruker en av WPFs sterkeste verktøy - databinding - til å vise informasjonen i viewmodellene. Dette fungerer slik at et element i design-koden får satt en datakilde, som ligger i viewmodellen, for sine verdier. Denne datakilden spesifiserer dermed innholdet til elementet (om det er en liste, et tekstfelt eller en bakgrunnsfarge), og separerer struktur fra databehandling Hvorfor bruke MVVM Det er flere fordeler med å bruke MVVM som utviklingmønster. At koden for brukergrensesnittet og databehandling skilles gjør at utviklere som jobber med én del av applikasjonen kan gjøre det uten å påvirke/forstyrre det som skjer i en annen del, og vice versa. Dette gjør at utviklere kan fokusere på det de er spesialisert til, og man får mer effektiv utvikling. Selv om det bare skulle være én utvikler på et prosjekt, så vil ofte designønsker, etter brukertesting, endres mot slutten av produksjonen. Da er det gunstig å kunne endre på brukergrensesnittet uten at det påvirker forretningslogikken. MVVM gjør testing av forretningslogikk enklere; man får testet all logikk uten at selve designet blir involvert. Backend-utviklere kan dermed skrive tester for sitt arbeid uten å måtte ta høyde for de problemer som ofte oppstår ved programmatisk testing av brukergrensesnittet. 18

19 For WP7-applikasjoner anbefales det å bruke MVVM som utviklingsmønster. Microsoft skriver på sine websider at det er et naturlig mønster å bruke for XAML-baserte applikasjoner. Figur 5.1: Hvordan de ulike lagene forholder seg til hverandre 19

20 5.2 Generelt om struktur Applikasjonen bruker en tilpasset implementasjon av MVVM-strukturen. I tillegg til de klassiske lagene for modeller, views og viewmodeller, inkluderer også denne applikasjonen eget Controller-lag, egne utility-klasser og en rekke andre elementer. Dette ble gjort for å maksimere gjenbruk av kode, separere ut datainnhentingsprosessen, og ikke minst for å separere logiske lag fra hverandre. Denne seksjonen vil beskrive de forskjellige lagene denne applikasjonen består av. Figur 5.2: Oversikt over klassene i kildekoden 20

21 5.2.1 Presentasjonslaget (View) Presentasjonslaget inneholder filene som definerer og strukturerer brukergrensesnittet (forkortet UI). Et view består av to filer - en strukturfil og en logikkfil (også kalt code-behind). Strukturfilen blir skrevet i strukturspråket XAML, og inneholder de grafiske byggestenene som sammen former brukergrensesnittet. Viewlagets logikkfiler inneholder event handlers og lyttere som XAML kobles til. Logikkfilene bruker vi for å koble viewet opp mot ViewModel, igangsette navigasjonshendelser og datamanipulasjon i ViewModelen. Viewlagets logikkfiler i MVVM inneholder minimalt med kode, og er i dette prosjektet begrenset til å inneholde en binding opp mot viewets viewmodell, samt logikk for å styre navigasjonshendelser og lignende. Mange MVVM-entusiaster gjør et poeng ut av å ha helt tomme logikkfiler. Dette er mer et spørsmål om såkalt best practice, og gjør lite for den totale ytelsen eller oversikligheten i applikasjonen. Gruppen bestemte seg for at et godt kompromiss - der lite eller ingen forretningslogikk ble godtatt, mens annen logikk for blant annet caching av informasjon og navigasjonshendelser ble bevart i codebehindfilene Stiler og Static Resources For å lette programmering, lesbarhet og gjenbrukbarhet, har gruppen programmert en rekke sentralt definerte stiler - eller statiske ressurser. Eksempler på disse stilene er fonter, farger og hele elementer. Disse er kodeblokker spesifisert kun én gang sentralt i applikasjonen, og beskriver layout og design på spesifikke elementer. Dette medfører langt ryddigere strukturfiler, og gjør store endringer i designet mye raskere å implementere, samt mer konsekvente. Figur 5.3: Opprettelse av en static resource Opprettelse av en static resource: Figur 5.4: Bruk av en static resource Mellomlaget (Viewmodel) Mellomlaget i MVVM, kalt en ViewModel, består av de funksjonene og datafeltene presentasjonslaget presenterer gjennom brukergrensesnittet. Viewet bruker databinding til å koble seg til viewmodelen, og data blir typisk lastet inn gjennom viewmodelens konstruktør. Siden storparten av dataene som vises i applikasjonen hentes inn asynkront over internett, er applikasjonen avhengig av å vise en innlastningsindikator i tiden før all data er overført til telefonen. For å oppnå dette implementerte vi PropertyChanged-rammeverket, som lar presentasjonslaget oppdatere seg selv for hver endring i mellomlaget. 21

22 PropertyChanged er en integrert del av WPF, men må implementeres eksplisitt. Derfor programmerte vi en baseklasse som alle ViewModels deler - ObjectBase - med blant annet denne implementasjonen. Systemet fungerer slik at når et datafelt i mellomlaget endres, sendes det ut en event (eller hendelse) som alle de aktive viewene lytter etter. Når hendelsen blir fanget opp, blir viewet tegnet på nytt, med oppdaterte data. Her er diverse kodeeksempler på hvordan en ViewModel og et View blir koblet sammen ved hjelp av databinding og onpropertychanged-events: Figur 5.5: ViewModel-instansen blir bundet til et view sin datakilde Figur 5.6: Databindingene blir skrevet i XAML-koden til viewet Figur 5.7: For hver property som kan bli oppdatert etter instansieringen av viewet, trengs det en PropertyChanged-event. Denne hender hver gang OnPropertyChanged()-metoden blir kalt Figur 5.8: OnPropertyChange-grensesnittet arves fra ObjectBase-klassen 22

23 5.2.3 Modellaget Applikasjonens forretningsmodeller inneholder informasjonen som blir vist i presentasjonslaget, og restrukturert i mellomlaget. Informasjonen blir hentet inn som JSONobjekter, og modellene er strukturert på en lik måte. Hver modell består av en rekke datafelter som gjenspeiler JSON-strukturen, samt noen deriverte felter. De deriverte feltene bruker de originale feltenes verdier, og returnerer formatterte verdier. Et godt eksempel på et derivert felt er hvordan vi setter aldersgrensestringen i en film ved å ta i bruk andre properties for å skreddersy resultatet: Figur 5.9: En derivert property Figur: En derivert property bruker som regel andre properties til å produsere et skreddersydd resultat. Denne typen modeller blir ofte kalt smarte, av den grunn at de gjør mer enn kun å samle et utvalg objekter og verdier. Dette var å foretrekke siden modellene blir brukt på liknende måte i forskjellige viewmodels, som ellers måtte implementere de samme funksjonene flere ganger Controller-laget I ordinære implementasjoner av MVVM blir data hentet direkte i modellene. Dette valgte vi bevisst å gå bort ifra. For mer sentralisering, gjenbruk og bedre oversikt valgte vi å hente data via controller-klasser - klasser dedikert til datahenting fra REST-tjeneren og fra isolated storage, samt håndtering av brukerdata. Vi endte opp med følgende kontroller-struktur: Kontroller TVController MovieController Rolle Håndterer all datainnhenting rundt tv-program, opptak og søk i tv-databasen Håndterer all datainnhenting rundt filmleie StorageController Håndterer alle kall til og fra Isolated Storage UserController Håndterer alle kall rundt brukere, innlogging og utlogging 23

24 I tillegg til å ta hånd om datainnhenting (og lagring), er kontrollerlaget ansvarlig for mesteparten av logikken i programmet. Slik blir mesteparten av forretningslogikken fjernet fra presentasjon og modellene, og gjør hele strukturen mer oversiktlig og enkel å utvide senere Verktøy (Utilities) Mange funksjoner og konstanter vil ofte bli gjenbrukt flere ganger gjennom applikasjonen, og av ulike klasser. Da er det fordelaktig å sentralisere disse for å gjøre koden mer effektiv og oversiktlig. Dette gjøres gjennom såkalte utility-klasser. Klassene gjør det også enkelt å finne og endre disse sentrale funksjonene og konstantene etter ønske. Hver klasse har en samling metoder og konstanter som har en eller flere likhetstrekk. For eksempel vil metoder som manipulerer dato og tid være samlet i èn utility-klasse - i vårt tilfelle kalt DateUtility. Converter-klasser faller også inn under utilities, men brukes kun av presentasjonslaget. Dette er metoder som for eksempel konverterer et nummer til en farge, eller en boolean til en Visibility-enum. Her er en full oversikt over våre Utility-klasser, og hva de gjør: Navn AppUtility DateUtility NavigationUtility NetworkUtility UrlUtility Settings Beskrivelse Oppsamlingsklasse for alle generelle funksjoner Metoder som konverterer datoer og tidspunkter Hjelpemiddel for å navigere mellom views med minimalt av REST-kall Metoder, events og properties som bidrar til å styre applikasjonen i varierende nettverksforhold Samling av adresser til bruk for REST-kall Samling av innstillinger som kan tenkes å endres på et senere tidspunkt FeaturedColorConverter Konverterer booleans til farger og tilbake igjen StateColorConverter VisibilityConverter Konverterer PlayStates-enumer til farger og tilbake igjen Konverterer booleans til Visibility-enums m.m Settings Etter ønske av kunde, ble en rekke variabler lagret sentralt i filen Settings.cs. Dette er variabler som kunne ønskes å endres fortløpende i en betatest-periode, som antall søkeresultater, standard -kanaler med mer. Disse ble implementert som statiske variabler, og er dermed enkelt tilgjengelig fra hele applikasjonen REST-laget For å lette kontrollernes kall mot REST-tjeneren, utviklet vi et sett med klasser for å standardisere kall mot REST. Disse ble internt kalt REST-laget, og fungerer som et slags underlag av kontrollerlaget. REST-laget gir mulighet for både GET- og POST-kall over HTTP-protokollen. Ved hvert kall sjekker metoden om man har internettilgang, samt om det var parsing-, autentifiserings- 24

25 eller server-feil ved utførelsen. Ved hjelp av egne exceptionklasser gjør dette systemet feilsøking og behandling av spesialtilfeller meget enkelt og oversiktlig. 6 Datagrunnlag (REST) For å få en full forståelse av hvordan applikasjonen henter inn data, er det viktig å ha en viss forståelse for datagrunnlaget - hvor dataene blir hentet fra. Kunden stilte med en selvutviklet webservice - basert på REST-modellen - som returnerer informasjon i JSON- eller XMLformat. I denne seksjonen vil du finne en forklaring av hva en REST-tjeneste er, hvordan REST-tjenesten til kunden fungerer å samarbeide med, hvilke endpoints som er tilgjengelig, og til slutt en oversikt over svakheter og uforutsett oppførsel som må tas høyde for. 6.1 Hva er en REST-tjeneste? REST står for Representational State Transfer. En REST-tjeneste er en såkalt webservice som er tilgjengelig over HTTP-protokollen, og tilbyr et grensesnitt for kommunikasjon mellom en server (REST-tjeneren) og en klient (her - mobilapplikasjonen) over internett. En REST-tjeneste må oppfylle en rekke krav for å bli ansett som RESTfull. Disse er: Separation of concern - En klient trenger kun å vite om grensesnittet til en tjener - og ingenting annet. Dette er for å øke portabiliteten til klienter. Tilstandsløs - Siden kommunikasjonen skjer over den tilstandsløse protokollen HTTP, kan ikke en REST-tjener lagre detaljer om en klient internt mellom kall. Cachebar - For å øke ytelse og skalering, må kall til tjeneren caches hvis de er like siden forrige kall, eller besvares på nytt. Lagdelt system - En klient skal ikke kunne merke forskjell på om den er koblet til den faktiske serveren eller en mellomserver - dette for å øke skaleringsmuligheter. Uniformt grensesnitt - Et uniformt grensesnitt på REST-tjeneren lar både tjener og klient utvikles uavhengig av hverandre. 6.2 Kundens REST-tjeneste Kundens REST-tjeneste er et avansert, komplisert og stort program. Heldigvis, på grunn av kravene som stilles til en RESTfull tjeneste, trenger ikke utviklere av klienten å sette seg grundig inn i hvordan denne tjenesten fungerer. Generelt kan det nevnes at kundens REST-tjeneste tilbyr både XML- og JSON-overføring av data over HTTP-protokollen, som gjør serialisering og deserialisering av data både enkelt og effektivt. Responstiden er kort (~ 500 ms ms) selv for omfattende kall, og grunnet egne kall for binære data (bilder, videoer etc), er datamengden overført minimal. REST-tjeneren bruker en JSON-parser kalt Jackson, et open-source prosjekt som tilbyr både rask og kvalitetssikret JSON-serialisering. 25

26 6.2.1 Endpoints Endpoints er grensesnittet for REST-tjenesten mot klienten, og kundens REST-tjener har et utvalg som er veldig nyttig for senere videreutvikling av applikasjonen. Disse er som følger: Tabell: Åpne REST-kall Metode URL for kall Beskrivelse GET /open/tvguide/batch Lister ut kanaler, pakker, sjangre GET /open/tvguide/events?[&fields=id,name,description...][&channels=1,2,3..][&start= t10:00][&duration={minutes}][&maxcount=0-n][&search=..] Henter tvprogrammer/events sortert på kanal. GET /open/tvguide/events/{eventid} Henter ut detaljer om en event GET /open/tvguide/channels Henter ut alle kanaler GET /open/tvguide/channelgroups Henter ut beskrivelse av kanalpakkene med kanalid'er POST /open/tvguide/pin/reset POST: "phone" Sender en tekstmelding til det spesifiserte telefonnummeret med ny pinkode GET Justerer størrelse på bilde med spesifisert enonic-id/key GET /open/moviesguide/shallowmovielists Henter navn og ID på alle filmlister GET /open/moviesguide/batch [moviesinlistcount={antall}] Henter filmsjangre og filmlister GET /open/movieguide/movielists Henter filmlister med filmer GET /open/movieguide/movielists/{listid} Henter en gitt filmliste GET GET /open/tvguide/eventgenres Henter ut alle eventsjangerere /open/image/cms/resize?key={enonic-content-key}&height={pixelheight}&width={pixel-width} /open/movieguide/movies?[&fields=id,title...][&fromindex=0-n][&maxcount=0- n][&search=...][&genres=1,2,3] Henter et gitt utvalg av filmer fra filmleiedatabasen GET /open/movieguide/movies/{movieid} Henter en gitt film GET /open/movieguide/moviegenres Henter filmsjangre 26

27 Tabell: REST-kall som krever autentifisering (uautoriserte kall returnerer status kode 403) Meto de POST POST URL for kall POST: "auth_tvguide_username", "auth_tvguide_password" [rememberme=true] POST: "auth_unregisteredcustomer_customerid","auth_unregisteredcustom er_dateofbirth","auth_unregisteredcustomer_postalno" [rememberme=true] Beskrivelse For å bli autentisert må man gjøre en POST som inneholder parameterne "auth_tvguide_username" og "auth_tvguide_password". Kunden kan da logge inn med enten telefonnummer/pin eller brukernavn/passord fra minside. Rememberme flagget kan brukes dersom man ønsker at brukeren skal være logget inn over tid For å autentisere en GET-kunde som ikke er registrert på minside må man gjøre en POST som inneholder parameterne ovenfor. Rememberme flagget kan brukes dersom man ønsker at brukeren skal være logget inn over tid GET /authenticated/tvguide/loginstatus Gir ut status på kunden som er logget inn (kundeid, organization, partner etc) GET /authenticated/tvguide/subscriptions Abonnementdetailjer for den innloggede kunden: loginstatus + channelsubscriptions (fungerer også for partnerkunder) GET /authenticated/tvguide/channelsubscriptions Henter ut kanalene til en GET-kunde (fungerer ikke for partnere) POST /authenticated/tvguide/pin/set POST: "phone", "pin" Lagrer/erstatter pinkode for å logge inn på tvguiden for det spesifiserte telefonnummeret (phone parameteret) POST /authenticated/tvguide/record/{eventid} Sender et opptak til dekoderen registerert på kunden 6.3 Svakheter og uregelmessigheter som må tas høyde for Grunnet kompleksiteten til kundens REST-tjeneste, er det noen spesialtilfeller som må tas høyde for. Denne seksjonen vil informere om de gruppen har funnet, og har måttet ta høyde for under utviklingen av applikasjonen Inkonsekvent parsing av felter (lister) Når man ber serveren om et spesielt sett med events (tv-programmer) eller filmer, vil JSONdataen som blir returnert være strukturert relativt inkonsekvent. Mange felter kan ha null eller flere medlemmer - og dette kan skape trøbbel under deserialiseringen av JSON. Et eksempel her er skuespillere som er med i en film - noen ganger kan REST returnere et enkeltfelt: actors : Jean-Claude Van Damme Andre ganger kan den derimot returnere en liste med skuespillere: actors : [ Angelina Jolie, Brad Pitt, Matt Damon ] 27

28 Dette er noe som må tas høyde for i JSON-deserialiseringen gjennom såkalte JSONconverters. Deserialiseringsrammeverket som blir brukt i applikasjonen (Json.NET) lar programmereren lage egne konverterere som tar høyde for slik inkonsekvent parsing Inkonsekvent parsing av felter (tall) Når man ber serveren om et spesielt sett med events (tv-programmer) eller filmer, vil JSONdataen som blir returnert være tall-sensitiv. Et godt eksempel på dette er titler til programmer. Når man ønsker å få ut programmet 24 - en klassisk historie om spesialagenten Jack Bauer - vil man få tilbake følgende utsnitt JSON: title : 24 Deserialiseringsrammeverket vil da anta at title -feltet er av typen int, mens det i virkeligheten er av typen string. Dette er noe som må tas høyde for i JSON-deserialiseringen gjennom såkalte JSON-converters Wrappere All respons fra REST-tjenesten blir returnert inkapsulert i såkalte wrappere - JSON-objekter som har som oppgave å innhylle returnert data i et ekstra lag. Dette er ofte et krav for gyldig JSON, og er noe som må tas høyde for på klientsiden. I denne implementasjonen har gruppen valgt å lage eksplisitte klasser som fungerer på samme måte som i JSON - kun for wrapping av indre objekter. Det er også mulig å lage såkalte JSON-converters - deserialiseringsrammeverket som blir brukt i applikasjonen (Json.NET) lar programmereren lage egne konverterere som tar høyde for wrapper-klasser. 6.4 Json.NET, deserialisering og converters Json.NET er et rammeverk for å serialisere og deserialisere mellom JSON og C#. Dette rammeverket har mange store fordeler over det innebygde DataContractJsonSerializer, men spesielt så er Json.NET mer fleksibelt i forhold til hvordan (de)serialiseringen blir gjort. For å kunne ta høyde for inkonsekvent serialisering fra server, ble det programmert såkalte converters, som blir brukt i deserialiseringen. Disse converter-klassene er spesiallaget for kundens REST-tjener og dens oppførsel, og tar høyde for problemer som feilformatterte lister og strenger. Converter-klassene implementeres ved å bruke en JsonReader, som leser gjennom en JSONstreng token for token. Et token i JSON er spesialtegn som separerer elementer, og ved å lese gjennom hvert token kan man ta høyde for alle situasjoner og legge inn tester for de spesialtilfellene som blir oppdaget. Systemet som er implementert i applikasjonen i dag er både robust og enkelt å videreutvikle. 28

29 7 Isolated Storage Isolated Storage er WP7s interne rammeverk for lokal lagring av data. Et avgrenset lagringsområde blir reservert for hver applikasjon, og dette lagringsområdet blir benyttet som et privat filsystem. Vår applikasjon benytter dette for å lagre nedlastet data mellom kjøringer. Når man skal lagre data med Isolated Storage har man to muligheter, lagre til fil(er) eller lagre til Isolated Storage Settings. Sistnevnte er en fil som er innebygget i applikasjonens Isolated Storage område, med innebygget funksjonalitet for lagring og uthenting. Istedenfor å lage avanserte lagringsalgoritmer kan man enkelt lagre egendefinerte objekter. Lagring og uthenting av data blir automatisk håndtert etter delegering fra utviklernes side, så lenge programmereren klargjør dataen for lagring. Isolated Storage Settings er implementert som et Dictionary-objekt, som parer opp nøkler og innhold. Man kan lagre en instans med et nøkkelord, som senere brukes for å hente ut den samme instansen. For å lagre en instans av et objekt er instansens modell-klasse nødt til å: 1. implementere serialisering på feltene som skal lagres 2. spesifisere hvilke felter som ikke skal lagres (alle datatyper har ikke støtte for serialisering) Applikasjonens datamodeller implementerer DataContract-attributten, som delegerer til en klient hvilke felter som skal serialiseres, og hvilke felter som skal ignoreres. Lagring av data skjer når brukeren lukker applikasjonen. All informasjonen (foruten passord) samles i en wrapper-klasse definert for å forenkle lagring, samt videreutvikling. Istedenfor at eventuelle senere utviklere er nødt til å lage egne håndteringssystemer for tidligere versjoner av applikasjonen når man forbereder en oppdatering av applikasjonen, kan utviklerne nå endre på innholdet i modellklassen, mens selve lagringen skjer på samme måte. Passord blir lagret kryptert som en egen nøkkel hver gang en ny bruker logges inn, og blir fjernet ved utlogging. Ved oppstart av applikasjonen hentes lagret informasjon inn fra Isolated Storage før brukeren blir sendt videre til det første vinduet. Det er nødvendig at brukeren venter på denne innhentingen fordi innhenting av data fra REST avhenger av informasjonen i Isolated Storage. Feilhåndtering har blitt implementert i både innhentingen og lagringen. Ved første kjøring opprettes tomme lister, og standard-data for brukerne blir opprettet. Ved første lagring av data opprettes nye felter i Isolated Storage. 29

30 8 Brukere og sikkerhet Mobile applikasjoner er en personlig opplevelse - og TV-guide-applikasjonens funksjonalitet bærer preg av nettopp dette. Det er for eksempel mulig å logge inn som en annen bruker, men informasjonen i min kalender, abonnementer og varslinger blir delt uavhengig av brukere. En slik forenkling er ønskelig for de aller fleste brukere slik at applikasjonen ikke tar for lang tid å sette opp, og er selvforklarende slik at brukere ikke behøver å lese instruksjoner. Det gjør at brukere slipper å stusse over hvorfor innhold blir borte hvis en annen person logger inn på applikasjonen for å starte et opptak. Innlogging eksisterer i dagens mobilapplikasjoner bare for å støtte èn funksjon - for å kunne fjernstyre opptak. All annen funksjonalitet i applikasjonen er tilgjengelig uten å være innlogget. Innloggingen skjer via REST-tjeneren, og gjør at applikasjonen ikke stiller store krav til sikkerhet da alle sensitive detaljer blir håndtert internt. Applikasjonen støtter funksjonalitet for automatisk pålogging ved oppstart, slik at en bruker forblir pålogget til han eller hun selv logger ut. Både passord og brukernummer blir lagret i Isolated Storage. Andre applikasjoner har ikke tilgang til applikasjonens lagringsområde, men for å øke sikkerheten krypteres passordet gjennom krypteringsalgoritmen ProtectData. 30

31 9 Feilsøking Denne seksjonen vil beskrive teknikker og metoder for å finne, utbedre og rette eventuelle feil og svakheter i kildekoden, samt å diskutere de forskjellige feiltyper som kan oppstå, og hvordan man angriper problemet. Gruppen har selv brukt disse problemløsningsmetodikkene under utviklingen, og anser dem som sterke nok til å løse de aller fleste problemer som måtte oppstå. Å feilsøke en Windows Phone 7-applikasjon er relativt enkelt, gitt nok tid til å grave seg ned i programmet. Applikasjonen er velstrukturert, og med de rette teknikker og verktøy er feilsøking ingen vanskelig oppgave. 9.1 Teknikker Her vil vi beskrive de forskjellige teknikkene og verktøyene som burde bli brukt under eventuell feilsøking - tolking av runtime tilbakemeldinger og exceptions, breakpointing og riktig bruk av IntelliSense Runtime-feil og exceptions Hvis applikasjonen stopper under kjøring av kodelinje eller lasting av et spesifikt view, avslutter applikasjonen brått og uhøytidelig. Ofte når dette skjer, er det på grunn av såkalte uhåndterte exceptions. Slike uhåndterte feil gir som regel en informativ feilmelding til programmereren, og kan peke mot hvor feilen ligger og hva slags feil det er. Selv om mange exceptions er lite beskrivende - som for eksempel en NullReferenceException - er det mange feil som kun skjer ved utføring av spesifikke metoder. Ved aktiv bruk av aktuell dokumentasjon og breakpointing, er slike feil relativt raske å peke ut og rette opp. Figur 9.1: Feilmeldinger i Visual Studio 31

Kunden er en av Norges ledende leverandører av digital-tv og bredbåndstjenester.

Kunden er en av Norges ledende leverandører av digital-tv og bredbåndstjenester. 1 Forord Hensikten med kravspesifikasjonen er å gi oppdragsgiver og utviklere en enighet og forståelse av funksjonaliteten til applikasjonen som skal produseres. en definerer i tillegg prosjektets rammer

Detaljer

KRAVSPESIFIKASJON FORORD

KRAVSPESIFIKASJON FORORD KRAVSPESIFIKASJON FORORD Hensikten med kravspesifikasjonen er å gi oppdragsgiver og utviklere en enighet og forståelse av funksjonaliteten til applikasjonen som skal produseres. en definerer i tillegg

Detaljer

Produktdokumentasjon. Madison Møbler Administrasjonsside og Nettbutikk

Produktdokumentasjon. Madison Møbler Administrasjonsside og Nettbutikk Produktdokumentasjon Madison Møbler Administrasjonsside og Nettbutikk 1 1. Forord 1.1 Dokumentasjonen Dette er en teknisk dokumentasjon på produktet som er utviklet. Denne er tiltenkt personer med teknisk

Detaljer

Presentasjon. Kristian Hewlett- Packard 29.05.2012

Presentasjon. Kristian Hewlett- Packard 29.05.2012 2012 Presentasjon Kristian Hewlett- Packard 29.05.2012 1 Innledning Denne innledningen inneholder informasjon om gruppen, samt bakgrunn og mål for oppgaven og en introduksjon til temaet. 1.1 Gruppen Vår

Detaljer

Installere JBuilder Foundation i Windows XP

Installere JBuilder Foundation i Windows XP Installere JBuilder Foundation i Windows XP Installasjon av JBuilder Foundation på Windows (dekker her spesifikt fremgangen ved bruk av Microsoft Windows XP Professional, men det vil mest trolig ikke være

Detaljer

Dokument 1 - Sammendrag

Dokument 1 - Sammendrag Dokument 1 - Sammendrag Automatnett - Nytt CMS-verktøy for Uno-X Automat Fakultet for teknologi, kunst og design Høgskolen i Oslo og Akershus, 2013 Innholdsfortegnelse Sammendrag 1 1. Innledning 1 2. Om

Detaljer

Forprosjekt gruppe 13

Forprosjekt gruppe 13 Forprosjekt gruppe 13 Presentasjon Tittel: Oppgave: Periode: Gruppemedlemmer: Veileder: Oppdragsgiver: Kontaktperson: Mobilbillett i HTML5 Utvikle en mobil billettautomat innenfor kategorien dedikert web

Detaljer

NorskInternett Brukermanual. Sist oppdatert 09.08.15. Side 1/30

NorskInternett Brukermanual. Sist oppdatert 09.08.15. Side 1/30 NorskInternett Brukermanual Sist oppdatert 09.08.15. Side 1/30 Innholdsliste Hvordan kan vår tjeneste brukes...2 Hva vi leverer...2 Kontoinformasjon...3 Bruk av VPN tilkobling...3 Konfigurering av Android...4

Detaljer

Utvikle en prototype for en digital versjon av helsekort for gravide. Programvareleverandør av ehelse-løsninger for helsevesenet

Utvikle en prototype for en digital versjon av helsekort for gravide. Programvareleverandør av ehelse-løsninger for helsevesenet Kravspesifikasjon Hovedprosjekt 2014 Institutt for informasjonsteknologi, Høgskolen i Oslo og Akershus Presentasjon Tittel: Oppgave: Gruppemedlemmer: Digitalt Helsekort for Gravide Utvikle en prototype

Detaljer

Brukerdokumentasjon. Webservices og webklient for kodeverk/ kodeverdi verifisering

Brukerdokumentasjon. Webservices og webklient for kodeverk/ kodeverdi verifisering Brukerdokumentasjon Webservices og webklient for kodeverk/ kodeverdi verifisering Innholdsfortegnelse... 3... 3... 3... 3... 4... 4... 4... 4... 8... 9... 10!... 10 "... 11 # $... 11 1. Om systemet 1.1.

Detaljer

Eventhandler Teknologi, kunst og design Høgskolen i Oslo og Akershus, våren 2013. Testrapport

Eventhandler Teknologi, kunst og design Høgskolen i Oslo og Akershus, våren 2013. Testrapport Eventhandler Teknologi, kunst og design Høgskolen i Oslo og Akershus, våren 2013 Testrapport 1 INNHOLDSFORTEGNELSE 1 INNHOLDSFORTEGNELSE... 1 2 Innledning... 2 3 Formål med testing... 3 3.1 Funksjonalitet...

Detaljer

Artist webside. Gruppe medlemmer Joakim Kartveit. Oppdragsgiver Tetriz Event & Management. Frode Mathiesen. Gry Anita Nilsen.

Artist webside. Gruppe medlemmer Joakim Kartveit. Oppdragsgiver Tetriz Event & Management. Frode Mathiesen. Gry Anita Nilsen. Artist webside Innhold Artist webside...1 Gruppe medlemmer...1 Oppdragsgiver...1 Kontaktperson...2 Veileder...2 Oppgaven...2 Muligheter...2 Sammendrag...2 Dagens situasjon...2 Mål og rammebetingelser...3

Detaljer

4.1. Kravspesifikasjon

4.1. Kravspesifikasjon 4.1. Kravspesifikasjon Dette delkapittelet beskriver nærgående alle deler av systemet, hvordan det er tenkt ferdigutviklet med fokus på oppdragsgivers ønsker. 4.1.1. Innledning Informasjon om hvordan kravspesifikasjonens

Detaljer

KRAVSPESIFIKASJON. Tittel: Pris++ Oppgave: Utvikle en Android applikasjon med tilhørende databasesystem. Periode: 1. Januar til 11. Juni.

KRAVSPESIFIKASJON. Tittel: Pris++ Oppgave: Utvikle en Android applikasjon med tilhørende databasesystem. Periode: 1. Januar til 11. Juni. KRAVSPESIFIKASJON Tittel: Pris++ Oppgave: Utvikle en Android applikasjon med tilhørende databasesystem. Periode: 1. Januar til 11. Juni. Prosjektgruppe: 27 Prosjektmedlem: Ole Almenning Stenhaug Veileder.

Detaljer

VEDLEGG 1 KRAVSPESIFIKASJON

VEDLEGG 1 KRAVSPESIFIKASJON VEDLEGG 1 KRAVSPESIFIKASJON INNHOLDSFORTEGNELSE Forord... 2 1 Systembeskrivelse... 2 2 Mål for systemet... 3 3 Funksjonelle krav... 4 4 Ikke-funksjonelle krav... 5 5 Use-case diagram... 6 6 Rammekrav...

Detaljer

Brukermanual for nettpublisering. frivilligsentral.no

Brukermanual for nettpublisering. frivilligsentral.no Brukermanual for nettpublisering frivilligsentral.no Innholdsfortegnelse Introduksjon 3 1 - Innlogging 4 1.1 - Logge inn 4 1.1 - Logge ut 4 2 - Grensesnitt 5 2.1 - Menyfelt 5 2.2-3 - Opprette, lagre og

Detaljer

Installere JBuilder Foundation i Mandrake Linux 10.0

Installere JBuilder Foundation i Mandrake Linux 10.0 Installere JBuilder Foundation i Mandrake Linux 10.0 Installasjon av JBuilder Foundation på Linux (dekker her spesifikt fremgangen ved bruk av Mandrake Linux 10.0, men distribusjon vil gjøre liten eller

Detaljer

BRUKERMANUAL. Deviations and Reporting

BRUKERMANUAL. Deviations and Reporting BRUKERMANUAL Deviations and Reporting Forord Dette er brukermanual for CEMAsys Immediate Reporting applikasjon som er laget for iphone og Android telefoner. CEMAsys Immediate Reporting er en applikasjon

Detaljer

S y s t e m d o k u m e n t a s j o n

S y s t e m d o k u m e n t a s j o n S y s t e m d o k u m e n t a s j o n Monitorering av produksjonsløyper ved Nasjonalbiblioteket - Project BAKE Utarbeidet av: Einar Wågan Kristian Akerhei Studium: Informasjonssystemer Innlevert: 26.5.2015

Detaljer

Kravspesifikasjon. Android app for aktivering av jakt- og fiskekort. Bacheloroppgave vår 2014. Høgskolen i Oslo og Akershus. Charlotte Sjøthun s180495

Kravspesifikasjon. Android app for aktivering av jakt- og fiskekort. Bacheloroppgave vår 2014. Høgskolen i Oslo og Akershus. Charlotte Sjøthun s180495 Charlotte Sjøthun s180495 Nanna Mjørud s180477 Anette Molund s181083 Kravspesifikasjon Android app for aktivering av jakt- og fiskekort Bacheloroppgave vår 2014 Høgskolen i Oslo og Akershus Forord Hensikten

Detaljer

LocalBank Prosjektbeskrivelse

LocalBank Prosjektbeskrivelse LocalBank Prosjektbeskrivelse INNHOLD MÅL... 2 STRUKTUR... 2 IMPLEMENTASJON AV ILOCALBANKREPOSITORY... 3 GUI... 4 EXCEPTION... 4 KODE... 4 NOEN KLASSER OG SPESIELLE EMNER SOM DE VISER... 5 KLASSE DIAGRAMMER...

Detaljer

CabinWeb BRUKERDOKUMENTASJON ET SYSTEM UTVIKLET AV DELFI DATA

CabinWeb BRUKERDOKUMENTASJON ET SYSTEM UTVIKLET AV DELFI DATA CabinWeb BRUKERDOKUMENTASJON ET SYSTEM UTVIKLET AV DELFI DATA Sist oppdatert 18.02.2010 INNHOLD INNHOLD... 1 HVA ER CABINWEB... 2 HVA KAN DU BRUKE CABINWEB TIL?... 3 HVA ER NYTT I CABINWEB VERSJON 2.0...

Detaljer

Trådløs Bedrift Mobilapplikasjon

Trådløs Bedrift Mobilapplikasjon Trådløs Bedrift Mobilapplikasjon Trådløs Bedrift Mobilapplikasjon Trådløs Bedrift tilbyr en mobilapplikasjon som åpnes i nettleseren på din mobiltelefon. Med applikasjonen kan du enkelt sette over samtaler,

Detaljer

Kravspesifikasjon. Forord

Kravspesifikasjon. Forord Forord Kravspesifikasjonen skal gi en oversikt og forståelse over det planlagte systemets funksjonalitet. Dokumentet skal gi både utviklere og oppdragsgivere innblikk i hvordan og hva systemet skal levere.

Detaljer

Brukerveiledning. Kom i gang. publiseringsverktøy. versjon 2 - revidert 10.02.2010 AESTON. Side 1

Brukerveiledning. Kom i gang. publiseringsverktøy. versjon 2 - revidert 10.02.2010 AESTON. Side 1 Brukerveiledning Kom i gang publiseringsverktøy versjon 2 - revidert 10.02.2010 AESTON Side 1 Velkommen som bruker av Kameleon Introduksjon Kameleon er et publiseringsverktøy (Content Management system

Detaljer

SiteGen CMS. Innføringsmanual

SiteGen CMS. Innføringsmanual SiteGen CMS Innføringsmanual Copyright Barlind Solutions AS 2008 Hva er SiteGen CMS? SiteGen CMS er et såkalt content-management-system; eller med litt andre ord et publiseringssystem. Det kan brukes til

Detaljer

Multi-Faktor Autentisering. Brukerveiledning

Multi-Faktor Autentisering. Brukerveiledning Multi-Faktor Autentisering Brukerveiledning 1 Innhold Innledning... 3 Telefonanrop (standard)... 3 Oppsett... 3 Bruk... 3 Mobil App (valgfri)... 4 Oppsett... 4 Bruk... 5 Multi-Faktor portal...7 Pålogging...7

Detaljer

Kjørehjelperen Testdokumentasjon

Kjørehjelperen Testdokumentasjon 2013 Kjørehjelperen Testdokumentasjon Høgskolen i Oslo og Akershus Henrik Hermansen og Lars Smeby Gruppe 8 26.05.2013 Forord Dette dokumentet tar for seg to forskjellige ting. Først forklares det hvordan

Detaljer

BRUKERMANUAL. Telsys Online Backup

BRUKERMANUAL. Telsys Online Backup BRUKERMANUAL Telsys Online Backup TELSYS AS - 06.08.2009 Innhold Generelt... 3 Kom i gang... 4 Installasjon av Telsys Online Backup Proff/Standard... 4 Start opp klienten for første gang!... 10 Logg inn...

Detaljer

VMware Horizon View Client. Brukerveiledning for nedlasting, installasjon og pålogging for fjerntilgang

VMware Horizon View Client. Brukerveiledning for nedlasting, installasjon og pålogging for fjerntilgang VMware Horizon View Client Brukerveiledning for nedlasting, installasjon og pålogging for fjerntilgang Introduksjon Fjerntilgang er blitt oppgradert til en bedre og mer moderne løsning. Programmet er identisk

Detaljer

Hurtigveiledning for «PLEXTALK Linio Pocket» online spiller

Hurtigveiledning for «PLEXTALK Linio Pocket» online spiller Hurtigveiledning for «PLEXTALK Linio Pocket» online spiller 1 Innstilling av PLEXTALK Linio Pocket 1. Vend Linio Pocket. Sjekk at for at toppen av spilleren er opp evt fra deg hvis du holder den vannrett.

Detaljer

Forprosjektrapport. Gruppe 26. Digitalt læreverktøy for Cappelen Damm

Forprosjektrapport. Gruppe 26. Digitalt læreverktøy for Cappelen Damm Hovedprosjekt i informasjonsteknologi 2016 Høyskolen i Oslo og Akershus Forprosjektrapport Digitalt læreverktøy for Cappelen Damm Gruppe 26 Sofia Aittamaa - s198580@stud.hioa.no Petter Lysne - s198579@stud.hioa.no

Detaljer

DinVikar - Bruker Manual

DinVikar - Bruker Manual DinVikar - Bruker Manual Utvikliet av Fosen-Utvikling AS I samarbeid med Alvens AS Skrevet av: Jonas Kirkemyr Innhold 1 Introduksjon................................................... 4 I Systemet 2 Systemet......................................................

Detaljer

OBLIG 1 - WEBUTVIKLING

OBLIG 1 - WEBUTVIKLING OBLIG 1 WEBUTVIKLING Oppgave 1 Gå gjennom nettsiden arngren.net og list opp alle problemene du ser. Både i funksjonalitet/bruk og i koden bak. Problemer med funksjonalitet / bruk Uoversiktlig side For

Detaljer

Kandidat nr. 1, 2 og 3

Kandidat nr. 1, 2 og 3 Kandidat nr. 1, 2 og 3 Rapport 1 IT202E Bacheloroppgave i Informatikk Vår 2011 Mobilapplikasjonsutvikling med Scrum 1 Innhold Innledning... 3 Overordnet Prosjektplan... 3 Produktbacklog... 5 Sprint planning

Detaljer

ChiCMS Hovedprosjekt ved Høgskolen i Oslo 2011

ChiCMS Hovedprosjekt ved Høgskolen i Oslo 2011 TESTRAPPORT Forord Denne testrapporten har som formål å beskrive all testing som er utført på systemet, både under utviklingen og etter ferdigstilling. Målet for testingen er for å verifisere at vi har

Detaljer

Forprosjekt. Accenture Rune Waage, rune.waage@accenture.com, 91605634

Forprosjekt. Accenture Rune Waage, rune.waage@accenture.com, 91605634 Forprosjekt Presentasjon Gruppe 19: Event-planlegger Andreas Berglihn s169991 Harald R. Svendsen s127142 Gruppe Gruppe 19 Andreas Berglihn, s169991 Harald R. Svendsen s127142 Oppgave Eventplanlegger Utvikle

Detaljer

Kravspesifikasjon. Forord

Kravspesifikasjon. Forord Kravspesifikasjon Forord Kravspesifikasjonen skal beskrive applikasjonens funksjonalitet og betingelsene som oppdragsgiver krever. Det skal også hjelpe utviklerne med å begrense applikasjonen slik at den

Detaljer

KOM I GANG MED WORDPRESS En enkel guide for å hjelpe deg gjennom det grunnleggende i Wordpress

KOM I GANG MED WORDPRESS En enkel guide for å hjelpe deg gjennom det grunnleggende i Wordpress KOM I GANG MED WORDPRESS En enkel guide for å hjelpe deg gjennom det grunnleggende i Wordpress Sist oppdatert 05.06.2015 Innholdsfortegnelse 1. Hva er Wordpress?... 3 2. Hvordan logger jeg inn i kontrollpanelet?...

Detaljer

Testrapport for Sir Jerky Leap

Testrapport for Sir Jerky Leap Jasmine Garry (s135600) Line Sørensen (s135590) Fredrik Hoem Grelland (s135595) Tor Anders Gustavsen (s127668) 1 1. Forord Dette dokumentet inneholder informasjon og redegjøring av tester foretatt i forbindelse

Detaljer

Kom i gang med programmering i Java

Kom i gang med programmering i Java Kom i gang med programmering i Java Dette dokumentet forteller hvordan du skal komme i gang med programmering inkludert nedlasting av den programvare du trenger samt oppsett av disse samt en del innstillinger

Detaljer

1. Intro om SharePoint 2013

1. Intro om SharePoint 2013 Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Intro om SharePoint 2013 Stein Meisingseth 09.08.2013 Lærestoffet er utviklet for faget LO205D Microsoft SharePoint 1. Intro om SharePoint

Detaljer

ActiveBuilder Brukermanual

ActiveBuilder Brukermanual ActiveBuilder Brukermanual Forfatter: TalkActive I/S Dato: Juni 2004 Versjon: R. 1.01 Språk: Norsk Copyright 2004 - Talk Active - all rights reserved. Innhold: 1. INNLEDNING...2 2. HURTIGSTART...3 3. OPPBYGGINGEN

Detaljer

Gruppe 33 - Hovedprosjekt

Gruppe 33 - Hovedprosjekt Gruppe 33 - Hovedprosjekt s188080 Joakim Rishaug s181130 Sondre Sparby Boge s188098 Martin Hagen s178816 Lars Erik Kasin 1 av 7 Kravspesifikasjon Forord Kravspesifikasjonen utformes både for kunden, og

Detaljer

WordPress. Brukerveiledning. Kjære kunde. Innlogging:

WordPress. Brukerveiledning. Kjære kunde. Innlogging: Brukerveiledning WordPress Sist oppdatert: 26.02.2014 Kjære kunde Her er en liten guide for å hjelpe deg gjennom det grunnleggende i Wordpress. Denne veilederen vil ta deg gjennom: Innlogging - s.1 Kontrollpanel

Detaljer

Testrapport. Aker Surveillance. Gruppe 26. Hovedprosjekt ved Høgskolen i Oslo og Akershus. Oslo, 24.5.2013. Public 2013 Aker Solutions Page 1 of 5

Testrapport. Aker Surveillance. Gruppe 26. Hovedprosjekt ved Høgskolen i Oslo og Akershus. Oslo, 24.5.2013. Public 2013 Aker Solutions Page 1 of 5 Testrapport Aker Surveillance Gruppe 26 Hovedprosjekt ved Høgskolen i Oslo og Akershus Oslo, 24.5.2013 Public 2013 Aker Solutions Page 1 of 5 Innledning I denne rapporten vil vi skrive om testingen som

Detaljer

Nyheter i Office 2016 NYHETER, FUNKSJONER, FORKLARING

Nyheter i Office 2016 NYHETER, FUNKSJONER, FORKLARING Nyheter i Office 2016 NYHETER, FUNKSJONER, FORKLARING 1 Word 1.1 Gjør ting raskt med Fortell meg det Du vil legge merke til en tekstboks på båndet i Word 2016 med teksten Fortell meg hva du vil gjøre.

Detaljer

Slik lager du et web-område bestående av flere sammenhengende websider i. Frontpage 2003. Laget av Magnus Nohr Høgskolen i Østfold

Slik lager du et web-område bestående av flere sammenhengende websider i. Frontpage 2003. Laget av Magnus Nohr Høgskolen i Østfold Slik lager du et web-område bestående av flere sammenhengende websider i Frontpage 2003 Laget av Magnus Nohr Høgskolen i Østfold Innholdsfortegnelse 1 Opprett Web-område 3 2 Opprett en navigasjonsstruktur

Detaljer

Aktive hyller (Ref #1307884069102)

Aktive hyller (Ref #1307884069102) Aktive hyller (Ref #1307884069102) Søknadssum: 429600 Kategori: Ny formidling Varighet: Ettårig Opplysninger om søker Organisasjonsnavn / nr Deichmanske bibliotek / 992410213 Arne Garborgs plass 4 0179

Detaljer

- reklamebannere mobil og tablet

- reklamebannere mobil og tablet Spesifikasjoner - reklamebannere mobil og tablet FINN.no Versjon 2.4 Sist oppdatert 16.08.2013 1. Innhold Innhold Introduksjon Målsetning Spesifikasjoner HTML Fysisk størrelse 225 px* Eksempler Størrelser

Detaljer

HiOA TDK. Ingeniørfag data. DATS1600 Programutvikling. Eva Hadler Vihovde. Prosjektoppgaven 2015. - Prosessdokumentasjon - Alternativ 1

HiOA TDK. Ingeniørfag data. DATS1600 Programutvikling. Eva Hadler Vihovde. Prosjektoppgaven 2015. - Prosessdokumentasjon - Alternativ 1 HiOA TDK Ingeniørfag data DATS1600 Programutvikling Eva Hadler Vihovde Prosjektoppgaven 2015 - Prosessdokumentasjon - Alternativ 1 - Forsikring - Gruppe #14 Studentnavn Marius Alexander Skjolden Hans Christian

Detaljer

Huldt & Lillevik Ansattportal. Installere systemet

Huldt & Lillevik Ansattportal. Installere systemet Huldt & Lillevik Ansattportal Installere systemet Innholdsfortegnelse Innholdsfortegnelse Installere Ansattportal... 3 Tekniske krav (Windows og web)... 3 Servere og nettverk... 3.NET Rammeverk 3.5 må

Detaljer

Brukerveiledning. Kom i gang. publiseringsverktøy. versjon 7 - revidert 29.01.2014. Gevir IT Drift AS Webside: www.gevir.no.

Brukerveiledning. Kom i gang. publiseringsverktøy. versjon 7 - revidert 29.01.2014. Gevir IT Drift AS Webside: www.gevir.no. Brukerveiledning Kom i gang publiseringsverktøy versjon 7 - revidert 29.01.2014 Gevir IT Drift AS Webside: www.gevir.no Side 1 Velkommen som bruker av Kameleon Introduksjon Kameleon er et publiseringsverktøy

Detaljer

Brukerveiledning for hjemmesider

Brukerveiledning for hjemmesider Hegra Idrettslag Brukerveiledning for hjemmesider En kort innføring for bidragsytere på www.hegrail.no Ivar Friheim 2009-05-18 Innhold Innledning... 3 Nyheter... 3 Sider... 3 Kalenderinnslag... 3 Pålogging...

Detaljer

Testdokumentasjon. Testdokumentasjon Side 1

Testdokumentasjon. Testdokumentasjon Side 1 Testdokumentasjon Testdokumentasjon Side 1 1. Innledning Dette er en testrapport som er laget for å teste applikasjonene for ios og Android plattformer. Den vil være delt opp i 4 deler. Den første delen

Detaljer

360 emeetings. -Papirløse møter på ipad eller iphone

360 emeetings. -Papirløse møter på ipad eller iphone 360 emeetings -Papirløse møter på ipad eller iphone 360 emeetings for Apple ios 360 emeetings - en løsning med multitouch og et levende brukergrensesnitt. 360 emeetings hjelper deg og din virksomhet med

Detaljer

DIAGNOSERAPPORT. for. Dato:19122012 Utført av: Tommy Svendsen

DIAGNOSERAPPORT. for. Dato:19122012 Utført av: Tommy Svendsen DIAGNOSERAPPORT for Dato:19122012 Utført av: Tommy Svendsen Generell synlighet (pagerank) En god start er å sjekke den generelle synligheten på siden. Dette er en test som rangerer med utgangspunkt i hvor

Detaljer

Testrapport Prosjekt nr. 2011-22 Det Norske Veritas

Testrapport Prosjekt nr. 2011-22 Det Norske Veritas Prosjekt nr. 2011 22 Testrapport Hovedprosjektets tittel Implementering av plugin og utvikling av wizard for Det Norske Veritas Prosjektdeltakere Magnus Strand Nekstad s156159 Jørgen Rønbeck s135779 Dato

Detaljer

Om Traxway Conrivo registreringsløsning

Om Traxway Conrivo registreringsløsning Om Traxway Conrivo registreringsløsning Conrivo betyr «Samle» på latin. Conrivo er laget for å samle data og så analysere dem etterpå. Du finner en demoversjon ved å gå til http://www.traxway.com og så

Detaljer

BRUKERMANUAL FOR NETTINTRO CMS Dette dokumentet er skrevet for Nettintro CMS versjon 1.9.0, og kan derfor avvike noe fra nåværende versjon.

BRUKERMANUAL FOR NETTINTRO CMS Dette dokumentet er skrevet for Nettintro CMS versjon 1.9.0, og kan derfor avvike noe fra nåværende versjon. BRUKERMANUAL FOR NETTINTRO CMS Dette dokumentet er skrevet for Nettintro CMS versjon 1.9.0, og kan derfor avvike noe fra nåværende versjon. Denne brukermanualen vil gi deg en innføring i hvordan man bruker

Detaljer

RUTEPLANLEGGINGSSYSTEM BRUKERVEILEDNING

RUTEPLANLEGGINGSSYSTEM BRUKERVEILEDNING RUTEPLANLEGGINGSSYSTEM BRUKERVEILEDNING Prosjekt 18 Jørgen Mobekk Sørensen Morten Evje Tor Andreas Baakind Anders Gabrielsen Side 1 1 FORORD Dette dokumentet er brukerveiledningen, og skal være en veiledning

Detaljer

PROSESSDOKUMENTASJON

PROSESSDOKUMENTASJON PROSJEKT NR.: 10-30 Studieprogram: Anvendt Datateknologi Postadresse: Postboks 4 St. Olavs plass, 0130 Oslo Besøksadresse: Holbergs plass, Oslo TILGJENGELIGHET: Papir og elektronisk Telefon: 22 45 32 00

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.

Detaljer

Hovedprosjekt 2014, Høgskolen i Oslo og Akershus

Hovedprosjekt 2014, Høgskolen i Oslo og Akershus Forprosjektrapport Gruppe 2 Hovedprosjekt 2014, Høgskolen i Oslo og Akershus 1 INNHOLD 2 Presentasjon... 2 2.1 Gruppen medlemmer... 2 2.2 Oppgave... 2 2.3 Oppdragsgiver... 2 2.4 Veileder... 2 3 Sammendrag...

Detaljer

Brukermanual. Studentevalueringssystem

Brukermanual. Studentevalueringssystem Brukermanual Studentevalueringssystem 1 Forord 1.1 Forord Denne brukermanualen innholder beskrivelse av systemets funksjonalitet og introduserer systemet for brukeren. Brukermanualen er delt inn i tre

Detaljer

Debugging. Tore Berg Hansen, TISIP

Debugging. Tore Berg Hansen, TISIP Debugging Tore Berg Hansen, TISIP Innhold Innledning... 1 Å kompilere og bygge et program for debugging... 1 Når debugger er i gang... 2 Symbolene i verktøylinjen... 3 Start på nytt... 3 Stopp debugging...

Detaljer

Hurtigstart guide. Searchdaimon ES (Enterprise Server)

Hurtigstart guide. Searchdaimon ES (Enterprise Server) Hurtigstart guide Searchdaimon ES (Enterprise Server) Innholdsfortegnelse Informasjon før oppsett... 2 Koble til strøm og nettverk... 3 Oppsett av system... 3 Konfigurasjonsveiviser... 4 Sette fast IP

Detaljer

BACKUP HD SERIES BRUKERMANUAL

BACKUP HD SERIES BRUKERMANUAL BACKUP HD SERIES BRUKERMANUAL TUSEN TAKK for at du har kjøpt ClickFree Backup-enheten. Disse instruksjonene har blitt satt sammen for å hjelpe deg med å bruke produktet, men generelt håper vi at det er

Detaljer

Installasjonguide LAG DIN EGEN BRUKERKONTO

Installasjonguide LAG DIN EGEN BRUKERKONTO Installasjonguide LAG DIN EGEN BRUKERKONTO KONFIGURER MOT WI-FI MOTTA VIDEO-SAMTALE DEL TILGANG MED FLERE BRUKERE BEVEGELSE SENSOR CLOUD VIDEO OPPTAK KOSTNAD FOR CLOUD FEILSØKING LAG DIN EGEN BRUKERKONTO

Detaljer

Vedlegg Side 83 av 155

Vedlegg Side 83 av 155 4 Side 83 av 155 Innholdsfortegnelse 1 Kravspesifikasjon... 86 2 Kravspesifikasjon 2.0... 92 3 Domenemodell... 98 4 UseCase Diagram Oversikt... 102 6 Detaljert beskrivelse av UseCase Diagram... 106 Webapplikasjon...

Detaljer

KTN1 - Design av forbindelsesorientert protokoll

KTN1 - Design av forbindelsesorientert protokoll KTN1 - Design av forbindelsesorientert protokoll Beskrivelse av A1 A1 skal tilby en pålitelig, forbindelsesorientert tjeneste over en upålitelig, forbindelsesløs tjeneste A2. Det er flere ting A1 må implementere

Detaljer

I ÅS FORSLAG TIL LØSNING

I ÅS FORSLAG TIL LØSNING epolitiker I ÅS FORSLAG TIL LØSNING Det finnes noen få løsninger i dag som gir politikerne mulighet til å få tilgang til ferdige nedlastede dokumenter, kommentere i utvalgsdokumenter, lagring i sky etc.

Detaljer

360 eworker. Appen som gjør det enda enklere å jobbe i 360 - Saksbehandling og dokumenthåndtering fra ipad

360 eworker. Appen som gjør det enda enklere å jobbe i 360 - Saksbehandling og dokumenthåndtering fra ipad 360 eworker Appen som gjør det enda enklere å jobbe i 360 - Saksbehandling og dokumenthåndtering fra ipad 360 eworker - Appen som gjør det enda enklere å jobbe i 360 Jobb med saksbehandlingsoppgaver, dokumenter

Detaljer

Brukerveiledning. for 3nets tjenester

Brukerveiledning. for 3nets tjenester Brukerveiledning for 3nets tjenester Tilkobling fibersentralen...side 2 Oppsett av Internett...side 4 Oppsett internett på ruter...side 4 Oppsett av epost- Outlook...side 7 Get TV App...side 8 Kanalvalg

Detaljer

Forprosjektrapport. Presentasjon. Sammendrag. Tittel Informasjonsplatform for NorgesGruppen

Forprosjektrapport. Presentasjon. Sammendrag. Tittel Informasjonsplatform for NorgesGruppen Forprosjektrapport Presentasjon Tittel Informasjonsplatform for NorgesGruppen Oppgave Utvikle en informasjonsplatform for butikkene i NorgesGruppen Periode 3. Januar 14. Juni Gruppemedlemmer Joakim Sjögren

Detaljer

Publiseringsløsning for internettsider

Publiseringsløsning for internettsider Publiseringsløsning for internettsider Hva er Edit? Edit er et verktøy for publisering og vedlikehold av nettsider. Tidligere har det å vedlikeholde en nettside vært en tungvinn prosess, men nå kan alle

Detaljer

Bruksanvisning for publisering med ez publish 3.7.5

Bruksanvisning for publisering med ez publish 3.7.5 Bruksanvisning for publisering med ez publish 3.7.5 Bakgrunn for oppgraderingen Norsk Fysioterapeutforbund har oppgradert nettstedet www.fysio.no. Det er gått over tre år siden NFF lagde det nåværende

Detaljer

WWW.POLARPRODUKSJON.NO

WWW.POLARPRODUKSJON.NO GUIDE RSHL.NO Av Fredrik Mediå Oppgraderingen av nettstedet RSHL.NO har ført til at det kan oppstå en del spørsmål og forvirringer rundt hvordan forskjellige elementer fungerer. Denne guiden skal fungere

Detaljer

IT-HJELP/ IT.UIB.NO Hvordan bidra med informasjon til IT-avdelingens hjemmesider (En innføring)

IT-HJELP/ IT.UIB.NO Hvordan bidra med informasjon til IT-avdelingens hjemmesider (En innføring) IT-HJELP/ IT.UIB.NO Hvordan bidra med informasjon til IT-avdelingens hjemmesider (En innføring) IT-avdelingen, UiB 14.10.2010 Innhold Innhold... 2 Kort om IT-hjelp (utdrag fra https://it.uib.no/om_it-hjelp)...

Detaljer

Humanware. Trekker Breeze versjon 2.0.0.

Humanware. Trekker Breeze versjon 2.0.0. Humanware Trekker Breeze versjon 2.0.0. Humanware er stolte av å kunne introdusere versjon 2.0 av Trekker Breeze talende GPS. Denne oppgraderingen er gratis for alle Trekker Breeze brukere. Programmet

Detaljer

Læreplan i informasjonsteknologi - programfag i studiespesialiserende utdanningsprogram

Læreplan i informasjonsteknologi - programfag i studiespesialiserende utdanningsprogram Læreplan i informasjonsteknologi - programfag i studiespesialiserende utdanningsprogram Fastsatt som forskrift av Utdanningsdirektoratet 3. april 2006 etter delegasjon i brev 26. september 2005 fra Utdannings-

Detaljer

Compello Invoice Approval

Compello Invoice Approval Compello Invoice Approval Godkjenning Webmodul brukerdokumentasjon Nettbrett og desktop via nettleser Index 1 Innledning... 3 2 Funksjonalitet... 4 Nettbrett og desktop via nettleser... 4 2.1.1 Desktop

Detaljer

Bytte til OneNote 2010

Bytte til OneNote 2010 I denne veiledningen Microsoft OneNote 2010 ser helt annerledes ut enn OneNote 2007, så vi har laget denne veiledningen for å gjøre det så enkelt som mulig for deg å lære forskjellene. Les videre for å

Detaljer

Forprosjektrapport. Feilsøkingsverktøy for Homebase AS INNHOLD

Forprosjektrapport. Feilsøkingsverktøy for Homebase AS INNHOLD Forprosjektrapport Feilsøkingsverktøy for Homebase AS INNHOLD Presentasjon Sammendrag Om bedriften Dagens situasjon Mål og rammebetingelser Funksjonelle krav: Ikke-funksjonelle krav: Løsninger Analyse

Detaljer

Steg 1: Installasjon. Steg 2: Installasjon av programvare. ved nettverkstilkoblingen på baksiden av kameraet. Kameraet vil rotere og tilte automatisk.

Steg 1: Installasjon. Steg 2: Installasjon av programvare. ved nettverkstilkoblingen på baksiden av kameraet. Kameraet vil rotere og tilte automatisk. Innhold Steg 1: Installasjon... 3 Steg 2: Installasjon av programvare... 3 Steg 3. Oppsett av wifi, email varsling og alarm... 5 Steg 4: Installasjon og oppsett av mobil app... 8 Steg 5: Installasjon og

Detaljer

DEN NYE TV-OPPLEVELSEN

DEN NYE TV-OPPLEVELSEN DEN NYE TV-OPPLEVELSEN SE TV SOM FØR Finn tv-kanal s. 8 Pause, spole og opptak s. 9 Guide s. 10 Miniguide og programmeny s. 11 Favorittkanaler s. 20 NYHETER Start forfra s. 12 Reprise s. 13 Profiler s.

Detaljer

Samarbeidsløsning for FHS, Teknisk info

Samarbeidsløsning for FHS, Teknisk info Samarbeidsløsning for FHS, Teknisk info 1. Kontorstøtte Samarbeidsløsningen som FHS-kontorene har etterspurt må forholde seg til kontorstøttesystemer, e-post, kalender og kontakter. Dette har egentlig

Detaljer

MyLocator2 Brukermanual v1.6 (20.08.2013) Utdrag av vlocpro2/vlocml2 brukermanual

MyLocator2 Brukermanual v1.6 (20.08.2013) Utdrag av vlocpro2/vlocml2 brukermanual MyLocator2 Brukermanual v1.6 (20.08.2013) Utdrag av vlocpro2/vlocml2 brukermanual 5.1 MyLocator2 MyLocator2 konfigurasjons verktøyet er en programpakke som tillater brukeren å konfigurere vloc 2. generasjons

Detaljer

Brukerdokumentasjon for LabOra portal - forfattere

Brukerdokumentasjon for LabOra portal - forfattere Brukerdokumentasjon for LabOra portal - forfattere Skin: Dnnbest-Grey-Skin1024 Skin: Metro7 Custom LabOra web-portal er et web-basert publiseringsprogram for publisering av informasjon på hjemmesider.

Detaljer

Forprosjektrapport MetaView

Forprosjektrapport MetaView Forprosjektrapport MetaView BACHELOROPPGAVE VÅREN 2014 Presentasjon Tittel: MetaView Oppgave: Utvikle en Windows 8 applikasjon som skal forenkle en liten del av MetaVision. Et verktøy for sykehus, leger

Detaljer

Brukerveiledning - Innføring i nettsteder bygget på Cornerstone-plattformen. By Jon-Yngve Skjeltorp Bakke 21.02.2009

Brukerveiledning - Innføring i nettsteder bygget på Cornerstone-plattformen. By Jon-Yngve Skjeltorp Bakke 21.02.2009 Brukerveiledning - Innføring i nettsteder bygget på Cornerstone-plattformen By Jon-Yngve Skjeltorp Bakke 21.02.2009 Om denne brukerveiledningen Velkommen til denne brukerveiledningen for nettsteder som

Detaljer

HOVEDPROSJEKT. Windows Phone 7 TV-Guide. TV-Guide. Windows Phone 7. App

HOVEDPROSJEKT. Windows Phone 7 TV-Guide. TV-Guide. Windows Phone 7. App PROSJEKT NR. 2012-39 Studieprogram: Informasjonsteknologi Postadresse: Postboks 4 St. Olavs plass, 0130 Oslo Besøksadresse: Holbergs plass, Oslo TILGJENGELIGHET Lukket Telefon: 22 45 32 00 Telefaks: 22

Detaljer

Wordpress. Kurs Kristiansand Folkebibliotek

Wordpress. Kurs Kristiansand Folkebibliotek Wordpress Kurs Kristiansand Folkebibliotek Innhold Forord... 2 Bruksområde for blogger... 2 Hva er WordPress?... 2 Hvorfor Wordpress?... 2 Sett opp blogg i WordPress... 3 Populære blogge tjenester:...

Detaljer

ZoomText 10.1 Tillegg for Hurtig Referanser

ZoomText 10.1 Tillegg for Hurtig Referanser ZoomText 10.1 Tillegg for Hurtig Referanser Dette tillegget til ZoomText 10 Hurtigreferanse dekker de nye funksjonene og andre endringer som er spesifikke for ZoomText 10.1. For full instruksjoner om installasjon

Detaljer

Mobil Feltdagbok. Hvordan effektivisere en oppsynsmanns datafangst i felten med smarttelefon som har GPS stedfesting

Mobil Feltdagbok. Hvordan effektivisere en oppsynsmanns datafangst i felten med smarttelefon som har GPS stedfesting Mobil Feltdagbok Hvordan effektivisere en oppsynsmanns datafangst i felten med smarttelefon som har GPS stedfesting Vårt utgangspunkt Interaksjonsdesignere mest web/applikasjoner Ønsket å lære mer om hvordan

Detaljer

Brother Image Viewer-veiledning for Android

Brother Image Viewer-veiledning for Android Brother Image Viewer-veiledning for Android Version 0 NOR Definisjoner av merknader Vi bruker det følgende ikonet i denne brukermanualen: MERK Merknader forteller hvordan du bør reagere på en situasjon

Detaljer

Hurtigveiledning for «PLEXTALK Pocket» online spiller

Hurtigveiledning for «PLEXTALK Pocket» online spiller Hurtigveiledning for «PLEXTALK Pocket» online spiller 1 Innstilling av PLEXTALK Pocket 1. Vend PLEXTALK Pocket. Sjekk at for at toppen av spilleren er opp evt fra deg hvis du holder den vannrett. Trykk

Detaljer

Google Cloud Print-guide

Google Cloud Print-guide Google Cloud Print-guide Versjon 0 NOR Merknadsdefinisjoner Vi bruker følgende merknadsstil gjennom hele denne brukermanualen: Merknadene forteller deg hvordan du reagerer på situasjoner som kan oppstå,

Detaljer

Testrapport. Studentevalueringssystem

Testrapport. Studentevalueringssystem Testrapport Studentevalueringssystem 1 Forord 1.2 Forord Dette prosjektet er et hovedprosjekt i data ved Høgskolen i Oslo, avdeling for ingeniørutdanning, og gjennomføres i samarbeid med Ingeniøravdeling

Detaljer

Kravspesifikasjon. Vedlegg A

Kravspesifikasjon. Vedlegg A Vedlegg A Kravspesifikasjon Dette dokumentet beskriver krav til applikasjonen som skal designes i prosjektet Nettverksbasert applikasjonsovervåking. Det beskrives her både krav til selve applikasjonen

Detaljer