Språkhantering för webbplatser med internationellt innehåll

Storlek: px
Starta visningen från sidan:

Download "Språkhantering för webbplatser med internationellt innehåll"

Transkript

1 Examensarbete 20 poäng D-nivå vid Örebro universitet Språkhantering för webbplatser med internationellt innehåll Reg.kod: Oru-Te-EXA089-D102/06 Peter Bergqvist Dataingenjörsprogrammet 160 p Örebro höstterminen 2007 Examinator: Lars Karlsson LANGUAGE MANAGEMENT ON A WEBSITE WITH MULTINATIONAL CONTENT Örebro universitet Örebro University Institutionen för teknik Department of Technology Örebro SE Örebro, Sweden

2 SAMMANFATTNING E-man AB har i dagsläget en webbplats som kan presentera innehållet på flera språk. Dock har det nuvarande systemet inget enkelt sätt att uppdatera webbplatsens innehåll. Önskan från E-man var att skapa ett administrationsgränssnitt så att administratörer och översättare kan uppdatera innehållet, samt att integrera den publika webbplatsen mot administrationsverktyget. Jag byggde ett system från grunden som baserats på Microsofts.Net-teknologi och databasen SQL Server Översättningsfunktionen bygger på att sidorna på den publika webbplatsen innehåller koder för de texter som skall bytas ut mot översatt innehåll. Applikationen försöker hämta den översatta texten från en cache på webbservern för att applikationen då kan undvika att kontakta databasen. I de fall där texten inte finns i cachen så kontaktar systemet databasen för att hämta det översatta innehållet. Processen med cache förbättrar systemets prestanda och tillåter därmed flera besökare. Var 30:e minut identifierar systemet de texter som har blivit ändrade via administrationsgränssnittet och plockar bort dessa från cachen. Det uppdaterade innehållet hämtas sedan vid första visningen och lagras också i cachen. För att undvika åtkomst för obehöriga har ett inloggningsförfarande införts till administrationsgränssnittet. ABSTRACT The contents of this report will describe the application I implemented for e-man ltd during the fall semester of The report is a part of the masters program in computer science at the University of Örebro. The current version of e-man s homepage supports contents in multiple languages, though there s no easy way for the administrators or translators to keep the content up to date. e-mans desire was to create an administration interface that would enable easy updates, and also to integrate the administration interface with the public webpage where the content should be presented. I built the system using Microsoft s.net-technology and the application relies on a SQL Server 2005 database for the content. The translation service is based on that the pages on the public homepage contain special codes that are used to identify which texts that should be replaced by translated content. The application will first attempt to find a translated value in the web-server cache, in order to avoid the much slower database. The text is retrieved from the database only in the event where the cache does not hold the text. The cache improves the over-all performance of the site and enables the site to allow more visitors. A log-in procedure was implemented to avoid unauthorized access to the administration area. Nyckelord: ASP.Net, Språköversättning, Enterprise Library, Cache-hantering, Enhetstester, Databaser, Lagrade procedurer, Reguljära uttryck, Generics ii

3 FÖRORD Arbetet pågick under hösten 2006 och rapporten är skriven som en delkurs på Magisterprogrammet för datateknik vid Örebro universitet. Arbetet utfördes på företaget E-man AB i Örebro. Jag vill passa på att tacka alla anställda på E-man AB för det vänliga bemötandet och de tips jag fått vid utvecklingen. Örebro universitet genom Lars Karlsson skall ha ett tack för att de tillät mig skriva examensarbetet helt fristående och jag vill rikta ett speciellt tack till min handledare Christer Lindkvist som tog över handledarrollen och tog sig tid att hjälpa mig med rapporten trots andra åtaganden. Örebro den Peter Bergqvist iii

4 INNEHÅLLSFÖRTECKNING FÖRORD... III LISTA AV ILLUSTRATIONER... 7 FIGURFÖRTECKNING... 7 TABELLFÖRTECKNING INLEDNING FÖRETAGET E-MAN AB OM DOKUMENTET BAKGRUND Innehållshantering Existerande system Administrering PROBLEMBESKRIVNING GRUNDKRAV Mål för språkmotorn och demonstrationswebbplatsen Mål för administrationsgränssnittet ARBETSGÅNG Kravinsamling och systemdesign Implementering av systemet Test och dokumentation METODER OCH VERKTYG VERKTYG PROJEKTSTRUKTUR Presentationslager Kontrollager Modellagret CSS-BASERAD DESIGN GENOMFÖRANDE KRAVINSAMLING Användarfall Skrivna användarfall PROJEKTDESIGN Uppdatering och underhåll Projektet CacheHelper Projektet DatabaseHelper Projektet TranslationManagementAdminArea Projektet TranslationManagementWeb Projektet TranslationManagement.Admin Projektet TranslationManagement.Authentication Projektet TranslationManagement.Globalization Projektet TranslationManagement.LanguageHandling Projektet TranslationManagement.WebUtilities UnitTest -katalogen HUR ÖVERSÄTTNINGSKRAVEN ÄR UPPFYLLDA Hämta text från databas Identifiera koder Ersätta koden Flödesschema HUR SPRÅKHANTERINGENS GRUNDKRAV ÄR UPPFYLLDA Språk Hämta användarens önskade språk...22 iv

5 3.4.3 Visa aktiva språk HUR ADMINISTRATIONSVERKTYGETS GRUNDKRAV ÄR UPPFYLLDA Inloggning Användarmenyn Uppdatera texter Demonstration av administrationsverktyget Språkadministrering DATABASEN TranslationManagement Lagrade procedurer LEVERANSFÖRFARANDE Kodbasen Databasen UTBYGGNAD Ärva TranslationManagement.Globilization.Translate Underlätta underhåll LÖSNINGSMETODER KOMMENTARER KRING KODEN Gemensam basklass Generics Gränssnitt MICROSOFT ENTERPRISE LIBRARY Caching Application Block Database Application Block MICROSOFT AJAX.NET AJAX Partiell rendering ENHETSTESTER OCH TDD NUnit Mock object Test Driven Development NCover KODANALYS FxCop Ants Profiler SLUTSATSER RESULTAT Grundkrav språkhantering Grundkrav administrationsgränssnitt JÄMFÖRELSE MED TREDJEPART Inbyggd resurshantering i Microsoft.Net EPiServer CMS Sammanfattning DISKUSSION FÖRSLAG TILL FÖRBÄTTRINGAR REFERENSER BÖCKER INTERNET ÖVRIGT TERMINOLOGI APPENDIX...46 v

6 8.1 APPENDIX A: DATABASEN Schema: Översättning Schema: Administrationsverktyg Lagrade procedurer Databasens tabeller APPENDIX B: KLASSDIAGRAM Administrationsgränssnitt Språkmotorn APPENDIX C: ANVÄNDARFALL - ADMINISTRATIONSGRÄNSSNITT Inloggning Förstasida Hämta text Uppdatera text Spara ny text Editera ett existerande språk Lägga till språk Lägga till textkategori Ta bort textkategori APPENDIX D: ANVÄNDARFALL - SPRÅKMOTORN Översättning av en fras Hämta text via kod APPENDIX E: ANVÄNDARFALL - ÖVRIGA Hämta aktiva språk Hämta lokal-information från besökaren APPENDIX F: FÅNGADE FEL AV FXCOP APPENDIX G: LADDNINGSTIDER...58 vi

7 LISTA AV ILLUSTRATIONER Figurförteckning Figur 1: Alla projekten i lösningen Figur 2: Ett flödesschema som visar vilka steg en sida på webbplatsen går igenom Figur 3: Visar en skärmbild där en text ska översättas Figur 4: Presentationsvy i administrationsverktyget Figur 5: Vyn "Översätt text" Figur 6: Välj text att översätta Figur 7: Nya översättningen presenteras på webbsidan Figur 8: Visar basstrukturen och innehållet i en MasterPage Figur 9: Innehållet på denna sida baseras på masterpage-filen i figur två Figur 10: En skärmdump när NUnit körs från Visual Studio Figur 11: En skärmbild över hur fuktionen GetTranslationManagementDB exekverats Figur 12: Relationerna mellan de olika tabellerna som utgör översättningshanteringen Figur 13: Relationerna mellan de olika tabeller som utgör administrationsverktyget Figur 14: Funktioner för att logga in och för att rita upp menyer Figur 15: Kategorihanterigen listar, lägger till och tar bort kategorier Figur 16: Interfacet ITextCategory beskriver en textkategori Figur 17: Interfacet IUserInfo beskriver en användare i administrationsverktyget Figur 18: Interfacet IAdminMenuItem beskriver ett val i administrationsverktyget Figur 19: Interfacet IRole beskriver en användarroll i administrationsverktyget Figur 20: Funktioner för hantering av språk Figur 21: Funktioner för hantering av texter Figur 22: Interfacet ILanguageInfo beskriver ett språk Figur 23: Interfacet ITextValueInfo beskriver en text Figur 24: Klassen Translation sköter översättning av texterna

8 Tabellförteckning Tabell 1: Sammanfattning och kort beskrivning över alla utformade användarfall Tabell 2: Översikt över användargruppernas behörigheter i administrationsverktyget Tabell 3: En sammanställning over de funktionerna som tog längst tid att exekvera Tabell 4: Innehåller en sammanställning över de termer som använts i rapporten Tabell 5: Beskriver de lagrade procedurer som är relaterade till inloggning och användare Tabell 6: Lagrade procedurer som hanterar texter och textkategorier Tabell 7: Lagrade procedurer som ansvarar för språkhanteringen Tabell 8: Webbplatsens alla texter finns sparade i tabellen Text Tabell 9: Tabellen TextCategory innehåller alla kategorier en text kan tillhöra Tabell 10: Tabellen Language innehåller alla språk som webbplatsen kan visa Tabell 11: Tabellen AdminUser innehåller användare som har tillgång till verktyget Tabell 12: Tabellen UserRole definierar administrationsgränssnittets olika roller Tabell 13: Tabellen AdminFunction innehåller de olika funktioner man kan utföra i administrationsgränssnittet Tabell 14: Tabellen RoleFunctionAccess är en kopplingstabell mellan UserRole och AdminFunction Tabell 15: De mest frekvent förekommande felen enligt FxCop Tabell 16: Tider (i ticks) för att ladda ett urval av de olika texterna på framsidan Tabell 17: Tiderna visar hur tiden varierar vid de tre första laddningarna av svenska texter

