Utveckling av en Windows Service för databassynkronisering med Microsoft Sync Framework

Storlek: px
Starta visningen från sidan:

Download "Utveckling av en Windows Service för databassynkronisering med Microsoft Sync Framework"

Transkript

1 Utveckling av en Windows Service för databassynkronisering med Microsoft Sync Framework Christian Vik Examensarbete för ingenjörsexamen (YH) Utbildningsprogrammet för informationsteknik Vasa 2011

2 EXAMENSARBETE Författare: Christian Vik Utbildningsprogram och ort: Informationsteknik, Vasa Handledare: Kaj Wikman Titel: Utveckling av en Windows service för databassynkronisering med Microsoft Sync Framework Datum Sidantal 45 Abstrakt Detta examensarbete utfördes åt Hogia Ferry Systems. Examensarbetet behandlar utvecklingen av ett synkroniseringsverktyg för databaserna som företagets produkter använder. Lösningen kommer att ersätta ett befintligt system för synkronisering. Fokus för detta projekt ligger på utvecklingen av en synkroniseringstjänst för multipla typer av databaser. Databaserna som stöds är SQL Server, Informix samt Oracle. För utvecklingen av själva synkroniseringen har Microsoft Sync Framework använts. För att få konfigureringen och mappningen av databaserna dynamisk görs all konfigurering via XML-filer. För schemaläggning av synkroniseringen har Quartz.NET använts. Synkroniseringstjänsten har stöd för både schemalagd samt manuell synkronisering. Projektet utvecklades på Microsoft.NET plattformen och utvecklingen skedde i Visual Studio 2010 med programmeringsspråket C#. Resultatet blev ett fungerande synkroniseringsverktyg implementerat som en Windows Service samt en klient skriven i WPF där kommunikationen med servicen sker via WCF. Språk: svenska Nyckelord: databassynkronisering, Sync Framework, Quartz.NET, XML, WPF, WCF Förvaras: Examensarbetet finns tillgängligt antingen i webbiblioteket Theseus.fi eller i Tritonia.

3 OPINNÄYTETYÖ Tekijä: Christian Vik Koulutusohjelma ja paikkakunta: Tietotekniikka, Vaasa Ohjaaja: Kaj Wikman Nimike: Windows service tietokannan synkronoinnin kehittäminen Microsoft Sync Frameworkilla Päivämäärä Sivumäärä 45 Tiivistelmä Tämä opinnäytetyö tehtiin Hogia Ferry Systemsille. Tutkintotyö käsittelee synkronointityökalun kehittämisen tietokantaan, jota yrityksen tuotteet käyttävät. Ratkaisu tulee nykyisen ole synkronointijärjestelmän tilalle. Tämä projekti kohdistaa synkronointipalvelun kehittämisen useimmille eri tietokannoille. Tietokannat, joita tuetaan ovat SQL Server, Informix sekä Oracle. Synkronointityön kehittämiseksi olen käyttänyt Microsoft Sync Frameworkia. Jotta saataisiin tietokantojen kokoonpano ja kartoitus dynaamiseksi, teen kaiken kokoonpanon XML-tiedostojien avulla. Synkronoinnin ajastamiseen olen käyttänyt Quartz.NETiä. Synkronointipalvelulla on tuki sekä ajastetulle että käsin tehtävälle synkronisoinnille. Projekti kehitettiin Microsoft.NET perustalla ja kehitys tapahtui Visual Studio 2010:llä ohjelmointikielellä C#. Tuloksena saatiin toimiva synkronointityökalu toteutettuna kuten Windows Service sekä WPF:ssä kirjoitettu asiakasohjelma missä huollon kommunikaatio tapahtuu WCF:n kautta. Kieli: ruotsi Avainsanat: tietokannan synkronointi, Sync Framework, Quartz.NET, XML, WPF, WCF Arkistoidaan: Opinnäytetyö on saatavilla joko ammattikorkeakoulujen verkkokirjastossa Theseus.fi tai kirjastossa.

4 BACHELOR S THESIS Author: Christian Vik Degree programme: Information Technology, Vaasa Supervisor: Kaj Wikman Title: Development of a Windows Service for database synchronization using Microsoft Sync Framework Date Number of pages 45 Abstrakt This Bachelor s thesis was made for Hogia Ferry Systems. The project deals with the development of a synchronization tool for the databases that the company s products use. The solution will replace an existing synchronization system. The focus for this project is the development of a synchronization service for multiple types of databases. The supported databases are SQL Server, Informix and Oracle. Microsoft Sync Framework has been used for the development of the synchronization. To get the configuration and mapping dynamic, all the configuration are stored in XML files. Quartz.NET has been used for the scheduling of the synchronization. The synchronization service has support for both scheduled and manual synchronization. The project was written with C# for the Microsoft.NET framework using Visual Studio The result is a working synchronization tool implemented as a Windows Service along with a Client written in WPF where the communication is done with WCF. Language: Swedish Key words: database synchronization, Sync Framework, Quartz.NET, XML, WPF, WCF Filed at: The thesis is available either at the web library Theseus.fi or at Tritonia Academic Library, Vaasa.

5 Innehållsförteckning Innehållsförteckning Förkortningar och definitioner 1 Inledning Företaget Hogia Hogia Ferry Systems Projektbeskrivning Existerande lösning Begränsningar & krav Programvara och utvecklingsverktyg Microsoft Visual Studio 2010 Professional Databaserna Microsoft SQL Server 2008 R IBM Informix Oracle Microsoft.NET Framework Microsoft Sync Framework Entity Framework Quartz.net C# WPF Windows Presentation Foundation WCF Windows Communication Foundation Utförande Inledning Sync Framework vs Entity Framework Synkroniseringstjänsten Implementation av Windows servicen Implementation av WCF-tjänster Konfiguration Schemaläggaren Synkroniseringsmodulen Synkroniseringsmotorn... 26

6 3.4 Klienten Konfigureringsmöjligheter Manuell synkronisering Testning Resultat Diskussion Arbetets gång Tekniken Kommentarer Källförteckning... 43

7 Förkortningar och definitioner Android Android är ett operativsystem för bl.a. mobiltelefoner och utvecklas främst av Google och Open Handset Alliance. Arbetsminne Assembly BOOKIT BSD COM COM+ Databas Debugger DLL Arbetsminne är det minne som används för att lagra de datorprogram som körs och dess data. En assembly i.net är ett kompilerat kodbibliotek som används i den slutliga produkten. Dessa kan byggas som två olika typer: proces-assembly som är körbara program, EXE-filer, och libraryassembly som är en DLL-fil. BOOKIT är ett system bestående av flera olika applikationer för färjebokningar. Mer om detta kan läsas i kap BSD, Berkeley Software Distribution, utvecklades under och 1980-talet och är ett Unix-liknande operativsystem. Några operativsystem som används idag och som är baserade på detta är bl.a. FreeBSD, OpenBSD och Mac OS X. COM, Component Object Model, är en teknik som används för att kommunicera mellan olika objekt inom ett eller flera olika program. COM är plattforms- och språkoberoende. COM+ är en vidareutveckling av COM. I detta dokument behandlas relationsdatabaser. En relationsdatabas är en typ av databas som organiserar data i olika tabeller där kolumner i dessa tabeller kan ha en relation till andra tabeller. Dessa databaser behandlas mer i kap En debugger, översätts ibland till avlusare, är ett program som kan användas för att analysera ett program och dess minne under körning. DLL, Dynamic Linked Library, är Microsofts implementation av delade programbibliotek. Detta betyder att en fil som innehåller specifika programfunktioner kan användas av flera olika program för att man t.ex. inte skall behöva inkludera gemensam kod i flera program.

8 GNU GNU GPL GNU LGPL Implementera Interface ios Java Klassbibliotek Klient GNU-projektet skapades av Richard Stallman 1984 med målet att utveckla ett fritt UNIX-liknande operativsystem. GNU är en rekursiv akronym som står för GNU is Not Unix, vilket på svenska blir GNU är inte Unix. GNU går under licensen GNU GPL GNU General Public License är en licens för fri programvara. Kod som är under GPL-licens är helt fri att använda och förbättra, men då man vidaredistribuerar programvaran måste man göra det under samma licens. Detta betyder att källkoden måste vara öppen för de program som är under GPL-licensen. Licensen i sin helhet hittas på adressen ( ) GNU Lesser General Public License är en licens för fri programvara. Kortfattat får man använda kod från ett projekt som är under LGPL-licens i sitt eget projekt, men måste då använda samma licens för det egna projektet. Det är dock tillåtet att länka till ett externt bibliotek under LGPL-licens fastän man använder egen licens själv. Licensen i sin helhet hittas på webbadressen ( ) Att implementera en metod är den praktiska tillämpningen av metoden. Ett interface, eller gränssnitt, inom programmering är en typ av kontrakt. Ett objekt implementerar ett interface för att garantera att det stöder vissa operationer, på så vis kan man vara säker på att en viss metod finns på olika objekt om de bara implementerar det rätta interfacet. ios är ett operativsystem för mobiltelefoner och surfplattor och är utvecklat av Apple. Java är ett plattformsoberoende objektorienterat programmeringsspråk. Java nämns mer i kap Ett klassbibliotek är, i Windows miljö, oftast en DLL-fil. Ett klassbibliotek är en samling klasser och datastrukturer som kan användas till ett eller flera olika program. En klient är oftast en typ av program som gör det möjligt att arbeta mot ett annat program som kan köras på någon annan dator.