9 9 Inledning 1 INLEDNING Detta kapitel tar upp varför denna rapport skrivits och beskriver de grundläggande kraven som specificerades inför projektets start. 1.1 Företaget E-man AB E-man AB grundades på våren år 2000 av en liten grupp konsulter med det gemensamt att de alla har lång erfarenhet inom konsultverksamhet. Idag har företaget ca 35 anställda utspridda över fyra orter i Sverige. Huvudkontoret är beläget i Örebro, men E-man har även kontor i Västerås, Göteborg och nu senast i Stockholm. Grundidén är att erbjuda företag eller organisationer konsulttjänster från konsulter med lång branscherfarenhet och bred kunskap. E-man kan erbjuda specialistkompetens inom applikationsförvaltning, utveckling och systemintegration. 1.2 Om dokumentet Denna rapport riktar sig främst till personer med grundläggande kunskap inom webbutveckling och intresse för onlinebaserade projekt. Stort fokus riktas mot den tekniska lösningen av projektet. Därför bör läsaren ha kännedom om, framförallt Microsofts, olika teknologier för webbutveckling och programvara relaterat till onlinebaserade system. Inledande förklaringar finns skrivna till vissa nyare tekniker. För mer detaljerade beskrivningar hänvisar jag till referenslistan som innehåller de webbplatser och böcker där jag inhämtat information. 1.3 Bakgrund Efter ungefär ett år med en hemsida med ett visst språkstöd, men med ett undermåligt verktyg för att redigera och lägga in nya texter, så har E-man AB insett att de behöver förbättra situationen. Framförallt ville företaget komma ifrån att en anställd var tvungen att ta tid från sitt jobb för att sköta uppdateringen av översatt material. Istället vill man låta en översättare få direkt tillgång till att ändra i webbplatsens innehåll. För att minska extrajobbet vid förändringar på webbplatsen så önskar E-man gå över till MasterPage-konceptet som introducerades i Asp.Net Innehållshantering Att hålla webbplatsens innehåll uppdaterat och felfritt är oerhört viktigt för företag, dels för att göra ett seriöst intryck mot kunder men även ur ett sökmotorperspektiv. Att optimera sin webbplats för att få en bra placering i sökresultat kan generera betydande affärer. En uppdaterad webbplats är en förutsättning för en bra ranking 1. Att underlätta arbetet för att uppdatera och lägga till innehåll var därför den stora utmaningen. Samtidigt som företaget vill låta extern personal sköta översättning och redigering av texterna, vill man kunna begränsa vad de olika användarna får se och vilket innehåll de har rättighet att ändra. Krav på autentisering av användaren och rättighetshantering krävs därför. Till skillnad från ett komplett system för innehållshantering för en webbplats ligger fokus för denna rapport på redigering av texter. Det finns inga funktioner för 1 Denna fras, och efterföljande fraser i fetstil, definieras i terminologisektionen på sidan 44. 9

10 10 Inledning att skapa nya/ta bort befintliga sidor eller publiceringsfunktioner, t.ex. att sätta tider då en sida ska vara synlig Existerande system I det existerande systemet består översättningshanteringen av en funktion som listar vilka språk som finns tillgängliga och för varje sida på webbplatsen listas en länk som pekar mot en sida med översatt innehåll. När användaren är på förstasidan och den visas på det svenska språket är adressen till sidan /default.aspx. Skulle användaren vilja byta till det finska språket skulle han gå till /fin/default.aspx och engelska /eng/default.asp. För varje sida låg sedan innehållet statiskt direkt i aspx-sidan och det fanns då en uppsättning av den sidan för varje språk som webbplatsen stödde. Dessutom byggdes webbplatsen på den äldre versionen Asp.Net 1.1 som saknar MasterPages. Vill man då göra en designändring som är generell för webbplatsen så måste alla sidor på alla språk gås igenom; det kan handla om så mycket som 40 sidor. Detta var onödigt extraarbete som E-man ville undvika. Den existerande lösningen är en fullt fungerande implementation, men den leder till mångdubbelt arbete vid ändringar av innehållet. Dessutom behövs en resurs från E-man som lägger in texter som översättare tillhandahåller, då översättare inte har direkt tillgång till filerna på grund av företagets säkerhetspolicy Administrering För att förbättra och göra webbplatsen tillgänglig för ytterligare besökare, som inte behärskar de språk som finns tillgängliga, behövs ett fungerande administrationsverktyg. Verktyget tillhandahåller sedan funktioner för utbyggnad och uppdatering av webbplatsen. Som exempel på vad verktyget skall klara av kan nämnas att korrigera texter, lägga in nya texter, men även lansera helt nya språk. Ett verktyg skulle därför införas för att tillgodose dessa krav. Till ett administrationsverktyg tillkommer även grundläggande behov som autentisering och rättighetshantering. Verktygets alla användare som har tillgång till verktyget kan inte få tillgång till alla dess funktioner då oerfarna användare av misstag kan ta bort viktiga funktioner eller att hemligt innehåll läcker ut. 1.4 Problembeskrivning E-mans hemsida har under åren genomgått ett antal uppgraderingar och designförbättringar. I den senaste stora uppgraderingen fick webbplatsen stöd att visa innehållet på flera språk (svenska, engelska och finska). Av någon anledning infördes det aldrig något administrationsgränssnitt, vilket innebar en krånglig och komplicerad process för uppdateringar. Uppdateringar krävde ofta direkt tillgång till aspx-filen. Den samlade problematiken resulterade i att endast den svenska versionen blivit uppdaterad med nytt innehåll. För att minska extrajobbet vid förändringar på webbplatsen så önskar E-man gå över till ett administrationsverktyg för att ändra texter och översättningar på webbplatsen. 10

11 11 Inledning 1.5 Grundkrav Innan projektet startade sammanställdes en lista över punkter som skulle tilldelas extra fokus. Den listan låg sedan till grund för kravdokumenten som skrevs i den inledande perioden för specifikation. En ordentlig kravinsamling utfördes för att identifiera behoven, samt skriva användarfall och skapa klassdiagram som bas för kod och databasdiagram Mål för språkmotorn och demonstrationswebbplatsen Här följer de mål som sattes upp innan projektets start: - Alla typer av texter ska vara översättningsbara: sidtitlar, metadata och längre innehåll. - Presentera ett stort antal språk (låta användaren välja språk) - Presentera texter i alla större teckenuppsättningar. - Systemet skall använda så mycket information som möjligt av de data som användaren lämnar ut för att identifiera vilket språk som sidan skall presenteras på Mål för administrationsgränssnittet - Alla texter som presenteras på webbplatsen ska vara administrerbara. - Inloggning till systemet sker via formulär. Inloggningsuppgifter sparas i databasen för systemet. - Systemet ska kunna hantera att falla tillbaka till ett förvalt språk. Vid de tillfällen då en användares språk inte stöds skall systemet falla tillbaka till bäst applicerbara språk. Detta sköts via administrationsgränssnittet. - Administrationsgränssnittet skall använda minimalt antal omladdningar. Tekniken som gör detta möjligt sker via AJAX och Microsofts ramverk Atlas. En diskussion om framtida förbättringar finns i kapitlet slutsatser på sidan Arbetsgång För att på bättre struktur på projektgenomförandet valde jag att dela upp arbetet enligt följande delmoment: kravinsamling, implementation och dokumentering som presenteras i följande kapitel Kravinsamling och systemdesign I inledningen av projektet så sammanställde jag alla önskemål och krav som kunden (i detta fall E-man AB) vill ha för webbplatsen. Mer om kravinsamlingen se kapitel 3.1 Kravinsamling. Leverabler från detta delmoment inkluderar ett förstudiedokument, en databasmodell och ett klassdiagram. Efter kravinsamligen var klar så gjordes design av projektstrukturen samt databas och källkod. Klass- och databasdiagramen som producerades är bifogade i Appendix A: Databasen och Appendix B: Klassdiagram. Under denna period bestämde jag även vilka tekniker och vilken miljö jag skulle använda mig av vid utvecklingen; mer om detta i kapitlet Metoder och verktyg på sidan

12 12 Inledning Implementering av systemet Efter den inledande specifikationen var godkänd och designen av webbplatsens grund var klar så följde implementeringen, dvs. skriva kod. Till stöd för utvecklingen hade jag den sammansatta listan av användarfall och klassdiagram, men innan jag startade med kodningen tog jag mig tid att ordentligt läsa på om de tekniker jag hade bestämt mig för att använda. Efter förberedelserna gick det sedan enkelt att komma igång med kodningen. Jag sorterade upp användarfallen efter hur pass viktiga de var för systemets grundläggande funktioner och efter det så betade jag av dem en efter en Test och dokumentation Utvecklingsmetodiken jag följde när jag skrev webbplatsens kod var Test Driven Development. Denna utvecklingsmetod innebär att innan man skriver kod för t.ex. en funktion så fastställs vad som behöver testas i funktionen, och skriver kod för testet. När testet är klart implementeras funktionen (mer om detta i kapitel Enhetstester och TDD). Att skriva tester innan implementationskoden gjorde att antalet kodfel hölls på en låg nivå och jag kunde inrikta arbetet på nya funktioner istället för att leta och rätta fel. Relativt tidigt under projektet, redan innan implementationen startat, påbörjade jag arbetet med att designa dokumentet som skulle ligga till grund för denna rapport. Under arbetets gång kunde jag sedan fylla på allteftersom projektet pågick. 12

13 13 Metoder och verktyg 2 METODER OCH VERKTYG 2.1 Verktyg Dessa tekniker fanns som krav att systemet skulle utvecklas i: - Utvecklat i ASP.NET Programmeringsspråk: C# - Atlas för AJAX stöd - Systemet skall bygga på databasen SQL Server Webbplatsen körs på IIS - Enhetstester via NUnit Utvecklingen av språkmotorn och administrationsgränssnittet skedde i utvecklingsmiljön Visual Studio Utvecklingsmetoden Test Driven Development användes med framgång under stora delat av projektet. Under projektets gång lanserade Microsoft SQL Server 2005 Express, vilket är en gratisvariant av deras serverprogramvara för frågespråket SQL (Begg & Connolly, 2002). Jag valde då att gå över till denna nyare programvara. Dessutom så gick AJAX ramverket från alfa-stadie till beta-stadie och bytte under det skiftet namn från Atlas till Ajax.Net. Även denna uppdatering valde jag att installera. 2.2 Projektstruktur För de ingående projekten är koden för både webbplatsen och administrationsverktyget uppdelade enligt principen för designmönstret MVC (Model, View, Controller). Designmönstret beskriver hur ett projekt ska delas upp i tre lager: ett presentationslager, ett kontrollager och ett modellager. Kontrollagret svarar på interaktioner/anrop från användaren som utförs i presentationslagret. Modellagret används för att agera förvaringskälla för tänkbar data Presentationslager I detta projekt representeras presentationslagret av det gränssnitt som besökaren ser, både i administrationsverktyget och i den publika webbplatsen Kontrollager Till skillnad från traditionell 3-skitks arkitektur har detta projekt inget affärslager som sköter affärslogiken. Kontrollagret agerar endast som ett mellanlager som sköter kontakten mellan presentationslagret och modellagret. Jag har valt att i fortsättningen kalla detta lager för fasadlagret då det bättre passar in i detta sammanhang. Fasadlager är inte alls beroende av vilken sorts datakälla som används i modellagret. Kan modellagret returnera de datatyper som fasadlagret förväntar sig så kan valfri datakälla användas Modellagret Modellagret representeras i detta projekt av databasen och de klasser som används för att kommunicera med databasen. I största möjliga mån har jag försökt att enbart använda de primitiva datatyperna (int, string osv.) i detta lager. Detta lager kommer fortsättningen benämnas som databaslager. 13

14 14 Metoder och verktyg 2.3 CSS-baserad design En CSS-baserad design bygger på att alla direktiv om hur en sida skall renderas, dvs. vilka element som ska ligga vart och vilket utseende de skall få, ska ligga i en CSSfil. Html-filen skall endast skriva ut innehållet; det är sedan upp till CSS-filen att sätta design. Fördelarna är många: - Man kan återanvända design över flera sidor. - All design finns på ett ställe, man undviker upprepade instruktioner. - HTML-filerna blir mindre, ett företag kan spara pengar på minskade kostnader på grund av onödig data som skickas. Då CSS filen lagras hos användaren så behöver filen bara skickas en gång. - Designändringar förenklas då man enbart behöver ändra på ett ställe. 14

15 15 Genomförande 3 GENOMFÖRANDE Målet för projektet var att förenkla och förbättra processen kring översättning och innehållshantering av E-mans hemsida. Jag valde att från grunden skapa ett administrationsgränssnitt som både är specialskrivet för E-mans hemsida men även så pass generellt att det går att anpassa till andra typer av applikationer. Samtidigt behövde bakgrundskoden för E-mans publika hemsida skrivas om så att den integrerar mot applikationsverktyget. I samband med omstruktureringen av den publika webbplatsen valde vi att designa om strukturen för att komma ifrån mycket av kringarbetet. Dock ser sidan precis likadan ut som tidigare. 3.1 Kravinsamling Följande kapitel kommer att beskriva hur kraven specificerades och hur specifikationen användes av mig som utvecklare. Kravinsamling görs för att specificera vilken funktionalitet som ett system skall ha för projektet ska anses vara färdigt Användarfall Ett användarfall beskriver ett flöde som en användare kan utföra i ett system eller i en applikation. Fallen är vanligtvis skrivna i beskrivande textform, men man kan även skriva/rita dem i diagramform. I större applikationer begränsar man ofta användarfallen genom att kräva att ett system ska befinna sig i ett visst tillstånd då fallet startar. Ett användarfall kan anses klart då det har åstadkommit vad som specificerats, eller då applikationen befinner sig ett specificerat sluttillstånd Skrivna användarfall Denna sektion kommer att kort nämna vilka användarfall som skrevs och ge en kort beskrivning av dess betydelse. De fullständiga användarfallen finns bifogade i Appendix C: Användarfall med start på sidan 53. De fallen är mer detaljerade vad det gäller vad som skall utföras för att anse fallet som avklarat. Namn Beskrivning Administrationsgränssnitt Inloggning Förstasida Hämta text Uppdatera text Spara ny text För att få använda administrationsgränssnittet krävs att användaren loggar in på systemet. Den första sidan som användaren kommer till skall presentera möjliga delar/funktioner som den inloggade användaren har tillgång till. Användarfallet beskriver hur en användare navigerar i listor och väljer den text som skall översättas. Texten presenteras i en textruta. Detta fall beskriver hur en vald text uppdateras. Detta fall beskriver hur en ny text lagras i systemet. 15

16 16 Genomförande Editera ett existerande språk Lägga till ett språk Lägga till en textkategori Ta bort textkategori Detta användarfall behandlar hur man uppdaterar metadata för ett språk. Detta fall beskriver hur ett nytt språk läggs in i systemet. Detta användarfall beskriver hur en användare lägger till nya textkategorier. Detta fall beskriver hur en textkategori tas bort. Språkmotorn Översättning av en fras Hämta text via kod Detta användarfall beskriver hur fraser ur en längre text översätts. Detta fall besktiver hur en text hämtas baserat på en text-kod. Övriga Hämta aktiva språk Detta användarfall används på den publika webbplatsen för att hämta en lista över de aktiva språk som en besökare kan se webbplatsen på. Hämta lokalinformation från besökaren Systemet ska utgå från den informationen om geografi och språkval som webbläsaren delger och genom den välja det språk som sidan ska presenteras på. Tabell 1: Sammanfattning och kort beskrivning över alla utformade användarfall 16

17 17 Genomförande 3.2 Projektdesign För att få en överblick hur lösningen är uppbyggd så kommer detta kapitel presentera de ingående projekten som utgör webbplatsen. För att skapa en lösning som är lätt att underhålla och lätt att uppgradera med ny funktionalitet har jag valt att dela upp den stora lösningen i ett flertal mindre delprojekt. När man har delprojekt påverkas inte hela webbplatsen vid uppdateringar utan endast de beröra delprojekten. Figur 1: Alla projekten i lösningen Strukturen i figur ett gäller enbart så som miljön ser ut under utveckling. När webbplatserna (publika webbplatsen och administrationsverktyget) ska publiceras så kompileras varje delprojekt till en DLL-fil och kopieras till underkatalogen BIN som skapas upp för respektive webbplats. DDL-filerna får namn efter vad delprojektet heter, t.ex. TranslationManagement.Globalization.dll Uppdatering och underhåll Vid en initial lansering, dvs. första gången en lösning lanseras i en produktionsmiljö, så kopieras alla aspx-filer och alla kompilerade DLL-filer till en produktionsserver. Detta är en stor operation som innehåller många felkällor där mycket kan gå fel. Är produktionsmiljön dessutom lastbalanserad är risken för fel ännu större, då samma procedur måste upprepas på flera servrar. Lanseringsprocessen sker dessutom under tidspress, då önskan att starta webbplatsen så snart som möjligt är stor. Att undvika denna process leder till en större säkerhet för både personen som utför lanseringen, och att webbplatsens besökare snabbare får tillgång till webbplatsen. För att underlätta uppdateringar och underhåll av systemet så delades lösningen upp i flera delprojekt och varje delprojekt kompileras till en fristående DLL. Vid uppdateringar/felrättningar av en del av webbplatsen, eller kanske endast ett delprojekt, så behöver man endast byta ut de berörda filerna. 17

18 18 Genomförande Projektet CacheHelper Klassen CacheHelper används för att initiera objekt som kommunicerar med cachen. Detta är en statisk klass som returnerar en instans av CacheFactory, en klass som ingår i Enterprise Library (mer om detta på sidan 34). Initieringen sker endast då objektet är null, dvs. första gången cachen laddas Projektet DatabaseHelper Klassen DatabaseHelper används för att initiera ett objekt som kommunicerar med databasen. Detta är en statisk klass som returnerar en instans av DatabaseFactory, en klass som ingår i Enterprise Library (mer om detta på sidan 34). Initieringen sker endast då objektet är null, dvs. första gången databasen laddas Projektet TranslationManagementAdminArea I detta projekt ligger de filer som utgör presentationsdelen för administrationsverktyget. Administrationsverktyget består av en masterpage som styr design, en sida för inloggning och en välkomstsida. Övriga sidor är enbart skal för att ladda en User Control. All logik för kontrollerna ligger i projektet TranslationManagement.Admin. Administrationsverktygets basklass kontrollerar att användaren fortfarande är inloggad Projektet TranslationManagementWeb Projektet TranslationManagementWeb är en webbplats som utgör demowebbplatsen. Webbplatsen innehåller kopior av sidor från så som sidorna såg ut vid tillfället då detta dokument skrevs. Sidorna har ändrats så att det statiska innehållet är utbytt mot koder som sedan kommer att användas för att presentera översatt innehåll. Alla sidor på webbplatsen ärver en gemensam basklass. Basklassen innehåller logik för att identifiera det språk som passar en ny besökare bäst och anropar de funktioner som översätter texter Projektet TranslationManagement.Admin All logik för administrationsverktyget är samlat i detta projekt. Denna klass innehåller dessutom koden som ritar upp html-elementen för User Controller. Kontrollerna använder AJAX i den utsträckningen att de data som postas till webbservern enbart är data från formulären Projektet TranslationManagement.Authentication I detta projekt hittas logiken som styr användarrättigheter för webbplatsen. Projektet innehåller funktioner för att hantera användarinloggning och verifiering av användarrättigheter. Klassen består av ett fasadlager och ett databaslager Projektet TranslationManagement.Globalization Funktioner för att hantera texter och textkategorier finns samlade i detta projekt. Även en statisk klass för översättning av texter är placerad här Projektet TranslationManagement.LanguageHandling Funktioner som rör språk hanteras i detta projekt. Som de övriga projekten är det uppdelat i fasad- och databaslager. 18