9 Konstruktor Linux Mac OS X ORM P2P Plugin Proxy Reflection RSS Server Synkronisering SQL Inom programmering är en konstruktor en speciell funktion i ett objekt som alltid körs då objektet skapas. Linux är en fri UNIX-liknande kärna för operativsystem som skapades av Linus Torvalds. I de flesta fall då man talar om Linux menar men egentligen GNU/Linux som är ett operativsystem som baserar sig på Linux-kärnan samt program från GNU-projektet. Mac OS X är ett operativsystem för Apples Macintosh-datorer. ORM, Object/Relational Mapping, är ett system för att konvertera databastabeller till objekt inom objektorienterad programmering. P2P, eller peer-to-peer, är ett nätverk som inte fungerar enligt server-klient-principen utan noderna i nätverket är ihopkopplade med andra noder. Ett plugin, kan även kallas insticksprogram eller modul, är ett program som inte körs som ett friståendeprogram utan som en del av ett annat program. Plugin används oftast för att lägga till mer funktionalitet till ett program. En proxy är vanligtvis en server som ligger mellan en klient och en annan server. Proxyns uppgift är då att dirigera om trafiken mellan klienten och den andra servern. Reflection är en process där ett datorprogram kan granska och modifiera sin egen struktur och beteende under programmets körning. RSS är en samling XML-baserade format som används för att publicera ofta uppdaterat material på webbsidor som t.ex. nyheter på nyhetssidor. Ett RSS-dokument innehåller oftast en full artikel eller en sammanfattning samt publiceringsdatum. Ett serverprogram är ett datorprogram som man kan ansluta till från ett klientprogram från antingen samma dator eller från någon annan dator eller mobil enhet över nätverk/internet. Synkronisering är då två eller flera objekt görs att t.ex. vara lika eller innehålla samma information vid en viss tidpunkt. SQL (Structured Query Language) är ett standardiserat språk som används för relationsdatabaser för att hämta eller modifiera data.

10 TCP UNIX Windows Windows Service WS WSDL XML TCP (Transmission Control Protocol) är ett dataöverföringsprotokoll som används t.ex. för kommunikation över internet. UNIX är en grupp operativsystem för datorer och började utvecklas Windows är en serie operativsystem för datorer och utvecklas av Microsoft. Första versionen av Windows släpptes 1985 En Windows Service är ett program som ofta är utvecklat för att köras under lång tid och utan att behöva interaktion av användare. En Windows Service kan konfigureras att starta redan då Windows startar eller genom manuell start. Då en Windows Service är igång körs den i bakgrunden i systemet och om man behöver konfigurera eller arbeta mot den används oftast någon typ av klient, då servicen inte har något eget grafiskt gränssnitt. WS (Web Services), webbtjänster, är en metod för datorprogram att kommunicera med varandra över nätverk. WSDL (Web Services Description Language) är ett XML-baserat format för att beskriva funktionaliteten hos, och hur man anropar, en webbtjänst (WS). XML (extensible Markup Language) är ett utbyggbart språk som främst används för att utväxla data mellan olika system eller program. Datan i ett XML-dokument skickas som text som även går att läsas av människor.

11 1 1 Inledning Examensarbetet utfördes åt företaget Hogia Ferry Systems, som är ett medelstort mjukvaruföretag i Korsholm. Examensarbetets uppgift gick ut på att planera och utveckla ett verktyg för att hålla databaser synkroniserade. De databaser detta främst gäller är databasen som används för deras huvudprodukt, kallad BOOKIT, men även övriga databaser kommer att gå att synkroniseras. 1.1 Företaget Hogia Programvaruföretaget Hogia grundades av Bert-Inge Hogsved 1980 i Stenungssund i Sverige och är ett helt familjeägt och självfinansierat företag. I dag består Hogia-gruppen av ett tjugotal företag som alla håller på med mjukvara i någon form. Varje enskilt bolag är komplett på det sättet att de ansvarar för allt från utveckling och försäljning till kundservice inom sitt verksamhetsområde. Bland de system som utvecklas av Hogia-företagen återfinns bl.a. system för kollektivtrafiken, färjetrafik, transport & lagerlogistik, terminalsystem och redovisningssystem Hogia Ferry Systems Hogia Ferry Systems (HFS) är ett av företagen i Hogia-koncernen och finns i Korsholm, Finland. HFS grundades redan 1981 och hette då Consy. I samband med att man gick ihop med Hogia-gruppen byttes namnet till Hogia Ferry Systems. Idag har HFS ca 40 anställda. HFS har sedan 1987 utvecklat och sålt ett bokningssystem för färjetrafik kallat BOOKIT. BOOKIT är ett system bestående av flera olika applikationer för färjebokningar. All information i BOOKIT:s olika applikationer sparas i en gemensam databas vilket ger den möjligheten att alla applikationer kan fritt dela information mellan varandra. Även om BOOKIT är en standardprodukt är den byggd för att vara modulär, skalbar och utökningsbar så att kunden får den funktionalitet de behöver. BOOKIT består bl.a. av följande applikationer: - BOOKIT Reservation - BOOKIT Check-In - BOOKIT Finance - BOOKIT Reports

12 2 - BOOKIT Quick Sale - Web Application - BOOKIT SOA Plattform. BOOKIT var från början skrivet i Informix 4GL, men 2001 började man utveckla en version i Microsoft.NET. I dag sker all nyutveckling på.net-versionen och endast underhåll på den äldre 4GL-versionen för de kunder som fortfarande inte uppgraderat till.netversionen. 1.2 Projektbeskrivning Projektet går ut på att ersätta det gamla synkroniseringsverktyget med en snabbare och mer tillförlitligt lösning. Den nya synkroniseringslösningen kommer att implementeras som en Windows-service. Servicen kommer att göras så att den kan köras på i princip vilken dator som helst i nätverket, bara den har tillgång till de databaser som ska synkroniseras. För att kunna konfigurera synkroniseringsservicen, t.ex. att ställa in vilken/vilka databaser som ska synkroniseras och när, kommer också en klient att utvecklas. Klienten och servern ska dessutom kunna kommunicera med varandra både såväl lokalt som över nätverket Existerande lösning Den existerande lösningen som används för synkronisering av databaserna är ett plugin för TaskScheduler som är ett eget utvecklat program som används för att köra schemalagda aktiviteter. Den plugin för TaskScheduler som används för synkroniseringen är begränsad till att synkronisera enbart en tabell åt gången, vilket betyder att för att kunna synkronisera hela databasen måste flera instanser av samma plugin köras. Detta medför problem i och med att flera, eller i värsta fall alla, tabeller kan börja synkroniseras under samma tillfälle. Detta kan sänka prestandan betydligt och det betyder också att man inte kan ha några relationer mellan tabellerna i databasen som det ska synkroniseras till. Själva synkroniseringen fungerar så att pluginen kör ett SQL-kommando mot BOOKIT:s databas för att se vilka rader som ändrats sedan senaste synkroniseringen. Data hämtas sedan från databasen i batchar med ett specificerat antal rader per batch och kopieras sedan in i CRM-databasen. CRM-databasen används av kunderna t.ex. för att ta ut tyngre statistik rapporter som annars skulle påverka prestandan negativt för BOOKIT.

13 1.2.2 Begränsningar & krav Ett av kraven på den nya synkroniseringen är att den måste stöda tre typer av databaser, MS SQL Server, Oracle och Informix. Detta medförde också att de ramverk och klassbibliotek som används måste stöda dessa typer av databaser. Det andra kravet var att synkroniseringen skulle gå att konfigurera via något verktyg så att man inte behöver ändra i programmets kod varje gång databasen ändras. Utöver detta är det enda övriga kravet att synkroniseringen ska köras under Windows Vista eller nyare. 3

14 4 2 Programvara och utvecklingsverktyg Det utvecklingsverktyg som använts för all programmering och utveckling av programmet är Microsofts Visual Studio 2010 och det programmeringsspråk som främst använts är C#, Visual Basic.NET har också använts i viss mån men endast för de projekt som refereras från BOOKIT. C# valdes som språk både p.g.a. egen erfarenhet, men också därför att största delen av den dokumentation och exempelkod som finns över de använda ramverken och komponenterna är gjorda i C#. Några alternativ till Visual Studio är MonoDevelop och SharpDevelop. MonoDevelop är en fri utvecklingsmiljö som stöder både Mono och Microsoft.NET samt kan köras på Linux, Windows och Mac OS X. MonoDevelop har även stöd för C# och Visual Basic.NET. SharpDevelop är, liksom MonoDevelop, en fri utvecklingsmiljö med stöd för bl.a. C# och Visual Basic.NET. Valet föll ändå på att använda Visual Studio för utvecklingen, dels för att det redan används för övriga projekt och vissa av dessa projekt kommer att refereras av synkroniseringsprojekten och dels för att många av de program och tjänster som kommer att användas är från Microsoft och integrationen med Visual Studio är bättre. De databaser som synkningen har blivit implementerad och testad med är MS SQL Server 2008 R2 Standard, Oracle 11g och Informix 10 och Dessa databaser var inte valbara eftersom det är de databaser som redan stöds och används av företagets andra produkter. 2.1 Microsoft Visual Studio 2010 Professional Valet av Visual Studio 2010 framför Visual Studio 2008 var på grund av att 2010 har stöd för.net 4, vilket behövs för att kunna använda Entity Framework 4. Microsoft Visual Studio 2010 är en integrerad utvecklingsmiljö från Microsoft som används främst för programutveckling. Visual Studion kan användas för utveckling av både konsolapplikationer och grafiska applikationer, som t.ex. Windows-program och webbanpassade applikationer och system. Visual studion har stöd för bland annat följande programmeringsspråk: C/C++, VB.NET (Visual Basic.NET), C# (Visual C#) och F#. /16/ Kod-editorn i Visual Studio har support för bl.a. IntelliSense som är Microsofts implementation av kod auto-komplettering, kodomstrukturering (eng. code refactoring) och syntaxmarkering (eng. syntax highlighting). Den inbyggda debuggern har bl.a. stöd för program skrivna både.net och i native windows-språk som t.ex. C++. Debuggern har också stöd för s.k. breakpoints, som gör att programmet kan stanna och vänta på en given kodrad så