19 19 Genomförande Projektet TranslationManagement.WebUtilities Gemensamma funktioner för webbplatsens olika webbsidor ligger i detta projekt. Även basklassen som alla sidor ärver ligger i detta projekt UnitTest -katalogen Innehåller de enhetstester som jag skrivit för lösningen. Dessa projekt ingår och kompileras endast då projektet byggs för utveckling. I en skarp version som går publikt kommer projekten i denna katalog att uteslutas. 3.3 Hur översättningskraven är uppfyllda Följande kapitel kommer att ge en mer tekniskt detaljerad genomgång av hur de olika projekten införts och hur delproblemen lösts. Flera kapitel innehåller kodexempel som är tagna ur källkoden för webbplatsen och administrationsverktyget. Grundkravet för applikationen var att innehållet på webbplatsen går att översätta så att webbplatsen kan presenteras på flera språk. Den tekniska lösningen baseras på att varje text som skall kunna översättas identifieras genom att märkas med tecknen ## före och efter ett id för en text. Identifikationen av en text, härmed kallat koden för en text, består av textens namn och namnet på kategorin som texten tillhör. Ett exempel på en text blir: ##Textkategori.Textnamn##. Den tredje parametern som behövs för att översätta en text är på vilket språk som besökaren just nu ser på webbplatsen. Med hjälp av dessa tre variabler kan systemet presentera rätt innehåll. Efter att sidans innehåll har genererats av ASP.Net ramverket så skickas den genererade HTML-koden för presentation. Precis innan HTML-koden skickas till webbläsaren så fångar applikationen upp HTML-koden. Alla textkoder letas sedan upp och byts ut mot det översatta innehållet. När alla textkoder är ersatta skickas HTML-koden vidare till webbläsaren. Ur kodperspektiv betyder det att applikationen skriver över händelsen Render (rendera) och här letar upp alla koder. Funktionssignaturen för denna funktion ser ut såhär: protected override void Render(HtmlTextWriter writer) { //Function body goes here... } Override -instruktionen i funktionssignaturen styr så att denna funktion används i stället för den inbyggda funktionen. Render-funktionen ligger i en basklass för webbplatsen Hämta text från databas För varje kod som hittas i HTML-koden så sätts en nyckel ihop; nyckeln består av kategori, textnamn och språkkod. Nyckeln används sedan för att hämta upp korrekt text-värde. För att beskriva hur översättningen sker kommer jag att använda följande testdata: Kategori: FrontPage Text-namn: SamplePhrase Nyckeln för de olika texterna blir "FrontPage.SamplePhrase_en" och "FrontPage.SamplePhrase_sv". 19

20 20 Genomförande Nästa steg är att slå upp text-koden mot databasen. Om applikationen lyckas matcha en text mot de tre variablerna returneras en data-rad. Innehållet i data-raden används för att initiera ett objekt som implementerar gränssnittet ITextValue. En cache används av applikationen för att spara de skapade objekten. Det extra steget utförs för att komma ifrån behovet att hämta varje värde från databasen och sedan skapa ett objekt. Nyckel som identifierar objektet i cachen är den ovan skapade nyckeln. Vid nästa laddning av sidan hämtas objektet från den snabbare cachen. En tabell över hur tiden det tar att ladda framsidan varierar finns att se i kapitlet Appendix G: Laddningstider på sidan Identifiera koder I den genererade HTML-strängen kommer det att finnas en mängd text-koder att söka reda på. Att leta upp alla koder samt att utföra detta utan märkbar tidsfördröjning är en utmaning. Till hjälp använder applikationen ett reguljärt uttryck som letar upp alla förekomster av en text som kan matchas mot uttrycket ##[text]##, dvs. de koder applikationen använder för att identifiera en text. Det uttrycket som applikationen använder ser ut såhär: "#{2}(.*?)#{2}" Den första och sista delen #{2} säger att texten den ska leta efter ska börja med ett #, och att det ska vara två i rad. Det sista betyder att koden ska avslutas på samma sätt. Den mittersta delen (.*?) betyder kort sagt allting där i mellan som har minst en punkt. De tre reglerna gäller för att en text ska matcha Ersätta koden När applikationen väl har identifierat koden och hämtat dess värde från databasen så ska applikationen ersätta textkoden med den översatta texten. Funktionen "Replace" på String-klassen används för detta ändamål. Funktionen tar textkoden och den översatta texten och ersätter alla förekomster av koden. Såhär ser funktionsanropet ut: translatedstring = translatedstring.replace(foundcode.value, translatedvalue); translatedstring är i detta fallet strängen med HTML, foundcode.value är textkoden och translatedvalue är det översatta värdet. Detta sker för varje översättbar-text, varenda gång en sida laddas. Skulle en textkod förekomma flera gånger i html-koden så kommer alla förekomster att ersättas med ett anrop. 20

21 21 Genomförande Flödesschema För att ge en tydligare bild hur flödet ser ut då en sida får sina texter utbytta mot översatt innehåll har detta schema skapats. 1) Start 3) Sök kod 2) Sidladdning 4a) Kod finns i cache 4b) Ingen kod i cachen 5a) Hämta text från cache 5b) Hämta text från DB 5c) Spara text i cache 7) Upprepa för varje kod 6) Ersätt text 8) Slut Figur 2: Ett flödesschema som visar vilka steg en sida på webbplatsen går igenom 1) Startpunkten. Här initieras en laddning av en av webbsidorna på den publika webbplatsen. 2) De olika delsteg som en sida går igenom utför olika funktioner som initierar webbsidan, t.ex. händelserna Page_Load ( sidladdning ) och Page_PreRender ( innan rendering ) genererar dynamiskt innehåll som ska skrivas ut på webbsidan. Alla kontroller på sidan binder data till sidan och den 21

22 22 Genomförande färdiga HTML-strukturen skickas för presentation. I detta läge innehåller HTMLstrukturen fortfarande de koder som översättningsmotorn använder. 3) Identifiera koder i HTML-strukturen. Systemet använder sig av reguljära uttryck för att hitta de koder som skall översättas. När en kod hittats går flödet vidare och när inga fler koder går att hitta tar flödet slut. 4) En kod har identifierats. Systemet gör nu en koll ifall denna kod har påträffats av tidigare sidladdningar. I så fall kan cachen användas annars måste databasen leverera texten. a. Systemet lyckades hitta koden i cachen och kan därmed genast returnera texten med hjälp av koden. b. Systemet har inte påträffat denna kod tidigare. Därför krävs att koden skickas till databasen som i sin tur returnerar texten som matchar koden. 3.4 Hur språkhanteringens grundkrav är uppfyllda Följande kapitel kommer beskriva hur grundkraven för språkhanteringen är uppfyllda. Listan över krav finns sammanställd i kapitel 1.5 Grundkrav Språk E-man har hittills valt att översätta hemsidan till tre språk: svenska, engelska och finska (finska då företaget har vissa affärer i Finland). För att korrekt visa upp en webbsida på ett specifikt språk, så att en webbläsare kan identifiera vilket språk som presenteras, behöver sidan ange denna information. Metoden för att identifiera språket sker främst via de meta-taggar som finns i html standarden. För att presentera vilket språk en sida visas på använder man en språkkod. Språkkoden sammanställs av en internationell standardorganisation och består av två bokstäver. I vissa fall kan fyra bokstäver användas, de extra två beskriver då vilken dialekt som används. För att presentera språkets olika bokstäver rätt behöver även språkets teckenuppsättning anges på sidan. Språkinformation är även viktig för sökmotoroptimering. På webbplatsen kan ett språk vara aktivt eller inaktivt. Ett språk ska även vara ett förvalt språk, dvs. det språk som applikationen faller tillbaka på i de fall ett önskat språk inte existerar i databasen. De aktiva språken visas på webbplatsen, medan de inaktiva endast går att nå via administrationsverktyget. Tanken är att när ett nytt språk läggs till så kan en översättare i lugn och ro översätta alla texter innan språket visas upp publikt på webbplatsen. I de fall då det språk som användaren helst vill se webbplatsen på inte är aktivt, alternativt då det inte finns i databasen, ska systemet använda funktionen GetDefaultLanguage i Language -klassen som returnerar det förvalda språket. Det språket ska webbplatsens innehåll sedan visas i. Systemet faller då tillbaka till det språk som är satt som förvalt i administrationsverktyget. För varje besökare av den publika webbplatsen associeras ett interface av typen ILanguageInfo. Det beskriver alla egenskaper som systemet använder för ett språk. Efter att objektet initierats så sparas det i besökarens session Hämta användarens önskade språk I dagens moderna webbläsare har det blivit allt viktigare att presentera för en webbplats vilken region en användare kommer ifrån. Behovet uppkommer för allt 22

23 23 Genomförande ifrån att visa rätt språk till att leverera riktade regionsspecifika annonser till användaren. Ofta väljer man vilket land man kommer ifrån när man laddar hem eller installerar webbläsaren, men man kan även styra denna information via inställningar i webbläsaren. Variablerna som beskriver användaren skickas till webbplatsen när användaren gör en anslutning. Alla variabler som webbläsaren ger ifrån sig kan man komma åt via klassen HttpRequest och egenskapen ServerVariables. Klassen ligger i namnrymden System.Web. ServerVariables är en datakälla där man skickar in en nyckel för att få tillbaka ett värde. Nyckeln för att få tag i användarens önskade språk heter HTTP_ACCEPT_LANGUAGE. Värdet för den variabeln får man tag igenom att använda nyckeln på detta sätt: string languageinfo = Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"]; Värdet som returneras kan se ut som denna sträng: sv,en;q=0.7,en-us;q=0.3 Även om den kan anses något kryptisk så är den väldigt enkel. De språk som användaren har förvalt är sv = svenska, en = engelska och en-us = engelska med amerikansk dialekt. De olika språken separeras via kommatecknet, parametern q står för quality och anger vilken sannolikhet det är att det språket matchar besökarens preferens. Språkkoden för svenska sv har q=1 och har i detta fall högst sannolikhet, det vill säga att det är väldigt sannolikt att användaren vill att sidan visas på svenska. På grund av risken att användarens önskade språk inte stöds av webbplatsen, eller att det önskade språket inte är aktivt, görs en matchning där användarens önskade språk jämförs med webbplatsens aktiva språk. Hittas en matchning presenteras webbplatsen på det språket, annars faller applikationen tillbaka till det språk som har satts som det förvalda språket Visa aktiva språk De aktiva språken skrivs ut med hjälp av en kontroll som ligger på en av grundsidorna, denna kontroll blir därmed inkluderad på alla sidor. För att byta språk på webbplatsen implementerades användarfallet "Hämta aktiva språk". För att hämta aktiva språk används den lagrade proceduren "GetAllActiveLanguages". Språkbytet sker genom att en parameter "l" (kort för language ) läggs på sidans frågesträng (querystring). Adresserna till startsidan default.aspx blir: Default.aspx?l=en, Default.aspx?l=sv. När systemet ser att språkkoden bytts initieras ett ILanguageInfo-interface med hjälp av den nya språkkoden och den aktuella besökarens sessionsvärde uppdateras med det nya objektet. Information om användarens valda språk, det som sidan presenteras på, hämtas upp i basklassen från sessionsvariablerna via denna instruktion: ILanguageInfo currentlanguage = ((BaseWebPage)this.Page).WebUser.PreferredLanguage; 23

24 24 Genomförande Efter att gränssnittet hämtats från basklassen skrivs språkkoden och teckenuppsättningen ut på två ställen i sidans huvudsektion (header): literalcharacterset.text = currentlanguage.languagecharset; literallanguagecode.text = currentlanguage.languagecode; Webbläsaren kan då rendera sidans innehåll korrekt. Vanliga problem man kan råka ut för annars är att specialtecken inte presenteras korrekt, till exempel kan man få problem med att å, ä och ö skrivs ut felaktigt. 3.5 Hur Administrationsverktygets grundkrav är uppfyllda Följande kapitel kommer beskriva hur grundkraven för administrationsverktyget är uppfyllda. Listan över krav finns sammanställd i kapitel 1.5 Grundkrav Inloggning För att undvika att obehöriga besökare får tillgång till administrationsverktyget, där de kan göra stor skada, så krävs att användare autentiserar sig själva. Detta sker med hjälp av ett lösenord och ett användarnamn som personen blir tilldelad. När användaren anländer till förstasidan för administrationsverktyget så kontrollerar systemet huruvida användarens information finns sparad i användarens session. Användarinformation representeras med hjälp av interfacet IUserInfo och initieras när användaren loggar på administrationsverktyget. Finns objektet sparat så välkomnas användaren med namn, annars blir han/hon automatiskt omdirigerad till inloggnings-sidan. Har användaren en gång vart inloggad på systemet, men lämnat datorn så pass länge att session gått ut, kommer den besökaren bli ombedd att återigen logga in. Vid godkänd inloggning kommer sedan systemet automatiskt dirigera administrationsanvändaren till den sida som personen senast arbetade på. Logiken för att logga in användare och skicka dem rätt är inget som man behöver skriva själv, utan det är en funktionalitet som finns i.net-ramverket. Det man behöver göra är att instruera systemet hur anonyma användare ska hanteras; detta sker i konfigurationsfilen web.config. Denna regel instruerar ramverket att inte tillåta anonym åtkomst på webbplatsen: <authorization> <deny users="?"/> </authorization> Nedanstående regel säger till ramverket att användare ska logga in via ett formulär som heter adminform, att användaren ska sedan skickas vidare till sidan default.aspx när inloggningen är klar och att användare ska skickas till login.aspx för att logga in. <authentication mode="forms"> <forms loginurl="login.aspx" defaulturl="default.aspx" name="adminform"/> </authentication> 24

25 25 Genomförande I tabellen AdminUser ligger alla användare som har tillgång till systemet. Denna tabell är speciellt känslig då den innehåller inloggningsinformation. För att säkra systemet så lagras lösenordet krypterat i en hash, man kan alltså inte läsa ut lösenordet direkt från innehållet i databasen. Vid inloggningen så skapas en hash av det värde som användaren matar in och hashvärdet för den inmatningen jämförs sedan med hashvärdet av lösenordet som redan ligger i tabellen. Krypteringsfunktionen som krypterar hashvärdet är sha-1. Krypteringen gör det avsevärt mycket svårare att få fram lösenordet och därmed ta sig in i systemet, men det är dock inte omöjligt. Sha-1 ska i sig vara oknäckbart, men det finns en möjlighet att någon lyckas mata in rätt kombination, och därmed kan ta sig in i systemet Användarmenyn För att navigera runt bland administrationsverktygets olika sidor så innehåller administrationsverktyget en navigeringsmeny. Samtidigt som man vill göra det enkelt för en användare att hitta i systemet vill man inte att en användare ska kunna komma åt information den inte ska få se. Vissa användargrupper ska till exempel enbart få översätta texter. Beroende på vilken användarroll som den inloggade användaren är tilldelad, ska innehållet i menyn varieras. Menystrukturen i sig är enkel, den består av tre större sektioner: texter, textkategorier och språk. Varje sektion har i sin tur undersidor. Användargrupp Administratörer Översättare Sektion och funktion/undersida Texter o Lägga till text o Översätta text Textkategorier o Lägga till kategori o Ta bort kategori o Ändra kategorinamn Språk o Lägga till språk o Ändra språkegenskaper o Sätta förvalt språk Texter o o Lägga till text Översätta text Tabell 2: Översikt över användargruppernas behörigheter i administrationsverktyget I databasen har varje funktion ett id och en förälder. Texter som är en toppfunktion har förälder-id=0 och funktions-id=1, Lägga till text är ett barn till Texter, den har funktions-id=11 och förälder-id=1. Baserat på den strukturen kan man sedan hämta ut menyn, först hämtas alla toppfunktioner, när de skrivs ut på sidan skrivs dess barn ut. Hela strukturen laddas via ett anrop till databasen. På detta vis presenteras menyn enligt liknande: Texter (Funktions-id 1, Förälder-id = 0) 25

26 26 Genomförande o Lägg till text (Funktions-id 11, Förälder-id = 1) o Översätt text (Funktions-id 12, Förälder-id = 1) o Det presenteras som en oordnad lista (UL-taggen i HTML). En uppenbar brist i säkerhetstänkandet i denna applikation är att säkerhetskollen görs enbart i rendreringen av menyn. Kan användaren adressen till webbsidan finns inget som hindrar sidan att laddas. Den enklaste och bästa lösningen för detta vore att lägga en kontroll för att se till så att användaren har tillgång till funktionen. Behörighetskontrollen placeras lämpligtvis i administrationsverktygets basklass, vilket förenklar administration och förebygger duplicering av kod (mer om detta i kapitlet Gemensam basklass på sidan 33). Det går även att precisera så att enbart enstaka funktioner ur varje grupp visas, dvs. en användargrupp kan tilldelas olika underfunktioner Uppdatera texter När väl applikationen har lagrat en text i cachen så kommer den alltid att hämta texten från cachen. Att hämta data från cachen är något man eftersträvar då cachen är mycket snabbare att jobba mot än att gå via databasen. Ett problem uppstår dock på grund av denna funktion; när en administratör eller översättare ändrar i en text, så sparas innehållet enbart i databasen. Det värde som lagrats i cachen kommer inte att uppdateras. Detta är på grund av att administrationsverktyget och den publika webbplatsen är två skilda applikationer, som enbart har det gemensamt att de kommunicerar mot samma databas. Den publika webbplatsen har därför ingen vetskap om att en text har ändrats. För att lösa detta problem så infördes ett datum på texten. Datumet beskriver när texten senast blev uppdaterad eller skapad. Dessutom infördes en timer som sattes att klocka var 30:e minut. Till händelsen att timern klockade kopplades en funktion vars uppgift är att leta reda på alla texter vars datumstämpel var uppdaterad inom de senaste 30 minuterna. En nyckel som beskrev texten skapas, och denna nyckel används sedan för att plocka bort texten ur cachen. Nästa gång texten ska visas på webbplatsen så kommer applikationen i vanlig ordning först leta i cachen, sedan falla tillbaka och hämta upp den då uppdaterade texten ur databasen för att sedan spara den i cachen. I.Net-ramverket finns inbyggda säkerhetsprinciper för att minska riskerna för webbplatsen. En av de principerna är att man i grundutförandet ej får mata in htmlkoder i textformulär som postas till webbservern. Detta är dock ett behov för texterna på webbplatsen. För att komma runt regeln måste man sätta följande instruktion i sidans definition: ValidateRequest="false" Med denna säger man till ramverket att inte validera innehåll som postas till servern. 26

27 27 Genomförande I och med att man lämnar sidan öppen för valfri inmatning mot databasen är det viktigt att man HTML-kodar den text som skall sparas. På det sättet försvarar man systemet som illasinnade användare som annars kan orsaka skada. Instruktionen för att säkra den inmatade texten ser ut såhär: string textvaluehtmlencoded = System.Web.HttpUtility.HtmlEncode(tbTextContent.Text); Där tbtextcontent.text är innehållet i textfältet där användaren matar in text Demonstration av administrationsverktyget I detta kapitel följer en demonstration av administrationsverktyget. Demonstrationen kommer att visa hur det går till när en text ska översättas. Det är titel-texten på demosidan som ska läggas till på det svenska språket. Som man kan se på bilden så skrivs text-koden för en text ut på webbsidan ifall systemet inte lyckades matcha en text till koden. I detta fall är det koden ##Title.FrontPage##. Det är en finess som gör det enkelt att hitta koder som behöver uppdateras med riktigt innehåll. Figur 3: Visar en skärmbild där en text ska översättas. Den engelska översättningen syns kort i den högra fliken under addressfältet. För att redigera/lägga till texten så loggar jag in i administrationsgränssnittet. Min användare har statusen Administratör vilket gör att jag får se alla menyalternativ i vänstermenyn. Förstasidan i administrationsverktyget visar en presentationbild där användaren välkomnas: Figur 4: Presentationsvy i administrationsverktyget. Eftersom texten redan finns inlagd på svenska ska vi enbart översätta texten till engelska. Översättningar sker på vyn Translate text ( Översätt text ). För att 27

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

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

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

DOTNETNUKE SKOLNING Skapat: den 20 november 2012

DOTNETNUKE SKOLNING Skapat: den 20 november 2012 DOTNETNUKE SKOLNING Skapat: den 20 november 2012 CONTENTS WebbSidans Layout... 3 Inloggning... 3 Kontroller för administrering... 4 Växla visnings läge... 4 View Läge... 4 Edit Läge... 4 Layout Läge...