15 5 att man kan undersöka hur olika variabler påverkats och vid behov ändra koden utan att behöva starta om programmet som testas. /8/ I övrigt har Visual Studio stöd för integration av tredjeparts-komponenter och ramverk. Beroende på vilken typ av komponent man installerar läggs även extra funktionalitet in i Visual Studio, t.ex. rapportverktyg brukar komma med en designer för att skapa layouten till rapporten. Visual studio 2010 har även stöd för s.k. extensions som gör att man kan installera ytterligare funktionalitet direkt från programmet. Figur 1. Visual Studio 2010 kodeditor. 2.2 Databaserna Synkroniseringstjänsten kommer att stöda tre olika databaser, Microsoft SQL Server, Informix och Oracle. Orsaken till det är att våra nuvarande produkter redan stöder dessa, så synkroniseringen måste också göra det. Alla dessa databaser är av typen relationsdatabaser och använder sig av SQL-kommandot. Ett SQL-kommando är en fråga eller kommando till databasen för att t.ex. hämta eller manipulera data. SQL är standardiserat, men alla dessa databaser har lite olika variationer av språket som måste tas i beaktande då synkroniseringstjänsten skrivs. Här följer exempel på fyra av de kanske mest använda SQL-kommandona: SELECT column1, column2 FROM table1 WHERE column3 = value Figur 2. SQL Select-kommando

16 6 Detta kommando hämtar kolumnerna column1 och column2 från tabellen table1 där kolumnen column3 har värdet value. DELETE FROM table1 WHERE column3 = value Figur 3. SQL Delete-kommando Detta kommando tar bort alla rader från tabellen table1 där kolumnen column3 har värdet value. INSERT INTO table1 (column1, column2, column3) VALUES ( value1, value2, value ) Figur 4. SQL Insert-kommando Detta kommando lägger in en rad i tabellen table1 där kolumnen column1 får värdet value1, column2 värdet value2 och column3 värdet value3. UPDATE table1 SET column1= value1, column2= value WHERE column3 = value Figur 5. SQL Update kommando Detta kommando uppdaterar de rader i tabellen table1 där kolumnen column3 har värdet value. I de uppdaterade raderna kommer värdet i kolumn column1 att få värdet value1 och kolumn column2 värdet value2. En relationsdatabas är en typ av databas där informationen är organiserad i tabeller, eventuellt med relationer inom en tabell eller med andra tabeller. En rad i en tabell kan ofta motsvara någon typ av objekt, t.ex. en person, ett företag eller en beställningsorder. Ofta används åtminstone en restriktion i en tabell, den s.k. primärnyckeln som identifierar unika rader i en tabell. Om man har en tabell över t.ex. beställningsorders så kunde ordernummern vara primärnyckel. Främmande nycklar är en hänvisning till en nyckel i en annan tabell, t.ex. om man har en tabell för personer och en tabell för beställningar så kan det finnas en främmande nyckel mellan dessa två tabeller som kopplar ihop beställningarna med den person som gjorde dem. Alternativ till relationsmodellen som används av relationsdatabaser är: Flat modell Består av en tvådimensionell tabell där all data lagras. Hierarkisk modell I en hierarkisk modell är data organiserad i en trädstruktur, t.ex. Parent-Child relation där en parent kan ha flera child noder, men en child nod kan bara ha en parent. Förutom databaser följer t.ex. XML denna typ.

17 Nätverksmodell Ganska lik den hierarkiska modellen förutom att en child kan relatera till flera parents. Dimensionsmodell Dimensionsmodellen är en special anpassning av relationsmodellen som används för t.ex. summeringar i OLAP. I dimensionsmodellen finns en fakta tabell som beskrivs av s.k. dimensions och measures tabeller. En dimension ger ett sammanhang över fakta tabellen medan en measure är en storhet som beskriver faktatabellen, t.ex. antal eller intäkter. Objekt-relationsmodell Objekt-relationsmodellen är lika relationsmodellen men med en objektorienterad databasmodell Microsoft SQL Server 2008 R2 Microsoft SQL Server är en databashanterare från Microsoft. SQL Server är av typen relationsdatabas. Som frågespråk används SQL, eller närmare bestämt T-SQL som står för Transact-SQL. Första versionen av Microsoft SQL Server, 1.0, släpptes 1989 och den senaste versionen ( ) är 10.5 och går under namnet SQL Server 2008 R2. Till skillnad från flera av de andra stora databaserna kan Microsoft SQL Server numera enbart köras under operativsystemet Windows IBM Informix IBM Informix är en produktfamilj av relationsdatabaser (eng. Relational Database Management System) (RDBMS). Informix-projektet skapades av företaget Relational Database Systems Företaget bytte sedan namn till Informix Software köpte IBM upp Informix Softwares databasteknologi och allt däromkring samt dess kundbas. /3/ IBM Informix är designat från grunden för enkel skalbar administration och många funktioner som tillåter Informix att försvinna in i en applikation. I Informix har man också satsat på tillförlitlighet och flexibel replikering samt redundans alternativ för kontinuitet i kundens verksamhet. Informix kan köras på följande plattformar: Windows, Mac OS X, Linux, BSD, UNIX och z/os./4/ Oracle Oracle, eller Oracle Database, är liksom SQL Server och Informix också av typen relationsdatabas, eller närmare bestämt ORDBMS som står för Object-Relational Database Management System. ORDBMS liknar en traditionell relationsdatabas men med en objektorienterad databasmodell där objekt, klasser och arv stöds direkt i databasscheman och i frågespråket. Oracle använder SQL som frågespråk. 7

18 8 Oracle produceras och marknadsförs av Oracle Corporation och grundades Oracle kan köras på följande plattformar: Windows, Mac OS X, Linux, UNIX och z/os. /13/ 2.3 Microsoft.NET Framework Microsoft.NET Framework är ett programvaruramverk för Microsofts Windows operativ system..net-ramverket har kommit med som standard sedan Windows Server 2003, vilket betyder att alla Windows Server-versioner sedan 2003 samt Windows Vista och Windows 7 har.net ramverket färdigt installerat vid leverans. Microsoft.NET har stöd för flera olika programmeringsspråk, inklusive C# och VB.NET, och stöder också att ett program kan skrivas med flera olika programmeringsspråk. Basklassbiblioteket ger sådan funktionalitet som användargränssnitt, dataåtkomst, databasanslutningar, kryptografi, webapplikationer och nätverkskommunikation. Detta klassbibliotek används då av programmerare tillsammans med eventuella andra klassbibliotek samt egen utvecklad kod för att skapa de önskade funktionerna/applikationerna. Program som är skrivna i.net-ramverket körs i en mjukvarumiljö under namnet Common Language Runtime (CLR). CLR fungerar som en virtuell maskin så att programmerarna inte behöver ta i beaktande de specifika hårdvarukonfigurationerna. /11/ Ett alternativ till Microsoft.NET är Mono. Mono är ett gratis öppen källkodsbaserat projekt som leds av Novell för att skapa en Ecma-standard.NET-kompatibel uppsättning verktyg, bl.a. en C# kompilerare och CLR. Till skillnad från Microsoft.NET, som bara fungerar i Windows, fungerar Mono på bl.a. Android, BSD, ios, Linux, Mac OS X och Windows. Mono har full support för C# 4.0, men flera av de teknologier som finns i Microsoft.NET saknas ännu i Mono, bl.a. WPF, Entity Framework, Workflow Foundation och WCF. 2.4 Microsoft Sync Framework Microsoft Sync Framework är en omfattande synkroniseringsplattform med möjligheter för samarbete och off-line-läge för applikationer och tjänster mellan datorer och mobila enheter. En av huvudfunktionerna i Sync Framework är att man kan skapa egna providers, vilket gör det möjligt att synkronisera i princip vilken typ av data som helst. En provider för en viss typ av datakälla gör det möjligt att synkronisera denna typ. Providers som finns med i Sync Framework är: - Databassynkroniseringsprovider för databaser med ADO.NET drivrutiner. - Filsynkroniseringsprovider för filer och kataloger. - Webbsynkroniseringsprovider för t.ex. RSS.

19 9 Sync Framework kan användas för att arbeta med data utan att behöva vara uppkopplad mot datakällan för att sedan då man är färdig bara skicka ändringarna. Då en klient skickat in ändringar finns också möjligheter att kunna meddela övriga klienter att ändringar skett och på så vis hålla dem synkroniserade, s.k. publish/subscribe sync, samt P2Psynkronisering. /7/ Sync Framework har även inbyggd funktionalitet för upptäckande av konflikter, d.v.s. när den data en klient ändrat redan blivit ändrad av en annan klient sedan den senaste synkroniseringen, och kan då markera dem för manuell bearbetning eller använda förhandsdefinierade metoder. För att synkronisera data mellan t.ex. två databaser behövs inte direkt tillgång till databaserna, utan Sync Framework kan också använda bl.a. web services och WCF bara det finns en proxy för att abstrahera bort datakällan. Klienterna delas upp i tre olika kategorier: - Full deltagare (Full Participant) - Partiell deltagare (Partial Participant) - Enkel deltagare (Simple Participant) En full deltagare är sådana enheter där utvecklarna kan installera programvara direkt på enheten, t.ex. en dator eller smarttelefon är sådana enheter. En partiell deltagare är en sådan enhet som kan lagra data men där man inte kan köra egna program. Exempel på sådana enheter är t.ex. masslagringsenheter. En enkel deltagare är sådana som bara kan ge information då man frågar efter den. Dessa enheter kan inte lagra eller ändra informationen. RSS är ett exempel på en sådan. 2.5 Entity Framework 4 ADO.NET Entity Framework (EF) är ett ORM ramverk för.net-ramverket. Syftet med EF är att abstrahera bort relationsschemamodellen som används i en relationsdatabas till objekt/klasser i.net. Detta medför då att man i programkoden inte behöver känna till den exakta databasstrukturen samt att det blir lättare att anpassa programmet för ändringar i databasen. Entity Framework är databasoberoende och använder sig av ADO.NET för kommunikation med databaser. Detta betyder att EF skall vara kompatibel med en databas om det finns en

20 10 ADO.NET Provider för den. EF använder sig i grunden av SQL-kommandon för att kommunicera med databasen, men dessa kommandon exponeras aldrig mot användaren utan denne använder sig av de metoder EF erbjuder för att arbeta mot databasen. Man kan däremot inte editera databasstrukturen via EF. En provider för EF finns åtminstone för följande databaser: Sql Server MySQL Oracle SQLite PostgreSQL DB2 Informix Första versionen av EF (EFv1) inkluderades med.net 3.5 Service Pack 1 samt Visual Studio 2008 Service Pack 1. Den andra versionen av EF, kallas Entity Framework 4.0, inkluderades som en del av.net 4.0. Det finns också flera alternativ till Entity Framework, här nedan följer några: NHibernate SubSonic Mindscape s LightSpeed NHibernate är liksom Entity Framework en ORM-lösning för Microsoft.NET-ramverket. NHibernate är en portad version av Hibernate som är skriven i Java och är i nuvarande version, 3.0.0, en fri och öppen källkodsprojekt som går under licensen GNU LGPL. Från och med version har NHibernate stöd för Microsoft.NET 3.5. /12/ SubSonic har mindre funktionalitet än NHibernate men fokuserar i stället på att vara mer flexibelt och snabbare att använda. SubSonic fungerar dessutom mot de flesta databaser./1/ LightSpeed, till skillnad från övriga nämnda alternativ, är inte en gratis produkt. Det finns en fri Express-version, men den är begränsad till 8 modeller/klasser. Förutom stöd för Microsoft.NET har LightSpeed även stöd för Mono samt flera olika databaser. /9/

21 2.6 Quartz.net Quartz.NET är ett jobbschemaläggningssystem med öppen källkod. Quartz.NET är en portad version av ett jobbschemaläggningsramverk skrivet i programmeringsspråket Java. Quartz.NET kan köras som en del av ett annat program eller som ett eget program. Det kan också köras som ett kluster av flera program för belastningsbalans och/eller redundans funktionalitet. Quartz.NET:s jobbschemaläggning har stöd för s.k. triggers som bl.a. anger vilka tidpunkter ett jobb ska köras. En trigger behöver också start- och eventuellt stoppdatum för när den skall vara aktiv. En trigger kan skapas med kombinationer av dessa direktiv: på en given tidpunkt på dagen på givna veckodagar på givna dagar i månaden eller året upprepas ett specificerat eller oändligt antal gånger upprepas till en specificerad tid upprepas med ett intervall. Nuvarande version av Quartz.NET, 1.0.3, har stöd för.net 1.1 till 3.5, men fastän det inte har officiellt stöd för.net 4 ännu så har det fungerat utan problem i detta projekt. /14/ 2.7 C# Visual C# är Microsofts implementering av programmeringsspråket C#. C# är ett programmeringsspråk designat för att utveckla variationer av program för.net-ramverket. Visual Studio har fullt stöd för C# med bl.a. kodeditorn, kompilerare, projektmallar, designer och en kraftfull samt lättanvänd debugger. /15/ Eftersom C# har en hel del influenser från C++ liknar dessa två språk varandra i viss mån. Då även Java också bl.a. baserar sig på C++, även om C# och Java tagit sina egna spår, går det relativt enkelt att förstå program skrivna i de andra språken och att porta ett program mellan de olika språken. Utöver dessa tre vanligt förekommande språk finns även Visual Basic.NET (VB.NET) som, liksom C#, baserar sig på.net-ramverket. Funktionsmässigt är det väldigt lika C# då de funktioner som finns i.net-ramverket är samma oberoende språk, men syntaxmässigt är VB.NET väldigt olik de olika C-deriverade språken. 11

22 Nedan följer det klassiska Hello World-programmet i en version för vardera av de fyra språken. Hello World-programmets enda syfte är att skriva ut texten Hello, World! på skärmen då det körs. #include <iostream> void main() { std::cout << "Hello, world!"; } 12 Figur 6. Hello World i C++. using System; class ExampleClass { static void Main() { Console.WriteLine("Hello, world!"); } } Figur 7. Hello World i C#. public class HelloWorld { public static void main(string[] args) { System.out.println("Hello, World!"); } } Figur 8. Hello World i Java. Imports System Module Module1 Sub Main() Console.WriteLine("Hello, world!") End Sub End Module Figur 9. Hello World i Visual Basic.NET. 2.8 WPF Windows Presentation Foundation WPF är ett grafiskt system för att skapa och rendera grafiska användargränssnitt för Microsoft Windows-baserade applikationer. WPF har funnits med i.net-ramverket sedan version 3.0 och har kommit som standard i Windows Vista, Windows 7 och Windows Server Det finns även tilläggskomponenter för Windows XP SP2/SP3 och Windows Server 2003 för att installera stöd för WPF.

23 13 WPF är främst menat för programutvecklare och grafiker som vill skapa moderna och användarvänliga användargränssnitt utan att behöva lära sig många olika teknologier. Några av funktionerna i WPF är: Bred integration WPF har inbyggt stöd för 3D (via DirectX), video, ljud, text hantering och vanliga 2-dimensionella grafiska kontroller som alla kan användas med samma programmeringsmodell. Med tidigare alternativ har man behövt lära sig de olika delarna separat och försöka få dem integrerade med varandra så gott det gått. Upplösningsoberoende Program skrivna i WPF har den möjligheten att de kan förminskas och förstoras, både hela fönster eller vissa komponenter, oberoende av upplösningen på skärmen utan att för den skull se förstörda ut. Detta är till stor del möjligt p.g.a. att WPF använder vektorgrafik. Hårdvaruacceleration Eftersom WPF är byggt ovanpå Direct3D så finns det fullt stöd för hårdvaruacceleration i WPF. Allt innehåll i en WPF-applikation, oberoende av om det är 2D eller 3D, konverteras till 3D-trianglar samt andra Direct3D-objekt som sedan renderas av hårdvaran. Om hårdvaran inte stöder 3D faller renderingen automatiskt över till mjukvarurendering som dock inte är lika snabb som hårdvarurenderingen då den belastar datorns processor mer. Deklarativ programmering I WPF är användargränssnittet separerat från programlogiken. Användargränssnittet byggs upp av XAML, Extensible Application Markup Language, -filer. WPF och XAML kan liknas vid hur man använder HTML för att bygga upp utseendet på en webbsida. Genom att separera programlogiken och användargränssnittet finns den möjligheten att grafiker kan lättare och snabbare skapa eller ändra utseendet på ett program utan att nödvändigtvis kunna programmera. Enkel distribuering WPF, liksom Windows Forms, har stöd för olika former av distribuering. Det är möjligt att använda bl.a. Windows Installer eller ClickOnce för vanliga program eller att köra programmet i en webbläsare. /10/

24 14 Figur 10. Visual Studio 2010 WPF designer med XAML-editor. 2.9 WCF Windows Communication Foundation WCF, Windows Communication Foundation eller Indigo, som dess kodnamn var under utvecklingen, är en teknologi som gör det möjligt för olika program eller delar av program eller system att kommunicera med varandra. Det är m.a.o. ett ramverk för att bygga s.k. serviceorienterade applikationer. Några av de funktioner som finns i WCF: SOA Service-Oriented Architecture innebär att distribuerade informationssystem organiseras som kommunicerande tjänster. SOA kan bestå av olika entiteter enligt figuren nedan. /6/ Figur 11. Schema över en SOA arkitektur.