Läs mer

Manual för din hemsida

Manual för din hemsida Manual för din hemsida Dynamiska hemsidor är en lösning för att man på ett enkelt sätt skall kunna lägga till, ändra och ta bort sidor på sin hemsida. För att detta skall vara möjligt bygger lösningen

Läs mer

Zimplit CMS Manual. Introduktion. Generell Information

Zimplit CMS Manual. Introduktion. Generell Information Zimplit CMS Manual Introduktion Detta dokument ger en överblick av Zimplit CMS (Content Management System) användargränssnitt och dess funktioner. (För mer information och hjälp-forum, se zimplit.org.)

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

Översikt. Installation av EasyPHP 1. Ladda ner från http://www.easyphp.org/ Jag använder Release 5.3.4.0 2. Installera EasyPHP.

Översikt. Installation av EasyPHP 1. Ladda ner från http://www.easyphp.org/ Jag använder Release 5.3.4.0 2. Installera EasyPHP. Laboration 1 Översikt 1. Att komma igång med laborationsmiljön a. installera Aptana Studio 3 b. Installera EasyPHP 2. Testa lite programmering a. Testa enkla uppgifter b. Testa automatiskt 3. Skapa inloggningsformulär

Läs mer

FLEX Personalsystem. Uppdateringsanvisning

FLEX Personalsystem. Uppdateringsanvisning FLEX Personalsystem Uppdateringsanvisning Innehållsförteckning UPPDATERING... 3 Allmänt... 3 Förberedelser... 3 Informera om uppdatering... 3 Ladda hem uppdateringsfiler... 4 Att observera vid uppdatering...

Läs mer

2009-08-20. Manual för Typo3 version 4.2

2009-08-20. Manual för Typo3 version 4.2 2009-08-20 Manual för Typo3 version 4.2 1 2 Innehåll: 1. Allmänt 4 2. Grunderna i Typo3 5 2.1 Knappar 5 2.2 Inloggning 5 2.3 Den inledande vyn 6 2.4 Sidträdet 7 3. Sidor 8 3.1 Skapa en ny sida 8 3.1.1

Läs mer

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: 2009-12-14 Mottagare: Visi Web kund

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: 2009-12-14 Mottagare: Visi Web kund Sida: 1(7) Installationsanvisningar VisiWeb Ansvarig: Visi Closetalk AB Version: 2.3 Datum: 2009-12-14 Mottagare: Visi Web kund Detta dokument Detta dokument beskriver hur man installerar VisiWeb på en

Läs mer

Varför ska man använda ett CMS? Vilka är fördelarna och är det alltid bra? Kattis Lodén 2010-03-18

Varför ska man använda ett CMS? Vilka är fördelarna och är det alltid bra? Kattis Lodén 2010-03-18 Varför ska man använda ett CMS? Vilka är fördelarna och är det alltid bra? Kattis Lodén 2010-03-18 Innehåll Inledning... 3 Fakta... 4 Innehåll... 4 Texthantering... 4 Granskning och versionshantering...

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

Moodle2 STUDENTMANUAL

Moodle2 STUDENTMANUAL Moodle2 STUDENTMANUAL Moodle är en lärplattform med hjälp av vilket du kan kommunicera, dela med dig av information och upprätthålla kontakten med lärarna, handledarna och de andra kursdeltagarna. För

Läs mer

Manual Utgåva 1.2. Sidan 1

Manual Utgåva 1.2. Sidan 1 Sidan 1 SoftIT AB 2003 Sidan 1 Sidan 2 Innehållsförteckning INNEHÅLLSFÖRTECKNING... 2 FÖRORD... 4 FÖRKLARINGAR... 4 INSTALLATION AV INTELLIDOC PÅ SOFTIT:S SERVRAR... 4 INSTALLATION AV INTELLIDOC PÅ EGEN

Läs mer

Uppgraderingsinstruktion för Tekis-FB Avisering version 6.3.0

Uppgraderingsinstruktion för Tekis-FB Avisering version 6.3.0 Uppgraderingsinstruktion för Tekis-FB Avisering version 6.3.0 Allmänt Releasen omfattar uppgradering av Tekis Aviseringsprogram version 6.3.0 (för både Tekis-FIR och Tekis-KID avisering) samt databasuppgradering

Läs mer

Dokumentation för editering av sl.se

Dokumentation för editering av sl.se Version: 1 Datum: 2014-03-24 evry.com Redaktörsdokumentation Redaktörsdokumentation Dokumentation för editering av sl.se Versionshistorik Ändring nr. Ändring datum Förändringar Reviderad av 1 2014-03-24

Läs mer

Uppgraderingsinstruktion för Tekis-FB Avisering version 6.3.1

Uppgraderingsinstruktion för Tekis-FB Avisering version 6.3.1 Uppgraderingsinstruktion för Tekis-FB Avisering version 6.3.1 Allmänt Releasen omfattar uppgradering av Tekis Aviseringsprogram version 6.3.1 (för både Tekis-FIR och Tekis-KID avisering) samt databasuppgradering

Läs mer

Användarmanual för Content tool version 7.5

Användarmanual för Content tool version 7.5 Användarmanual för Content tool version 7.5 TM WEB Express AB Manual Content tool 7.5 Sid 2 INNEHÅLLSFÖRTECKNING 1 OM PUBLICERINGSVERKTYGET... 3 1.1 ALLMÄNT... 3 2 ÖVERSIKT... 3 3 ALLMÄNT OM WEBBSIDAN

Läs mer

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

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

Läs mer

INSTALLATION AV KLIENT

INSTALLATION AV KLIENT INSTALLATION AV KLIENT BOOK-IT 8.0 2015-03-27 Axiell Sverige AB, Box 24014, 224 21 Lund Fältspatvägen 4, 224 78 Lund, tel: 046-2700 400, e-post: axiellsverige@axiell.com Innehållsförteckning Förberedelse

Läs mer

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

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

Läs mer

IT-system. BUP Användarmanual

IT-system. BUP Användarmanual IT-system Användarmanual Innehållsförteckning 1. Att komma igång med... 1 1.1 Installera... 1 1.1.1 Byt databas... 1 1.1.2 Behörighet att byta databas... 2 1.2 Logga in... 3 1.2 Inloggad... 3 1.3 Logga

Läs mer

Manual HSB Webb brf 2004 03 23

Manual HSB Webb brf 2004 03 23 TERMINOLOGI I Polopoly används ett antal grundläggande begrepp för publicering och hantering av information, eller innehåll som det också benämns. Nedan följer en kort genomgång av denna grundläggande

Läs mer

Logga in... 3. Översikt/Dashboard... 4. Avvikande produkter... 4. Arbeten misslyckades... 4. Senaste gjorda... 4. Systemmeddelanden...

Logga in... 3. Översikt/Dashboard... 4. Avvikande produkter... 4. Arbeten misslyckades... 4. Senaste gjorda... 4. Systemmeddelanden... Innehållsförteckning Logga in... 3 Översikt/Dashboard... 4 Avvikande produkter... 4 Arbeten misslyckades... 4 Senaste gjorda... 4 Systemmeddelanden... 4 Användare... 6 Lägg till ny användare... 6 Redigera/radera

Läs mer

InSite Prepress Portal

InSite Prepress Portal InSite Prepress Portal System Version 5.0 Kundens snabbhandledning Svenska Innehåll Vad är InSite Prepress Portal?...1 Vad har ändrats i version 5.0...1 Logga in till Prepress Portal...1 Få hjälp...2 Kontrollera

Läs mer

ActiveBuilder Användarmanual

ActiveBuilder Användarmanual ActiveBuilder Användarmanual Forfatter: TalkActive I/S Dato: Juli 2004 Version: R. 1.01 Sprog: Svensk Copyright 2004 - Talk Active - all rights reserved. Innehåll: 1. INLEDNING...2 2. SNABBSTART...3 3.

Läs mer

Snabbguide för användare SourceTech Telllus

Snabbguide för användare SourceTech Telllus Snabbguide för användare SourceTech Telllus Copyright SourceTech AB 2000-2012 Innehållet i denna manual är skyddat enligt upphovsrättslagen och får varken helt eller delvis kopieras utan uttrycklig tillåtelse

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

Uppdatera Mobilus Professional till version 3.2.1. * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Uppdatera Mobilus Professional till version 3.2.1. * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. Uppdatera Mobilus Professional till version 3.2.1 Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. Mobilus Digital Rehab AB * Filen MP.exe (Mobilus programmet) får inte användas

Läs mer

Lathund - webbsidor och filer

Lathund - webbsidor och filer Lathund - webbsidor och filer 2005-09-07 Manualen nås via denna webbadress: http://www.med.lu.se/support Lathund - webbsidor och filer... 1 1. Inloggning... 2 Efter inloggningen... 2 2 Översikt över gränssnittet...

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

Manual HSB Webb brf

Manual HSB Webb brf BEHÖRIGHETSSYSTEMET ALLMÄNT Alla användare som ska arbeta med HSB Webb måste först skapas och registreras i systemet. När du registreras som användare får du ett användarnamn och ett lösenord som du sedan

Läs mer

Kom igång! Snabbstart för dig som är administratör

Kom igång! Snabbstart för dig som är administratör Kom igång! Snabbstart för dig som är administratör Innehåll Snabbstart och användarmanual 4 Personalhandbokens uppbyggnad 5 Redigeringsläget 6 Att redigera i personalhandboken 7 Publicering av de redigerade

Läs mer

Ekonomiportalen Sa kommer du iga ng

Ekonomiportalen Sa kommer du iga ng Ekonomiportalen Sa kommer du iga ng Innehållsförteckning Inloggningssidan... 2 Så här loggar du in... 3 Glömt ditt lösenord? Så här återställer du ditt lösenord... 4 Glömt lösenord till kundgemensamt rapportkonto?...

Läs mer

Vad är molnet?... 2. Vad är NAV i molnet?... 3. Vem passar NAV i molnet för?... 4. Fördelar med NAV i molnet... 5. Kom igång snabbt...