25 15 Förklaring av figur 11: - Service Consumer är t.ex. en applikation som behöver en service. Det är denna entitet som söker upp servicen från serviceregistret, tar upp en förbindelse och kör servicens funktion. Service Consumern kör servicen genom att sända ett anrop enligt kontraktet. - Service Providern är en adresserbar entitet i nätverket som accepterar och kör anrop som kommer från Consumern. Providern publicerar sitt kontrakt i registret så att Consumern kan få tag i det. - Service Registry är en entitet som accepterar och lagrar kontrakt från service providers och ger ut dessa till service consumers. - Ett Contract är en specifikation över hur en consumer skall kommunicera med providern. Serviceorienterat En serviceorienterad arkitektur har den fördelen att servicen är löst kopplad istället för hårdkodad mellan olika applikationer. Att vara löst kopplade betyder att vilken klient på vilken plattform som helst kan ansluta till servicen så länge de väsentliga kontrakten uppfylls. Interoperabilitet WCF kan samarbeta med flera andra olika teknologier, som t.ex. Web Service Protocol, COM+, COM och.net remoting. Servicemetadata WCF har stöd för att publicera servicemetadata i industristandarder som WSDL, XML och WS. Metadatan kan sedan användas för att automatiskt generera och konfigurera klienter för att kunna ansluta till WCF-servicen. Data contract För att hantera den data som skickas över WCF kan man skapa klasser som representerar den. WCF genererar sedan automatiskt det metadata som klienten behöver. Säkerhet Meddelanden som går över WCF kan krypteras och man kan också göra så att en användare måste identifiera sig före den kan ta emot meddelanden. Säkerheten kan implementeras med standarder som t.ex. SSL eller WS- SecureConversation. /5/ För att skapa en WCF-server och -klient behövs relativt lite kod. Här nedan följer ett klassdiagram samt exempel på en enkel implementation för en server/klient.

26 16 Figur 12. Klassdiagram för ett WCF-kontrakt samt implementationen. Först skapas service kontraktet som WCF-servicen kommer att implementera. Detta kontrakt exponeras senare till klienten så att den får informationen den behöver för att kunna anropa servicen. using System.ServiceModel; namespace SimpleWCF { [ServiceContract] interface IService { [OperationContract] int DoAddition(int Value1, int Value2); } } Figur 13. Definiering av ett WCF-kontrakt. Efter att kontraktet är klart implementeras servicen. Service-klassen implementerar interfacet (kontraktet) ovan. Funktionen DoAddition tar två parametrar och returnerar summan av dem. using System.ServiceModel; namespace SimpleWCF { [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)] public class Service : IService { public int DoAddition(int Value1, int Value2) { return Value1 + Value2; } } } Figur 14. Implementation av WCF-service.

27 17 Med koden nedan startas en WCF-server. ServiceHost svh = new ServiceHost(typeof(Service)); svh.addserviceendpoint(typeof(iservice), new NetTcpBinding(), "net.tcp://localhost:8000"); svh.open(); Figur 15. Instansiering av en WCF-service. Med koden nedan ansluter man till servern som startades tidigare och anropar funktionen DoAddition med parametrarna 5 och 10. Efter att server tagit emot anropet, behandlat det och returnerat ett värde kommer en meddelanderuta att visas med talet 15. ChannelFactory<IService> cf = new ChannelFactory<IService>( new NetTcpBinding(), "net.tcp://localhost:8000"); IService s = cf.createchannel(); int response = s.doaddition(5, 10); (s as ICommunicationObject).Close(); MessageBox.Show(response.ToString()); Figur 16. Ansluta till en WCF-Service.

28 18 3 Utförande 3.1 Inledning Synkroniseringsverktyget kommer att utvecklas med något existerande ramverk för hantering av dataöverföring mellan databaserna. Valet står mellan Sync Framework och Entity Framework, så förrän utvecklingen kan påbörjas av själva verktyget måste en utvärdering ske av dessa två ramverk. Verktyget kommer sen att implementeras som en Windowsservice med funktionalitet för schemalagda synkroniseringar och loggning. Utöver Windows-servicen kommer även en klient att skapas för att kunna köra manuella synkningar och för att konfigurera när synkningarna skall köras. 3.2 Sync Framework vs Entity Framework Före utvecklingen av synkroniseringsverktyget, härefter SyncService, kunde påbörjas var man tvungen att ta ett beslut på vilket ramverk som skulle användas för hanteringen och överföringen av data. Som alternativ fanns Microsoft Sync Framework och Entity Framework. För att ta det beslutet beslöts att man utvecklar ett enkelt program i två versioner som använder de respektive två ramverken. Programmets enda syfte var att göra en envägssynkronisering av data från två tabeller mellan två databaser där databasschemat var identiskt förutom att tabell- och kolumnnamn var översatta till engelska i klientdatabasen. Programmen implementerades så simpelt som möjligt, d.v.s. ett enda projekt som använde sig av de två ramverken och enbart den nödvändiga koden för att möjliggöra en envägssynkronisering av data från en databas till en annan. Som programmeringsspråk valdes C# och utvecklingen skedde i Visual Studio Databasen som användes i testet var MS SQL Server 2008 R2 Standard. I de tester som kördes med dessa två program visade det sig att prestandamässigt var de två ramverken i princip lika effektiva i denna enklaste variant. I samtliga tester där mängden data varierade mellan och rader var Entity Framework 1 2 sekunder snabbbare. På grund av den lilla tidsskillnaden valde man att avgöra beslutet på mängden arbete att implementera en fullt fungerande lösning och på de båda ramverkens för- och nackdelar. MS Sync Framework Fördelar: - Inbyggd funktion för hantering av s.k. anchors som bestämmer vilket intervall av data som ska synkroniseras och vad som redan blivit synkroniserat.

29 19 - Har stöd för att använda direkta SQL-kommandon för att hämta och spara data. - Har stöd för s.k. Batching, vilket gör det möjligt att dela upp det data som ska synkroniseras i mindre delar för att undvika att datorns arbetsminne inte fylls upp under synkronisering av större mängder data. - Går bra att använda diverse olika datakällor eftersom man kan implementera egna DataProviders för att ansluta till dessa olika källor. Nackdelar: - Väldigt komplicerat om databaserna som ska synkroniseras inte har samma schema. - Delvis bristfällig dokumentation och väldigt få fungerande exempel. - Tar betydligt längre att komma igång med än Entity Framework Entity Framework 4 Fördelar: - Enkelt att komma igång med. - Väldigt flexibelt då man själv kan implementera hela överföringen av data. - Går bra att synkronisera data mellan databaser som har helt olika scheman då man själv kan transformera datan. Nackdelar: - Eftersom Entity Framework inte har någon färdig implementation av överföringen av data från en databas till en annan måste man implementera den själv, detta gäller också funktioner som t.ex. anchors och batchning som finns i Sync Framework. - Fungerar inte bra då databaslagret skall vara transparent, d.v.s. att programmet ska fungera lika oberoende av vilken av de tre databaserna som används. På grund av att datan som skall synkroniseras skall vara identisk mellan de två databaserna och då det behöver stöda flera typer av databaser så beslöt man att MS Sync Framework är bättre lämpad för det här projektet. Då MS Sync Framework har inbyggt stöd för anchors och batchning av data så behöver man inte heller implementera detta, så som man hade blivit tvungen att göra med Entity Framework. Om uppgiften däremot hade krävt att datan skulle transformeras eller behandlas på något vis, t.ex. för att föra över data till en databas med ett annorlunda schema, så skulle Entity Framework ha valts.

30 Synkroniseringstjänsten Implementation av Windows servicen Servicedelen av SyncService implementeras som en enkel Windows-service, d.v.s. en klass som ärver basklassen ServiceBase som finns implementerad i Microsoft.NET under System. Serviceproces- biblioteket. Denna klass åter implementerar den funktionalitet som sker då servicen startas, stoppas och pausas. static class Program { static void Main() { ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new SyncService() }; ServiceBase.Run(ServicesToRun); } } public partial class SyncService : ServiceBase { private readonly Scheduler.Scheduler scheduler; } public SyncService() { InitializeComponent(); ServiceName = "Hogia SyncService"; scheduler = Scheduler.Scheduler.Instance; } protected override void OnStart(string[] args) { scheduler.start(); } protected override void OnStop() { scheduler.stop(); } protected override void OnPause() { scheduler.pause(); } protected override void OnContinue() { scheduler.resume(); } Figur 17. Kod för att skapa en Windows service. För att separera all funktionalitet i servicen från scheduleringen, synkningen samt kommunikationen med klienten så har det skapats en egen klass, kallad Scheduler, som innehåller all verklig funktionalitet. Scheduler-klassen har motsvarande funktioner som servicen, nämligen OnStart, OnStop, OnPause och OnContinue. Då en funktion anropas i servicen behöver den då bara anropa motsvarande funktion i Scheduler-klassen. Detta förenklar också testningen då man inte behöver installera om servicen i Windows för varje ändring, utan det går enkelt att skapa t.ex. ett litet program med en knapp för varje funktion och anropa Scheduler-klassen direkt. Scheduler-klassen är implementerad som en singleton, vilket betyder att då programmet körs kan det bara finnas en enda instans av Schedulerklassen.

31 21 Scheduler-klassen har fyra huvudfunktioner som sker i följande ordning: Starta upp WCF-tjänsterna som klienten kommunicerar med. Läsa in konfigurationen för de olika jobb som blivit specificerade för schemaläggaren. Starta upp Quartz.NET-schemaläggaren. Läsa in konfigurationen och starta om Quartz.Net efter att konfigurationen uppdaterats Implementation av WCF-tjänster Totalt implementeras tre WCF-tjänster enligt klassdiagrammet nedan: Figur 18. Klassdiagram över SyncServicens WCF-tjänster. Authentication Service Denna tjänst har endast två funktioner Login och Logout. Dessa används för autentisering mellan klienten och servern så att endast en person med behörighet kan ändra konfigurationen av jobb och göra manuella synkroniseringar. Login-funktionen gör i sin tur ett anrop till BOOKIT-servern för att autentisera mot befintliga BOOKIT-användare. Detta betyder att för att kunna använda SyncService-verktygen måste användaren finnas uppsatt i BOOKIT.

32 22 Management Service Denna tjänst innehåller de funktioner som behövs för att kunna konfigurera, lägga till och ta bort jobb från schemaläggaren. Utöver att kunna spara och hämta konfigurationen finns även funktionalitet för att meddela alla övriga inloggade användare att konfigurationen ändrats så att en användare inte sparar över de övrigas ändringar. Synchronization Service Denna tjänst innehåller funktioner för att hämta information om vilka databaser som synkroniseras för tillfället. Det finns även funktionalitet för att kunna manuellt synkronisera en alla eller enskilda tabeller i en databas som blivit uppsatt för synkroniseringsmodulen. Dessa tjänster startas upp då Start-funktionen i Scheduler-klassen anropas och kommer sedan att köra tills Stop-funktionen anropas. För att den s.k. Callback funktionaliteten, som gör det möjligt för servern att anropa klienterna och inte bara andra vägen, ska fungera används TCP som kommunikationsprotokoll för tjänsterna Konfiguration Konfigurationen av SyncService består av ett antal klasser. Huvudklassen, Configuration, har bara en lista av jobbklasser, Job, som finns uppsatta för schemaläggaren. Jobbklassen har en ID samt information om vilken dll jobbet ligger i och vad det heter. Ett jobb har dessutom en lista av trigger-konfigureringar och parametrar. Parameterklassen har enbart ett namn för parametern och ett värde. En trigger innehåller enbart information om när och inom vilka intervaller ett jobb ska köra. Nedan följer ett klassdiagram över Configurationklassen och dess underklasser. Figur 19. Klassdiagram över SyncServicens konfiguration. Konfigurationen sparas ned som en xml fil på servern där den läses upp av SyncServiceservicen då den startar. Konfigurationen kan skötas antingen via klienten för de som har behörighet eller genom att editera xml-filen för de som har tillgång till servern.

33 Schemaläggaren Det som Quartz.NET definierar som ett jobb är egentligen bara en klass. De enda kraven för att en klass skall fungera som ett jobb i Quartz är att den implementerar interfacet IJob som finns definierat i Quartz och att klassens konstruktor inte har några argument. I IJob interfacet finns metoden Execute definierad och det är denna metod som körs när ett jobb startas av Quartz. Ett jobb i Quartz kan skapas med följande kod: public class MyJob : IJob { // Konstruktorn får inte ta några parametrar. public MyJob() { } } // Viktigt att implementera denna funktion! // Denna funktion är utgångsläget för ett jobb. public void Execute(JobExecutionContext context) { // Visa ett meddelande med nuvarande datum och tid MessageBox.Show(DateTime.Now.ToString()); } Figur 20. Implementation av ett Quartz-jobb. För att lägga till jobbet MyJob, som skapades ovan, till schemaläggaren kan följande kod användas (se figur 21): private void CreateScheduler() { // Skapa ett nytt jobb med namnet JobName av typen MyJob. JobDetail jobdetail = new JobDetail("JobName", typeof(myjob)); // Skapa en trigger med namnet TriggerName som refererar till jobbet som // skapades tidigare och som startar nu och kör igång jobbet en gång varje // minut fram tills årsskiftet 2001/2012. CronTrigger ct = new CronTrigger(); ct.cronexpressionstring = "0 * * * *? 2011"; ct.starttimeutc = DateTime.Now.ToUniversalTime(); ct.jobname = "JobName"; ct.name = "TriggerName"; // Skapa schemaläggaren och starta den. ISchedulerFactory schedulerfactory = new StdSchedulerFactory(); IScheduler scheduler = schedulerfactory.getscheduler(); scheduler.start(); // Lägg till jobbet och triggern. scheduler.addjob(jobdetail, true); scheduler.schedulejob(ct); } Figur 21. Kod för att skapa en schemaläggare och lägga till ett jobb samt en trigger för jobbet.

Introduktion till Entity Framework och LINQ. Källa och läs mer https://msdn.microsoft.com/en-us/data/aa937709.aspx

Introduktion till Entity Framework och LINQ. Källa och läs mer https://msdn.microsoft.com/en-us/data/aa937709.aspx Introduktion till Entity Framework och LINQ Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Vad är Entity Framework? The Microsoft ADO.NET Entity Framework is an Object/Relational Mapping

Läs mer

Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen.

Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen. Entity Framework Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen. Vem är jag? Mitt namn är Björn Jönsson och jobbar på Tahoe Solutions, ni når mig via mail: bjorn.jonsson@tahoesolutions.se

Läs mer

Webbtjänster med API er

Webbtjänster med API er Webbtjänster med API er Mål med lektionen! Veta kursmålen. Lite grunder om WCF Vem är jag? Mitt namn är Björn Jönsson och jobbar på Tahoe Solutions, ni når mig via mail: bjorn.jonsson@tahoesolutions.se

Läs mer

INNEHÅLL. Konfigurering av SQL Server. Egenskaper Kommunikationsprotokoll

INNEHÅLL. Konfigurering av SQL Server. Egenskaper Kommunikationsprotokoll INNEHÅLL Konfigurering av SQL Server Egenskaper Kommunikationsprotokoll 1 KONFIGURERING AV SQL SERVER SQL Server är nästan självkonfigurerande. Minne, anslutningar och buffrar hanteras dynamiskt. Man kan

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

Mål med lektionen! Repetera och befästa kunskaperna.

Mål med lektionen! Repetera och befästa kunskaperna. Entity Framework Mål med lektionen! Repetera och befästa kunskaperna. Vad lektionen omfattar Repetera och gå igenom kursen lite snabbt. Vilka problem vill vi lösa? Vi arbetar med Webbapplikationer Vi kommer

Läs mer

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query). Arbeta med databas Översikt Arbeta med Entity Data Models. LINQ (Language Integrated Query). Lektion 1: Arbeta med Entity Data Models Introduktion till ADO.NET Entity Framework. Stöd i ADO.NET Entity Framework.

Läs mer

Webbtjänster med API er

Webbtjänster med API er Webbtjänster med API er Mål med lektionen! Titta på hur service:ar fungerar och hur vi programmerar dem. Vad lektionen omfattar WCF Service WCF Services Vad är en WCF service? En WCF Service är ett program

Läs mer

Daniel Akenine, Teknikchef, Microsoft Sverige

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

Läs mer

Christer Scheja TAC AB

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

Läs mer

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

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

Läs mer

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

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

Läs mer

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

SQLs delar. Idag. Att utplåna en databas. Skapa en databas Idag SQLs delar Hur skapar vi och underhåller en databas? Hur skapar man tabeller? Hur får man in data i tabellerna? Hur ändrar man innehållet i en tabell? Index? Vad är det och varför behövs de? Behöver

Läs mer

ASP.NET Thomas Mejtoft