Vad är molnet?... 2. Vad är NAV i molnet?... 3. Vem passar NAV i molnet för?... 4. Fördelar med NAV i molnet... 5. Kom igång snabbt... Produktblad för NAV i molnet Innehåll Vad är molnet?... 2 Vad är NAV i molnet?... 3 Vem passar NAV i molnet för?... 4 Fördelar med NAV i molnet... 5 Kom igång snabbt... 5 Bli kostnadseffektiv... 5 Enkelt

Läs mer

Användarhandbok. Trio Visit Web. Trio Enterprise 4.1

Användarhandbok. Trio Visit Web. Trio Enterprise 4.1 Användarhandbok Trio Visit Web Trio Enterprise 4.1 COPYRIGHT NOTICE: No part of this document may be reproduced, distributed, stored in a retrieval system or translated into any language, including but

Läs mer

Installationsanvisning. Dokumenttyp Installationsanvisning Område Boss med delad databas

Installationsanvisning. Dokumenttyp Installationsanvisning Område Boss med delad databas Ort och datum Ort och datum Namn Namn Magnus Einarsson/+46 (0)+46 54 291742 2010-06-29 1.0 1 (5) Innehållsförteckning 3 1 Inledning 3 1.1 Introduktion... 3 1.2 Revisionshistoria... 3 1.3 Referenser...

Läs mer

DGC IT Manual Citrix Desktop - Fjärrskrivbord

DGC IT Manual Citrix Desktop - Fjärrskrivbord DGC IT Manual Citrix Desktop - Fjärrskrivbord Ver 130912 Innehåll 1 Använda Citrix Desktop - Fjärrskrivbord... 2 2 Inställningar i Fjärrskrivbordet... 7 Kontrollera att de applikationer du har tillgång

Läs mer

LEX INSTRUKTION LEX LDAP

LEX INSTRUKTION LEX LDAP LEX INSTRUKTION LEX LDAP Innehållsförteckning LEX INSTRUKTION LEX LDAP... 1 1 INLEDNING... 1 2 INSTALLATION... 2 3 LEXLDAPSERVICE - KLIENTEN... 3 3.1 HUVUDFÖNSTER... 3 3.2 INSTÄLLNINGAR... 4 3.2.1 Lex...

Läs mer

Grupp Policys. Elektronikcentrum i Svängsta Utbildning AB 2012-11-05 1

Grupp Policys. Elektronikcentrum i Svängsta Utbildning AB 2012-11-05 1 Grupp Policys Elektronikcentrum i Svängsta Utbildning AB 2012-11-05 1 Sid 1233 Vad är grupp-policys? Grupp-policys är en samling regler som hjälper till med hanteringen av datorer och användare. Mer specifikt:

Läs mer

Vad säger lagen om cookies och andra frågor och svar

Vad säger lagen om cookies och andra frågor och svar Vad säger lagen om cookies och andra frågor och svar Vad är en cookie? En cookie är en liten textfil som webbplatsen du besöker begär att spara på din dator. Cookies används på många webbplatser för att

Läs mer

Joomla CMS Del 2 av 2

Joomla CMS Del 2 av 2 JOOMLA 3 CMS GRUNDKURS DEL 2 AV 2 Innehåll Extern Struktur Menyer och Sidor Användare och Åtkomstnivåer Skapa en sida som kräver inloggning Moduler och Positioner Sökmotor och undermenyer Copyright Mahmud

Läs mer

Uppdaterad: 2014-05-07. Lathund. Logga in

Uppdaterad: 2014-05-07. Lathund. Logga in Uppdaterad: 2014-05-07 Lathund Logga in 1 1 Skriv ej ut manualen! För att alltid ha aktuell information och slippa dyra utskriftskostnader ber vi dig att ladda hem manualen som en PDF från vår hemsida

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öreningsadministratör i medlemssystemet

Manual. Föreningsadministratör i medlemssystemet BRUKSANVISNING 1 (28) Manual Föreningsadministratör i medlemssystemet BRUKSANVISNING 2 (28) Innehållsförteckning Rubrik sida 1. Inledning 4 1.1 Målgrupp...4 1.2 Syfte...4 1.3 Omfattning...4 2. Bakgrund

Läs mer

Roller i Liferay och Axiell Arena

Roller i Liferay och Axiell Arena Axiell Arena Roller i Liferay och Axiell Arena Introduktion I Axiell Arena finns det i praktiken två olika behörighetssystem ett för Liferayadministration och ett för administration av funktionaliteten

Läs mer

Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering.

Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. Uppdatera Mobilus Professional till version 3.1.2 Krav: * Filen MpUpdate.exe får inte köras när du startar denna uppdatering. Mobilus Digital Rehab AB * Filen MP.exe (Mobilus programmet) får inte användas

Läs mer

DynaPahlm är användbart på många olika typer av webbplatser. Denna handbok ger dig tips och vägledning till hur du bäst använder DynaPahlm