ASP.NET Thomas Mejtoft ASP.NET Introduktion till ASP.NET Utveckla i ASP.NET I ASP.NET kan och bör man separera HTML-kod från övrig kod (C#, VB ) I enklare fall läggas kod i script-block Vanligtvis läggs den i en Code Behind-fil

Läs mer

Webservice & ERP-Integration Rapport

Webservice & ERP-Integration Rapport Webservice & ERP-Integration Rapport Hardwood AB Mustafa Lazem 930916-9713 Jonas Ahrne 920325-0379 Hasan Nerjovaj 940130-7195 Stefan Liden 920628-0639 2014-05-18 Innehåll Bakgrund... 2 Syfte... 2 Projektbeskrivning...

Läs mer

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer. Informationsinfrastruktur 7.5 hp Mattias Nordlindh Inledning Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer. Dokumentet består av

Läs mer

Web Services. Cognitude 1

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

Läs mer

30 år av erfarenhet och branschexperts

30 år av erfarenhet och branschexperts 30 år av erfarenhet och branschexperts Integrerad Säkerhet Integrerad Säkerhet Varför överordnat system Användarvänlighet Kvalitet Trygghet Kostnadseffektivitet Varför ett överordnat system? Med stora

Läs mer

Language Integrated Query, LINQ, och databaser

Language Integrated Query, LINQ, och databaser Language Integrated Query, LINQ, och databaser 1 Imperativ eller deklarativ programmering Imperativ programmering Du som programmerare beskriver i detalj alla steg som måste utföras för att lösa en viss

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

Din guide till. Teknisk Specifikation Säljstöd

Din guide till. Teknisk Specifikation Säljstöd Din guide till Teknisk Specifikation Säljstöd April 2014 Innehåll Systemkrav... 3 Operativsystem... 3 Mjukvara... 3 Maskinvara... 4 Datakällor... 4 Databas... 5 Databasstruktur... 5 Katalogstruktur...

Läs mer

ADO.NET Murach Kapitel 17-20

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

Läs mer

Version Namn Datum Beskrivning 1.0 Förutsättningar Vitec Ekonomi 1.1 Marie Justering för krav på Windows Server

Version Namn Datum Beskrivning 1.0 Förutsättningar Vitec Ekonomi 1.1 Marie Justering för krav på Windows Server Version Namn Datum Beskrivning 1.0 Förutsättningar Vitec Ekonomi 1.1 Marie 2017-03-09 Justering för krav på Windows Server 2012 1.2 Micke 2017-04-07 Vitec Ekonomi från x.60 kräver IIS 8 och websocket.

Läs mer

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer Java: Utvecklingsverktyg, datatyper, kontrollstrukturer Sven-Olof Nyström Uppsala Universitet 13 juni 2005 1 Utvecklingsverktyg för Java Vi rekommenderar Suns utvecklingsverktyg (SDK, tidigare JDK), se

Läs mer

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information. Vad är en databas? Exempel på databaser: Kortregister på kontor Sjukvårdsjournal Bokregister på bibliotek Medlemsregister i en förening Kundregister på företag Telefonkatalogen Databas = Organiserad samling

Läs mer

Webbservrar, severskript & webbproduktion

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

Läs mer

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

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

Läs mer

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Arv Fundamental objekt-orienterad teknik arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Programmeringsmetodik -Java 165 Grafisk respresentation: Arv

Läs mer

Innehålls förteckning

Innehålls förteckning Programmering Uppsats i skrivteknik Axxell Företagsekonomi i informationsteknik 19.3.2015 Respondent: Tomas Björklöf Opponent: Theo Wahlström Handledare: Katarina Wikström Innehålls förteckning 1. Inledning...3

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

Vad är en databas? Databasutveckling Med MySQL/MariaDB

Vad är en databas? Databasutveckling Med MySQL/MariaDB Databasutveckling Med MySQL/MariaDB Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Vad är en databas? Från Wikipedia En databas (tidigare databank) är en samling information som är organiserad

Läs mer

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det

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

Open Source - Eller som vi säger, Fri programvara

Open Source - Eller som vi säger, Fri programvara Rejås 1(27) Open Source - Eller som vi säger, Fri programvara Copyright 2006 Rejås Jag ger härmed rätten till alla att nyttja denna presentation på alla sätt som anses lämpliga så länge som syftet på något

Läs mer

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20 Idag Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten 2009 1 / 20 Idag Hur skapar vi och underhåller en databas? Hur skapar man tabeller?

Läs mer

Open Source - Eller som vi säger, Fri programvara

Open Source - Eller som vi säger, Fri programvara Open Source - Eller som vi säger, Fri programvara Copyright 2006, 2007 Marcus Rejås Rejås Datakonsult, http://www.rejas.se Jag ger härmed rätten till alla att nyttja denna presentation

Läs mer

Innehåll. MySQL Grundkurs

Innehåll. MySQL Grundkurs MySQL Grundkurs Copyright 2014 Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Innehåll Introduktion till databaser Installera MySQL lokalt Webbserverprogrampaket (XAMPP) Introduktion till phpmyadmin

Läs mer

Webbtjänster med API er

Webbtjänster med API er Webbtjänster med API er Mål med lektionen! En lite djupare inblick i RESTfulla tjänster Vad lektionen omfattar RESTful Services Överblick SOAP kan vara lite overkill för vissa specifika web service scenarion.

Läs mer

VAD GÖR DU / VEM ÄR DU?

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

Läs mer

Installationsanvisningar HogiaLön Plus

Installationsanvisningar HogiaLön Plus Installationsanvisningar HogiaLön Plus Installation Med den här installationen kan du installera HogiaLön Plus på Windows XP, Vista, Windows 7 och Windows 8. Om du vill installera en MSI-installation finns

Läs mer

JobOffice SQL databas på server

JobOffice SQL databas på server JobOffice SQL databas på server Nedan följer en instruktion hur du konfigurerar JobOffice kassas SQL databas på en server. Om du känner dig osäker på det här, kontakta någon lokal data- och nätverkstekniker.

Läs mer

Systemutvecklare SU14, Malmö

Systemutvecklare SU14, Malmö Systemutvecklare SU14, Malmö Tentamen, Tenta Utveckling med ramverket.net(35 YH-poäng) Plats: Plushögskolan Malmö Tid: 2 februari 2015, kl. 9.00-12.00 Tillåtna hjälpmedel: Papper, penna, suddgummi. Ej

Läs mer

Systemutvecklare.NET, C#/VB, C/C++, ASP.NET, T-SQL, JAVA Systemdesign

Systemutvecklare.NET, C#/VB, C/C++, ASP.NET, T-SQL, JAVA Systemdesign Rodolfo Weisser.NET, C#/VB, C/C++, ASP.NET, T-SQL, JAVA Systemdesign Översikt Rodolfo har mycket lång erfarenhet av systemutveckling i C# och på Microsoftplattformen och har god kunskap om Visual Studio

Läs mer

Innehåll Översikt: Introduktion till SQL Server... 3 Introduktion till plattform för SQL Server... 4 Översikt introduktion till plattform för SQL

Innehåll Översikt: Introduktion till SQL Server... 3 Introduktion till plattform för SQL Server... 4 Översikt introduktion till plattform för SQL 1 2 Innehåll Översikt: Introduktion till SQL Server... 3 Introduktion till plattform för SQL Server... 4 Översikt introduktion till plattform för SQL Server... 5 Arkitektur för SQL Server... 6 Arkitektur

Läs mer

Manuell installation av SQL Server 2008 R2 Express SP2 fo r SSF Timing

Manuell installation av SQL Server 2008 R2 Express SP2 fo r SSF Timing Manuell installation av SQL Server 2008 R2 Express SP2 fo r SSF Timing 1 Förutsättningar 1.1 Windows 7 och nyare DotNet Framework 3.5 SQL server 2008R2 kräver dotnet framework(.net) 2.0 för att fungera.

Läs mer

Operativsystem och användargränssnitt

Operativsystem och användargränssnitt Operativsystem och användargränssnitt Som du fick läsa tidigare behöver datorn förutom hårdvara också ett program för att hantera hårdvaran, dvs. ett operativsystem. Denna sida behandlar bland annat följande

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

1. Revisionsinformation

1. Revisionsinformation 7.4.2 Systemkrav Systemkrav 2018-12-06 2 (27) Systemkrav 7.4.2 Dokumentet beskriver de krav som systemet ställer på maskinvara och programvara i de servrar och klientdatorer som ska användas för systemet.

Läs mer

Android översikt. TDDD80 Mobila och sociala applikationer

Android översikt. TDDD80 Mobila och sociala applikationer Android översikt TDDD80 Mobila och sociala applikationer Översikt Köra app på mobil / emulator Android Studio introduktion Android kodning Android labb 1 Köra på mobil / emulator Developer mode på mobilen

Läs mer

Installationsanvisning Boss delad databas

Installationsanvisning Boss delad databas Installationsanvisning Boss delad databas sid 2 (25) Innehåll 1 Inledning 3 2 Systemkrav klient 3 3 Serverinstallation 3 3.1 Systemkrav 3 3.2 SQL Server 3 3.3 Behörighet vid installation 4 3.4 Behörighetskontroll

Läs mer

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID Vad gör vi här? Programmeringsteknik fördjupningskurs (EDAA01; 7,5hp) Valfri för F, N & BME (kan läsas från åk 2 eller i sommar!) Avancerad

Läs mer

Svenska Linuxföreningen. Fri programvara Mycket mer än gratis 1(36) Copyright 2005, 2006 Marcus Rejås <marcus@rejas.se>

Svenska Linuxföreningen. Fri programvara Mycket mer än gratis 1(36) Copyright 2005, 2006 Marcus Rejås <marcus@rejas.se> Fri programvara Mycket mer än gratis Copyright 2005, 2006 Marcus Rejås Jag ger härmed rätten till alla att nyttja denna presentation på alla sätt som anses lämpliga så länge som syftet

Läs mer

2014-2015 Alla rättigheter till materialet reserverade Easec

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

Läs mer

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio Ditt första C#-program med Visual Studio Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så

Läs mer

Databaser och Datamodellering Foreläsning IV

Databaser och Datamodellering Foreläsning IV Webbprogrammering - 725G54 Databaser och Datamodellering Foreläsning IV Agenda Databaser ERD SQL MySQL phpmyadmin Labb 4 Databaser Databas - samling med data Databashanterare Enkelt Kraftfullt Flexibelt

Läs mer

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:

Läs mer

UTVECKLINGSVERKTYG. Praktiska tips för PUM-projekten

UTVECKLINGSVERKTYG. Praktiska tips för PUM-projekten UTVECKLINGSVERKTYG Praktiska tips för PUM-projekten TEKNIKER I PROJEKTEN ios 2 C#.NET 1 Java (inkl Android) 6 Webb (HMTL/JS) 4 En genomskumning av de tilldelade projektförslagen ger ovanstående uppfattning

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

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik) Databasföreläsning Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik) Tabeller Personer Databas Nummer Namn Födelseår 1 Tina 1950 2 Siv 1965 3 Olle 1980 Platt databas: all information

Läs mer

Föreläsning 2. Operativsystem och programmering

Föreläsning 2. Operativsystem och programmering Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data

Läs mer

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning. Klient/server Översikt Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning. Lektion 1: Webbtekniker från Microsoft Microsoft webbtekniker. ASP.NET. Klientsidan. Internet Information Server.