DynaPahlm är användbart på många olika typer av webbplatser. Denna handbok ger dig tips och vägledning till hur du bäst använder DynaPahlm Användarhandbok (testsite http://www.pahlm.com/dynapahlm/ Förord DynaPahlm är levererat tillsammans med din webbplats från KM-Företagsutveckling. DynaPahlm är ett Content Management System (CMS), fritt

Läs mer

Version: 1.0.1 Datum: 2012-05-23. DynaMaster 5 Golf Övergripande manual

Version: 1.0.1 Datum: 2012-05-23. DynaMaster 5 Golf Övergripande manual Version: 1.0.1 Datum: 2012-05-23 DynaMaster 5 Golf Övergripande manual Innehållsförteckning 1 Inledning 3 1.1 Systemkrav 3 2 Logga in 4 3 Översikt 5 4 Verktygsfält och funktioner 6 4.1 Översikt gränssnitt

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

Lions Clubs Internationals användarhandbok för e-klubbhuset

Lions Clubs Internationals användarhandbok för e-klubbhuset Lions Clubs Internationals användarhandbok för e-klubbhuset OCEC4.SW V02.2014 1 Du kan enkelt redigera klubbens webbplats med e-klubbhussystemet genom att följa instruktionerna i den här användarhandboken.

Läs mer

Quadri DCM Handledning för administratörer och användare i projekt som kör Quadri DCM. Version 19.20 2014-08-15

Quadri DCM Handledning för administratörer och användare i projekt som kör Quadri DCM. Version 19.20 2014-08-15 Quadri DCM Handledning för administratörer och användare i projekt som kör Quadri DCM Version 19.20 2014-08-15 Innehåll Syfte... 2 Inledning... 3 Begreppslista... 4 Förberedelser... 6 Quadri Model Manager

Läs mer

Att använda ELSA. Vad behövs för att använda ELSA?. Felrapportering och support

Att använda ELSA. Vad behövs för att använda ELSA?. Felrapportering och support KI Biobank Instruktion Användarmanual för ELSA Innehållsförteckning Allmänt... 1 Vad är ELSA?... 1 Vad behövs för att använda ELSA?... 2 Felrapportering och support... 2 Att använda ELSA... 2 Viktig information...

Läs mer

Kapitel 4 Arkivmenyn Innehåll

Kapitel 4 Arkivmenyn Innehåll Kapitel 4 Arkivmenyn Innehåll ARKIVMENYN...2 Byt aktuell användare...2 Utskrift till skärm eller skrivare...3 SQL verktyget...4 Ny SQL...4 Hämta SQL...5 Spara SQL...5 Kör SQL...5 Visa som...5 Avsluta...5

Läs mer

ASP.NET Web Forms. Copyright Mahmud Al Hakim mahmud@dynamicos.se http://www.webbacademy.se. Vad är Web Forms?

ASP.NET Web Forms. Copyright Mahmud Al Hakim mahmud@dynamicos.se http://www.webbacademy.se. Vad är Web Forms? ASP.NET Web Forms Copyright Mahmud Al Hakim mahmud@dynamicos.se http://www.webbacademy.se Vad är Web Forms? Web Forms är en del av ASP.NET ramverket. Web Forms är kontroll- och händelsestyrd programmeringsmodell

Läs mer

Ellibot 1.0. Interaktivmedia Content Management System. Publicera för webben

Ellibot 1.0. Interaktivmedia Content Management System. Publicera för webben Ellibot 1.0 Interaktivmedia Content Management System Publicera för webben Innehåll Logga in 3 Skapa en ny webbsida 4 o Publicering 5 o Information 5 o Standardfiler 6 o Innehåll 7 Hur man skapar en länk

Läs mer

Mamut Open Services. Mamut Kunskapsserie. Kom i gång med Mamut Online Survey

Mamut Open Services. Mamut Kunskapsserie. Kom i gång med Mamut Online Survey Mamut Open Services Mamut Kunskapsserie Kom i gång med Mamut Online Survey Kom i gång med Mamut Online Survey Innehåll MAMUT ONLINE SURVEY... 1 KOM I GÅNG MED MAMUT ONLINE SURVEY... 3 MAMUT-ANVÄNDARE:

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

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

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

Labbrapport: HTML och CSS

Labbrapport: HTML och CSS Labbrapport: HTML och CSS Utförd av: Natalie Olmosse Mailadress: natalie.olmosse@gmail.com Datum: 2015 12 18 Kursansvarig: Karin Fahlquist Övriga lärare: Ulrik Söderström Första inlämningen Resultat (Godkänd/Retur):

Läs mer

Skapa spellista i play.lnu.se Gör en samling med filmer som hör ihop

Skapa spellista i play.lnu.se Gör en samling med filmer som hör ihop Skapa spellista i play.lnu.se Gör en samling med filmer som hör ihop Vad är en spellista? En spellista är ett sätt att visa en lista över filmer (eller ljudklipp) som hör ihop med varandra. En spelare

Läs mer

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1. Schenker har interna system som handhar information som är av intresse för våra kunder/partners. Idag finns ett flertal av dem tillgängliga via Internet, sk Online-tjänster. Dessa erbjuder inte bara hämtning

Läs mer

2007-03-28. Manual för Typo3 version 4.04

2007-03-28. Manual för Typo3 version 4.04 2007-03-28 Manual för Typo3 version 4.04 1 2 Innehåll: 1. Allmänt 4 2. Grunderna i Typo3 5 2.1 Knappar 5 2.2 Inloggning 5 2.3 Den inledande vyn 6 2.4 Sidträdet 7 3. Sidor 8 3.1 Skapa en ny sida 8 3.2 Redigera

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

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

Inkapsling (encapsulation)

Inkapsling (encapsulation) UML UML är en standard för att dokumentera och visualisera sina tankar och beslut under analys och design. Att lära sig allt om UML får inte plats i den här kursen, men vi kommer lära oss vissa delar.

Läs mer

Grundläggande funktioner i CMS ifrån Argonova Systems, 2011.

Grundläggande funktioner i CMS ifrån Argonova Systems, 2011. Grundläggande funktioner i CMS ifrån Argonova Systems, 2011. Syfte Detta dokument tar upp grundläggande funktioner i Argonova Systems CMS i syfte att förbereda och stödja användaren, vid sidan av och inför

Läs mer

ANVÄNDAR HANDLEDNING FÖR ADVITUMS KUNDPORTAL

ANVÄNDAR HANDLEDNING FÖR ADVITUMS KUNDPORTAL ANVÄNDAR HANDLEDNING FÖR ADVITUMS KUNDPORTAL Utfärdad av: Markus Persson Version: 1.1 Datum: 2013-05-31 Innehållsförteckning Område Dokumenttyp Ver.1.1 Advitum Innehållsförteckning... 2 Allmänt... 3 Varför

Läs mer

Pyramid Business Studio - e-line & Betalkort

Pyramid Business Studio - e-line & Betalkort Pyramid Business Studio - e-line & Betalkort 21 mars 2005 Pyramid E-handel med betalkort via DebiTech fr om 3.39A Betalningssätt I kontaktregistret har val av betalningssätt tillkommit betalkort eller

Läs mer

Infobank kvickguide. Kom i gång med Infobank. Logga in till Infobank. Installationsguiden

Infobank kvickguide. Kom i gång med Infobank. Logga in till Infobank. Installationsguiden Infobank kvickguide Kom i gång med Infobank Välkommen till SKL Kommentus webbaserad tjänst Infobank Arbetsrätten. Denna snabbguide ger dig en kort introduktion som användare av Infobank, så att du snabbt

Läs mer

TUTORIAL: KLASSER & OBJEKT

TUTORIAL: KLASSER & OBJEKT TUTORIAL: KLASSER & OBJEKT I denna tutorial lär vi oss att använda klasser och objekt samt hur vi bygger en enkel applikation kring dessa. I tutorialen kommer det finnas en mängd kod som du antingen kan

Läs mer

Uppdragsbeskrivning. Paddel-appen Utmärkta kanotleder. Version 1.0 Mats Persson. Distributionslista. Namn Åtgärd Info.

Uppdragsbeskrivning. Paddel-appen Utmärkta kanotleder. Version 1.0 Mats Persson. Distributionslista. Namn Åtgärd Info. Paddel-appen Utmärkta kanotleder Version 1.0 Distributionslista Befattning Bolag/en het Säljare Sogeti Bengt Löwenhamn Konsultchef Sogeti Åsa Maspers Mentor/handledare Sogeti Student KaU Claes Barthelson

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

Kom igång. Readyonet Lathund för enkelt admin. Logga in Skriv in adressen till din webbsida följt av /login. Exempel: www.minsajt.

Kom igång. Readyonet Lathund för enkelt admin. Logga in Skriv in adressen till din webbsida följt av /login. Exempel: www.minsajt. Kom igång Logga in Skriv in adressen till din webbsida följt av /login. Exempel: www.minsajt.se/login Nu dyker en ruta upp på skärmen. Fyll i ditt användarnamn och lösenord och klicka på "logga in". Nu

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

Individuellt Mjukvaruutvecklingsprojekt

Individuellt Mjukvaruutvecklingsprojekt zm222ag 1DV430 Individuellt Mjukvaruutvecklingsprojekt [Website] Restaurang & Pizzeria Europa Slutrapport Zlatan Majdanac - Webbprogrammerare 2011 Abstrakt I min slutrapport skriver jag om projektet som

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

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

Läs denna sekretesspolicy innan du använder AbbVies webbplatser, eller skickar personlig information till oss.

Läs denna sekretesspolicy innan du använder AbbVies webbplatser, eller skickar personlig information till oss. SEKRETESSPOLICY Ikraftträdandedag: 16.10.2014 Denna sekretesspolicy förklarar hur vi hanterar den personliga information du förser oss med på webbplatser som kontrolleras av AbbVie (inklusive dess dotterbolag

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

Användarmanual Allmän REQS 7

Användarmanual Allmän REQS 7 1 Användarmanual Allmän REQS 7 2 Innehållsförteckning: Inloggning... 3 Allmänt... 4 Bokmärken statistik... 5 Fastighetsinformation... 6 Uppdragsöversikt... 7 Listläge filtrera/sortera... 8 Listläge skriv

Läs mer

WP-Edit. Robin Larsson Martin Davik. Examensarbete, grundnivå, 15 hp Datavetenskap Internetteknologprogrammet

WP-Edit. Robin Larsson Martin Davik. Examensarbete, grundnivå, 15 hp Datavetenskap Internetteknologprogrammet WP-Edit Robin Larsson Martin Davik 2014 Examensarbete, grundnivå, 15 hp Datavetenskap Internetteknologprogrammet Handledare: Anders Jackson Examinator: Carina Pettersson WP-Edit av Robin Larsson Martin

Läs mer

ATT SKAPA KONTO I GU PLAY

ATT SKAPA KONTO I GU PLAY ATT SKAPA KONTO I GU PLAY https://play.gu.se Steg 1: För att kunna ladda upp och hantera mediefiler/klipp i GU Play måste du ha ett konto. Det skaffar du genom att gå till https://play.gu.se och välja

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

Insamlingsverktyg - teknisk beskrivning av metadataformuläret

Insamlingsverktyg - teknisk beskrivning av metadataformuläret Digitala leveranser Insamlingsverktyg - teknisk beskrivning av metadataformuläret Innehåll: Allmänt Layout och uppbyggnad Hur man använder programmet Starta Fylla i metadata Skapa metadatafiler och leverera

Läs mer

CMS. - Content management system

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

Läs mer

Arg-administratörens guide till Umbraco v 1.2.1

Arg-administratörens guide till Umbraco v 1.2.1 Arg-administratörens guide till Umbraco v 1.2.1 Logga in 1. Öppna en webbläsare och gå till inloggningssidan: https://www.sfog.se/umbraco/ 2. Skriv in följande användarnam & lösenord : 3. Klicka på Logga

Läs mer

Lathund Behörighetshantering

Lathund Behörighetshantering Lathund Behörighetshantering För att kunna ställa in behörigheter krävs det att SiteVision är kopplat till en katalogtjänst. Behörigheter Hantering av behörigheter och rättigheter kan göras för hela webbplatsen,

Läs mer

Stored procedure i ASP.NET

Stored procedure i ASP.NET Stored procedure i ASP.NET OBS! Om du vill jobba med att skapa en stored procedure i en SQL Serverdatabas ifrån VS2010 måste du ha fullversion, expressversionen tillåter dig ej att skapa triggers, stored

Läs mer

Flytt av. Vitec Mäklarsystem

Flytt av. Vitec Mäklarsystem Flytt av Vitec Mäklarsystem Augusti 2014 Innehållsförteckning 1. Inledning... 2 Förutsättningar... 2 Läs noga igenom manualen... 2 Systemkrav... 2 Kundservice/Teknisk support... 2 2. Skapa säkerhetskopia...

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

Användarmanual medium

Användarmanual medium M Användarmanual medium Logistic Office Innehåll Inloggning...5 Personlig profil...6 Företagsprofil...7 Produktprofil...7 Korrektur...8 Produktkategorier...9 Mallprodukt...9 Originalprodukt...9 Lagerprodukt...0

Läs mer

SGH-A400 WAP Browser Användarhandbok

SGH-A400 WAP Browser Användarhandbok * Vissa innehåll i denna handbok kan skilja sig från din telefon beroende på mjukvaran som installerats eller din operatör. SGH-A400 WAP Browser Användarhandbok ELECTRONICS Behöver du hjälp eller har frågor,

Läs mer

Instruktion för att kunna använda Säkerhetstjänsternas administrationsgränssnitt

Instruktion för att kunna använda Säkerhetstjänsternas administrationsgränssnitt Instruktion för att kunna använda Säkerhetstjänsternas administrationsgränssnitt Innehållsförteckning 1. Inledning... 3 2. SITHS kort... 4 3. Förutsättningar för åtkomst till Säkerhetstjänsten... 4 4.

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

www.pts.se/archive/documents/ SE/Rapport_tillganglig_webb_2004_14.pdf 2 webzone.k3.mah.se/k99ac3hl/helenalackmagisterkogniton2003.

www.pts.se/archive/documents/ SE/Rapport_tillganglig_webb_2004_14.pdf 2 webzone.k3.mah.se/k99ac3hl/helenalackmagisterkogniton2003. 2 3 1 Är samhällsviktiga tjänster på Internet tillgängliga för personer med funktionshinder? PTS-ER-2004:14, ISSN 1650-9862. www.pts.se/archive/documents/ SE/Rapport_tillganglig_webb_2004_14.pdf 2 webzone.k3.mah.se/k99ac3hl/helenalackmagisterkogniton2003.pdf

Läs mer

Hemsida. Lathund för medlemsföreningar. Funktioner för medlemsföreningar på hemsidan. Syfte med medlemsföreningens sidor

Hemsida. Lathund för medlemsföreningar. Funktioner för medlemsföreningar på hemsidan. Syfte med medlemsföreningens sidor Hemsida Lathund för medlemsföreningar 2015 10 13 Funktioner för medlemsföreningar på hemsidan Varje medlemsförening har en egen sektion på scuf.se Styrelsen kan redigera sin medlemsförenings sidor, skriva

Läs mer

Manuell installation av SQL Server 2008 R2 Express för SSF Timing

Manuell installation av SQL Server 2008 R2 Express för SSF Timing Manuell installation av SQL Server 2008 R2 Express för SSF Timing Innehåll 1. Metoder att installera...1 2. Förutsättningar...2 DotNet Framework 3.5...2 MSI Installer 4.5...2 3. Hämta SQL Server 2008 R2

Läs mer