Läs mer

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 Hjälpmedel: Inga hjälpmedel är tillåtna

Läs mer

Styrteknik 7.5 hp distans: E-1000 och E-Designer

Styrteknik 7.5 hp distans: E-1000 och E-Designer PLC8A:1 E1000 operatörsterminaler En operatörsterminal ger ett gränssnitt mellan männinska-maskin, (MMI människa-maskininteraktion, HMI Human Machine Interface) Alla terminalerna i E1000-serien är utvecklade

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

Systemkrav och tekniska förutsättningar

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

Läs mer

Programmering B med Visual C++ 2008

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

Läs mer

FactoryCast HMI. Premium & Quantum PLC. MySQL Server och FactoryCast HMI databastjänst 2004-10-29

FactoryCast HMI. Premium & Quantum PLC. MySQL Server och FactoryCast HMI databastjänst 2004-10-29 FactoryCast HMI Premium & Quantum PLC MySQL Server och FactoryCast HMI databastjänst 2004-10-29 INNEHÅLLSFÖRTECKNING 1 DATABASTJÄNSTEN...3 1.1 KONFIGURERING AV DATABASTJÄNST...3 2 KONFIGURERING MYSQL...6

Läs mer

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/3 2014 Innehåll Kursöversikt Javarepetition/Javaintroduktion UML - klassdiagram-introduktion i anslutning till Java-exemplen Kursmål,

Läs mer

Introduktion till hårdvara, mjukvara och operativsystem

Introduktion till hårdvara, mjukvara och operativsystem Introduktion till hårdvara, mjukvara och operativsystem Grundläggande operativsystem 1DV415 1 1 Lärare Marcus Wilhelmsson Universitetsadjunkt i datavetenskap Linux, UNIX (Solaris, OpenSolaris, Mac OS X),

Läs mer

Installationsanvisningar HogiaLön Plus

Installationsanvisningar HogiaLön Plus Installationsanvisningar HogiaLön Plus Checklista Kontrollera Microsoft.Net Framework 3.5 SP1 Ladda ner och starta installationen av HogiaLön Plus Installera SQL komponenterna i rätt ordning Starta HogiaLön

Läs mer

DI Studio 4.3 - nyheter

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

Läs mer

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document Programutvecklingsprojekt 2003-04-24 Projektgrupp Elvin Detailed Design Document Björn Engdahl Fredrik Dahlström Mats Eriksson Staffan Friberg Thomas Glod Tom Eriksson engdahl@kth.se fd@kth.se d94-mae@nada.kth.se

Läs mer

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14. Tentamen 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.00, sal E33 Tentan har en teoridel och en problemdel. På teoridelen är inga hjälpmedel

Läs mer

Innehåll. Installationsguide

Innehåll. Installationsguide Innehåll Innehåll... 2 Förberedelser... 3 Rättigheter... 3 Installera programmen... 3 Konfiguration av databas... 5 Installera databasserver... 5 Konfigurera en databas på en befintlig databasserver...

Läs mer

KAP 18 SQL SERVER AGENT

KAP 18 SQL SERVER AGENT KAP 18 SQL SERVER AGENT Tjänsten Sql Server Agent Operator Job Alert (larm) http://www.youtube.com/watch?v=ii1tc493bzm 1 VAD ÄR SQL SERVER AGENT? SQL Server Agent är en tjänst (service) som ansvarar för:

Läs mer

Programvaror - Jo, tack, det vill vi ha...

Programvaror - Jo, tack, det vill vi ha... Rejås 1(20) Programvaror - Jo, tack, det vill vi ha... Copyright 2006 Rejås Jag ger härmed rätten till alla att nyttja denna presentation på alla sätt som anses lämpliga så länge som syftet på något sätt

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

Ändringar i samband med aktivering av. Microsoft Windows Vista

Ändringar i samband med aktivering av. Microsoft Windows Vista Ändringar i samband med aktivering av Microsoft Windows Vista Volume Activation 2.0 Rutinerna som rör hantering av licensnycklar och aktivering finns nu i en ny version. I den tidigare versionen behövde

Läs mer

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

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

Läs mer

Eva Hellstöm - Christina Strand

Eva Hellstöm - Christina Strand GIS-data som underlag för detaljplan Använd AutoCAD Map 3D för att läsa in GIS-data från länsstyrelsen m.fl. Synliggör din detaljplan för allmänheten med Mapguide Eva Hellstöm - Christina Strand AutoCAD

Läs mer

Objektorienterad programmering i Java I

Objektorienterad programmering i Java I Laboration 0 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: ca 2 3 timmar Att läsa: sidan 45 52 Syfte: Att ladda hem och installera utvecklingsmiljön Att skriva ditt första Javaprogram

Läs mer

http://www.sverd.se/4-fria-upphovsrattslicenser/ Fria upphovsrättslicenser underlättar kunskapsdelning och lärande

http://www.sverd.se/4-fria-upphovsrattslicenser/ Fria upphovsrättslicenser underlättar kunskapsdelning och lärande http://www.sverd.se/4-fria-upphovsrattslicenser/ Fria upphovsrättslicenser underlättar kunskapsdelning och lärande Ebba Ossiannilsson, Lunds universitet Alma Taawo Fristående konsult Användning av fria

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

Komponenter med COM (och COM+/VC++ 7.0)

Komponenter med COM (och COM+/VC++ 7.0) MÄLARDALENS HÖGSKOLA Komponenter med COM (och COM+/VC++ 7.0) Med Visual C++ 7.0 COM-komponent EI0230 Komponentbaserad applikationsutveckling oktober 2003 Om denna sammanfattning Denna sammanfattning innehåller

Läs mer

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

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

Läs mer

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Vem är vem på kursen Objektorienterad programvaruutveckling GU (DIT011) Kursansvarig : Katarina Blom, tel 772 10 60 Rum: 6126 (E-huset)

Läs mer

Classes och Interfaces, Objects och References, Initialization

Classes och Interfaces, Objects och References, Initialization Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class

Läs mer

Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer

Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer Disposition 1. Kopplingen mellan Processanalys (DFDdiagram) och konceptuell modellering (ERdiagram) (se kap 4) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer Databasen (Kap 2) Den relationella

Läs mer

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

Läs mer

Programmering i C++ Kompilering från kommandoraden

Programmering i C++ Kompilering från kommandoraden Programmering i C++ Kompilering från kommandoraden Sven Gestegård Robertz Datavetenskap, LTH 9 november 2015 Sammanfattning Ibland vill man, av olika anledningar, inte använda en stor integrerad utvecklingsmiljö

Läs mer

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman Operativsystem Lektion 1 1 Lärare jem@cs.umu.se, B449 Lektioner etc Set Norman set@cs.umu.se, NAdv105 Labbar, labhandledning 2 Schema Notera att det finns ändringar i schemat!! Under perioden 1-8 mars

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Emil Ahlqvist (c10eat@cs.umu.se) Didrik Püschel (dv11dpl@cs.umu.se) Johan Hammarström (c08jhm@cs.umu.se) Hannes Frimmel Moström (c10hml@cs.umu.se) 1 1. Introduktion 1.1 Objektorienterad

Läs mer

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

emopluppen Användning av Ant Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC) emopluppen Användning av "Ant" Version: 1.4 ( 2002/04/26 07:27:52 UTC) Niklas Backlund Sammanfattning Det här dokumentet handlar om programmet Ant, som är en byggmiljö för programutvecklingsprojekt. Dess

Läs mer

Webbtjänster med API er

Webbtjänster med API er Webbtjänster med API er Mål med lektionen! Titta på WCF klienter och förstå dessa. Vad lektionen omfattar WCF Clients Komma åt endpoints Vi har pratat om WCF i stort och vi har pratat om hur vi bygger

Läs mer

Installation och konfiguration av klientprogramvara 2c8 Modeling Tool

Installation och konfiguration av klientprogramvara 2c8 Modeling Tool Installation och konfiguration av klientprogramvara 2c8 Modeling Tool Hämta programpaket, MSI Aktuell version av klientprogramvaran finns tillgänglig för nedladdning på vår hemsida på adress http://www.2c8.com/

Läs mer

3) Routern kontrollerar nu om destinationen återfinns i Routingtabellen av för att se om det finns en väg (route) till denna remote ost.

3) Routern kontrollerar nu om destinationen återfinns i Routingtabellen av för att se om det finns en väg (route) till denna remote ost. Routingprocessen Vid kommunikation mellan datorer måste de känna till var och hur de skall skicka paketen, om de datorer som ska kommunicera ligger på samma IP-nät är det ju inget problem. Men är det så

Läs mer

Calligra. En allmän inledning. Raphael Langerhorst Jost Schenck Översättare: Stefan Asserhäll

Calligra. En allmän inledning. Raphael Langerhorst Jost Schenck Översättare: Stefan Asserhäll En allmän inledning Raphael Langerhorst Jost Schenck Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 1.1 Komponenter i Calligra.................................. 5 1.2 Översikt över funktioner i

Läs mer

Administrationsmanual ImageBank 2

Administrationsmanual ImageBank 2 Administrationsmanual ImageBank 2 INNEHÅLL 1. Konventioner i manualen 3 2. Uppmärksamhetssymboler 3 3. Vad är imagebank SysAdmin 4 4. Guide för att snabbt komma igång 5 5. Uppgradera din imagebank 1.2

Läs mer

VAD GÖR DU / VEM ÄR DU?

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

Läs mer