CLR Integration. Af Torsten Holtse, pbs Indhold

Størrelse: px
Starte visningen fra side:

Download "CLR Integration. Af Torsten Holtse, pbs Indhold"

Transkript

1 CLR Integration Af Torsten Holtse, pbs10104 Indhold Opgavebeskrivelse... 2 Introduktion... 2 CLR Integrations muligheder... 2 Stored Procedures, Functions og Triggers... 2 Aggregates og User-defined Types... 3 Aggregate... 3 User-defined Type... 4 Intern adgang til databasen... 4 Registrering af assembly og funktionaliteter... 4 Registering af assembly... 4 Registering af funktionaliteter... 4 Fordele... 5 Flere funktionaliteter... 5 Objekt orienterede elementer... 5 Performance... 6 Kode-genbrug... 6 Ulemper... 6 Normalisering... 6 Performance... 6 Metadata-optimering... 7 Overvejelser

2 Opgavebeskrivelse Denne opgave omhandler integrationen af CLR 1 i MSSQL 2. Udover den praktiske anvendelse vil opgave også se på de fordele og ulemper, der er forbundet med brugen af CLR integration. Disse fordele og ulemper vil berøre funktionaliteter og performance. Introduktion Som så mange andre databaser benytter Microsoft sig af et SQL-baseret sprog til programmering af deres SQL Server, T-SQL. T-SQL giver, som mange andre varianter af SQL, mulighed for at udvikle mere generelle programmeringsopgaver, der håndteres af databasen. Det er dog ikke SQL-baserede sprogs primære formål hvilket f.eks. kommer til udtryk ved mangler på områder som datatyper og iterationsmuligheder. Siden udgivelsen af SQL Server 2005 har der været en alternativ mulighed for programmering af funktionaliteter i databasen. Fra den version af blev det muligt at udarbejde de mere generelle funktionaliteter i et.net-sprog for derefter at lade SQL Serveren eksekvere denne.net-kode via en integrering af.net s motor, CLR. Denne funktionalitet i SQL Server betegnes af Microsoft som CLR Integration. CLR Integrations muligheder Programmeringen af en databasefunktionalitet med CLR integration foregår ved, at man programmerer et assembly i et.net-sprog, hvorefter assembly, og de deri liggende funktionaliteter, registreres i den pågældende SQL Server. CLR Integration giver mulighed for programmering af fem forskellige typer funktionaliteter: Stored Procedure User-defined Function User-defined Trigger User-defined Aggregate User-defined Type Fælles for disse funktionaliteter er, at de bygger på helt almindelig.net-kode, der grundlæggende ikke er bundet til CLR Integration. Implementeringen foregår i almindelige statiske metoder eller klasser alt afhængig af hvilken type funktionalitet der er tale om. Hver funktionalitet identificeres ved sin registrering i SQL Serven ud fra metadata tilføjet under implementeringen i form af en specifik attribute afhængigt af typen af funktionalitet. Stored Procedures, Functions og Triggers Stored Procedures, Function og Triggers er fælles om at blive implementeret via statiske metoder. Eksemplet nedenfor viser konstruktionen af User-defined Function i C#. 1 Common Lanugage Runtime 22 Microsoft SQL SERVER 2

3 namespace CLRIntegration { public partial class UDF { const string _REGEX [SqlFunction(IsPrecise = true, IsDeterministic = true)] public static bool IsValid (SqlString str) { Regex regex = new Regex( _REGEX); return (str.isnull? false : regex.ismatch(str.value)); } } } Eksempel 1 - IsValid Det er kun selve metode-definitionen, der er interessant i dette tilfælde, men namespace og klasse skal dog også kendes i registreringsprocessen. SqlFunction-attributen er den afgørende forskel på en almindelig statisk metode og en metode, der skal bruges som user-defined function. Stored Procedures og Triggers har en tilsvarende attribute henholdsvis SqlProcedure og SqlTrigger. Udover at give CLR Integration mulighed for at identificere om en metode er beregnet til brug i SQL Server, indeholder SqlFunction også nogle properties, der benyttes som yderligere information for SQL Server til brugen af metoden. I eksemplet er metoden f.eks. specificeret som værende Precise, dvs. at metoden altid giver et præcist resultat. En funktion vil ikke være præcis hvis der f.eks. indgår beregninger med floating-points. Der findes flere af denne type metadata-properties, men disse vil ikke blive gennemgået nærmere. Aggregates og User-defined Types Aggregates og User-defined Types (UDT) konstrueres via en serialiserbar struct. Ligesom Stored Procedures, Functions og Triggers, defineres metadata i form af en attribute, henholdvis SqlUserDefinedAggregate og SqlUserDefinedType. Da der skal foretages en serialisering er det nødvendigt for SQL Serveren at vide hvordan dette skal foretages. Som udgangspunkt bruger SQL Serveren sin egen metode, kaldet Native, men i visse tilfælde kan det være nødvendigt, eller ønskværdigt, selv at bestemme hvordan serialiseringen foregår. I et sådan tilfælde betegnes serialiseringen som UserDefined og skal specificeres via en implementering af IBinarySerialize-interfacet. Nedenstående eksempel viser definitionen af UDT. [Serializable] [SqlUserDefinedType(Format.UserDefined, ValidationMethodName = "Validate ", MaxByteSize = 256, IsByteOrdered = true)] public struct Type : INullable, IBinarySerialize Eksempel 2 - User-defined Type Aggregate En aggregate i CLR Integration udfører sine handlinger ved at splitte arbejdet op i mindre dele. Delen samles igen efterhånden som de bliver færdige for til sidst at kunne levere ét samlet resultat. CLR Integrationen håndterer dette ved en struct med fire specifikke metoder, Init, Accumulate, Merge og Terminate. Init kaldes ved opstarten af en ny del af aggregaten. Dernæst løber den enkelte del sine egne værdier igennem og aggregerer dem i Accumulate. Når en del er færdig laver den en Merge med en anden 3

4 del. Når der til sidst kun er en del tilbage vil denne have opsamlet delresultaterne fra en andre dele og kører til sidst Terminate, der returnerer det endelige resultat. User-defined Type Udover de forudgående beskrevne krav kræves det også at en UDT er Nullable ved at implementere INullable. Dette bliver et krav da SQL Serverens normale typehåndtering som udgangspunkt tillader null. Intern adgang til databasen Mange funktionaliteter i SQL Server skal ikke bare foretage nogle beregninger baseret på input, de skal også kommunikere internt med databasen. I.NET håndteres denne interne kommunikation som den normalt gøres i ADO.NET. Da koden imidlertid kører internt i SQL Serveren skal der dog ikke oprettes en almindelig forbindelse til databasen. Der benyttes en speciel connectionstring, context connection = true. Denne connectionstring får et kald fra.net-metoden til at benytte samme forbindelse som den i forvejen kører på fordi den køres fra SQL Serveren selv, på samme måde som et databasekald i en funktionalitet skrevet i T-SQL ville gøre. Yderligere har giver.net adgang til en speciel kontekst-klasse, SqlContext, der også kan kommunikere internt i SQL Serveren eller identificere om der overhovedet er tale om CLR Integration. Registrering af assembly og funktionaliteter Når man har programmeret færdig i.net skal koden distribueres videre til SQL Serveren. Dette er en ret enkel proces, der deler store ligheder med konstruktionen af diverse almindelige funktionaliteter i SQL Server. Registering af assembly CREATE ASSEMBLY [CLRIntegration] FROM 'C:\Users\Annxii\Documents\CLRIntegrationLib.dll' WITH PERMISSION_SET = SAFE; Script eksempel 1 - Create Assembly Assembly et får her navnet CLRIntegration og den refererede DLL kopieres til databasen. Ved senere registrering eller eksekvering af metoder i CLRIntegration er det kopien i databasen, der benyttes. Der ud over sætte hvilken permission det pågældende assembly har, i dette tilfælde SAFE. Der er tre forskellige grader af assembly permissions, SAFE, EXTERNAL_ACCESS og UNSAFE. SAFE giver lov til at eksekvere koden og kommunikere internt i databasen. EXTERNAL_ACCESS giver lidt flere muligheder f.eks. adgang til filsystemet og netværkskommunikation. UNSAFE giver mulighed for at lade CLR kalde unmanaged code. UNSAFE benyttes af Microsoft til registrering af det grundlæggende.net Framework i SQL Server, men det anbefales ikke at almindelige udviklere benytter mere end EXTERNAL_ACCESS. Registering af funktionaliteter Efter registreringen af et assembly skal hver af de ønskede funktionaliteter tilføjes med hver deres registering. Nedenstående eksempel viser registreringen af metoden fra Eksempel 1. CREATE FUNCTION [IsValid ](@ nvarchar(max)) RETURNS bit AS EXTERNAL NAME CLRIntegration.[CLRIntegration.UDF].IsValid Script eksempel 2- Create Function 4

5 De første to linjer ligner starten på en almindelig definition af en Function. Det er dog vigtigt at funktionens parametre og retur type stemmer overens med dem i den pågældende metode i assembly et. Navngivningen er her irrelevant i forhold til assembly ets indhold. Derimod er navnene vigtige i sidste linje. Normalt vil implementeringen af funktionen begynde her, men da denne jo allerede er foretaget i. NET skal der refereres til hvor i assembly et den ønskede metode befinder sig. Det ovenstående eksempel finder sin metode i assembly et fra Script Eksempel 1 og derefter metoden fra Eksempel 1 baseret på hvilket namespace og hvilken klasse den pågældende metode har. Eksemplet er vist med en Function, men fremgangsmåde er den samme for de andre funktionaliteter. Fordele Som jeg startede med at skrive så er CLR Integration et alternativ til de tillempninger, som er foretaget i T- SQL for at gøre det muligt at udføre handlinger, der strækker sig ud over den grundlæggende forespørgselsfunktionalitet i SQL. Det grundlæggende argument for at benytte CLR Integration bør derfor være, at man benytter et sprog til det det er beregnet til. Sprogene i.net-familien er tiltænkt beregninger og kompleks logik, hvilket også gør dem optimerede til disse formål. Flere funktionaliteter Optimeringen af.net handlinger ikke kun om processorkraft, men også om de ekstra funktionaliteter, der følger med.net. I eksempel 1 er der f.eks. benyttet regular expressions til validering af en input streng, hvilket ikke er en funktionalitet i T-SQL. Nogle funktionaliteter, der allerede er i T-SQL, kan også forbedres af.net, hvor f.eks. arbejde med filsystemet eller XML lettere kan håndteres..net giver også flere kodemæssige elementer at arbejde med i forhold til T-SQL. Der er flere forskellige datatyper at arbejde med og større udvalg af code-flow. Udover de ekstra mere generelle funktionaliteter, der er i.net giver CLR Integration også nogle direkte database orienterede funktionaliteter. Det er kun muligt at lave sine egne aggregates via CLR Integration, alt hvad T-SQL kan bidrage med i den henseende er registreringen af funktionaliteten. Objekt orienterede elementer SQL Server udelukkende en relationel database, men brugen af UDT via CLR Integration kan give nogle objekt orienterede elementer. UDT i ren T-SQL kan kun være en indsnævring af en eksisterende type i SQL, eller bare benyttet som alias, eller det kan være en tabel. En UDT i CLR Integration bedre betegnes som et decideret objekt. Udover at det rent teknisk reelt set er et serialiseret.net-objekt, der ligger i en tabel, så kan Methods og Properties implementeres som ved en almindelig struct. Disse kan kaldes fra T-SQL, og bruges til at ændre dele af den data UDT en består af på samme måde som man kan i.net. Denne muligheder ses i ORDBMS, men manglen af andre vitale objekt orienterede dele som nedarvning, polymorfi og referencer gør at CLR Integration ikke kan gøre SQL Server til en ORDBMS. Fordelen ved disse tilnærmede objekt orienterede elementer kan tages fra ideen bag objekt orienterede databaser. Ved at bringe modellen fra programmeringen direkte ned i databasen undgås noget det overhead, og den kompleksitet, mapping mellem den relationelle og objekt orienterede verden giver. 5

6 Eftersom det ikke er en decideret objekt orienteret model der gemmes men kun isolerede objekter, vil man stadig have behov for data mapping i et vist omfang også selvom man benytter UDT. Performance De ekstra funktionaliteter er også dem, der kan give CLR Integration en fordel frem for rå T-SQL..NET er i langt højere grad optimeret til matematiske og logiske beregninger, og kan derfor give en fordel på disse områder. Foretages disse beregninger yderligere i loops er der endnu mere at vinde. En cursor er som udgangspunkt dyr i drift. Mulighederne i CLR Integration gør en i stand til at undgå cursor i flere tilfælde. I tilfælde hvor cursor funktionaliteten kan erstattes af egne aggregates vil dette være at foretrække rent performancemæssigt. Det samme gør sig gældende hvor en traverserende cursor kan erstattes af arbejde med et array. Kode-genbrug Ved at programmere funktionaliteter til CLR Integration har man også mulighed for at genbruge funktionaliteterne i en anden sammenhæng. Stored Procedures og Functions er dyest set stadig almindelige statiske metoder, og kan derfor kaldes fra andre.net-programmer. Eksempelvis kan funktionen fra Eksempel 1 bruges både i CLR Integration og i et hvilket som helst.net-program. Dette giver en fordel ved kun at skulle vedligeholde en funktionalitet også selvom denne bruges i flere forskellige sammenhæng. I Eksempel 1 skal der ikke foretages noget for at bruges koden andet sted end i SQL Server, men der kan i visse tilfælde være behov for, at foretage justeringer alt efter hvilken sammenhæng koden eksekveres i. Via SqlContext kan man identificere om der er tale om CLR Integration eller ej, og f.eks. ændre connectionstring i tilfælde hvor ADO.NET benyttes. Ulemper Hvis ikke der var nogle ulemper ved CLR Integration var der ikke nogen grund til, at SQL Server stadig benytter T-SQL som sit primære programmeringsprog. På trods af, at CLR Integration kan forbedre performance i visse situationer så kan det nemt også gøre det modsatte. Dertil kommer mulige problemer ved brug af UDT og kompleks finjustering. Normalisering Brugen af UDT kan give problemer for strukturen af databasen. En relationel database skal som oftest normaliseres, hvilket i første omgang indebærer atomare værdier. Om noget betegnes som en atomar værdi kan komme an situationen, men i og med at UDT grundlæggende er et serialiseret objekt vil det også være nærliggende, at UDTen kommer til at få objekt orienterede træk som gruppering af data. Dette stiller en i et dilemma ved brugen af UDT. Hvis man designer UDT til brug uden for databasen vil det ødelægge muligheden for normalisering, men hvis man tager højde for normaliseringen vil det ødelægge muligheden for den mapningsfri transition mellem database og applikation. Performance Som nævnt kan performance gå begge veje ved brugen af CLR Integration. Den negative indvirkning kommer i første omgang når arbejdet skal over i.net. SQL Server kører godt nok.net internt, men det er 6

7 trods alt stadig et andet system, hvilket vil sige at SQL Server skal overdrage ansvaret til.net og vice versa. Dette indbefatter ikke noget stort overhead, men det sker hver gang der skal skiftes mellem SQL Server og.net. Hvis en funktion med input, der er skrevet i.net, bruges i forbindelse med en projektion af et udtræk vil dette skifte sker for hver række i udtrækket. Performance vundet ved den forbedrede beregning i.net skal derfor overstige det overhead, skiftet mellem SQL Server og.net forsager. Af samme grund er det også farligt for performance hvis man benytter kald tilbage til databasen i loops. Performance kan også komme til at lide under manglende query optimering. Ved brugen af stored procedures eller functions i forbindelse med en query vil SQL Server normalt forsøger at tage indholdet af disse med i sin optimering af queryen. Hvis den pågældende stored procedure eller functions imidlertid er lavet i.net er det straks sværere. SQL Serveren kan ikke læse.net kode og kan derfor ikke tage højde for indholdet i sin optimering. Eventuel rå SQL internt i den pågældende stored procedure eller function vil blive optimeret separat. Optimeringen vil potentielt blive splittet i forhold til hvad T-SQL ville resultere i og SQL Serveren kan derfor ikke foretage optimeringen optimalt(!). Metadata-optimering SQL Serverens manglende evne til at læse.net, og de ulemper der kommer heraf, kan delvist afhjælpes via metadata på implementationen af visse funktionaliteter. Det store problem ved denne metadata er, at man selv skal specificere den, hvilket også vil sige at man manuelt skal bestemme specifikationer som SQL Serveren normalt klarer for en. Det tidligere eksempel 1 bruger IsPrecise og IsDeterministic. I det lille eksempel er det ikke så svært at overskue disse tilstande, men det kan være betydelig sværere i mere komplekse sammenhænge. Udover at dette selvfølgelig er ekstra arbejde giver det også en større mulighed for fejl end en automatiseret analyse udarbejdet af eksperter vil. Overvejelser CLR Integration er helt klart en niche inden for SQL Serveren. Det er funktionaliteter, der skal bruges med betydelig omtanke til specielle situationer. Det er en løbende debat hvor meget funktionalitet, der skal lægges ned i databasen, og CLR Integration har uden tvivl sin plads hvor man lægger store mængder funktionalitet i databasen. Med undtagelse af user-defined aggregate vedrører udvidelserne via.net funktionaliteter, der ikke direkte må siges at være SQL Serverens kærneområder. Man kan undre sig over hvorfor der ikke er nogen mulighed for implementation af aggregates i T-SQL. UDT kan være et stærkt redskab i visse tilfælde. At gemme objekterne fra.net direkte i databasen går naturlig nok arbejdet med data i.net lettere, mens understøttelsen af properties gør det muligt at stadig at arbejde med objektet uden for.net. Det er dog stadig langt fra en OODBMS eller ORDBMS. Brugen af UDT bør derfor selv sørge for ikke at bryde normalisering eller benyttes i situationer hvor normalisering ikke er en nødvendighed. Brugen af CLR Integration kan også bringe ekstra kompleksitet ind i programmeringen af databasen. Man kan ikke erstatte al T-SQL, hvilket vil resultere i at man har arbejder med to forskellige programmeringssprog og paradigmer, den relationelle- og den objekt orienterede. Denne sammenblanding muliggør kode-genbrug, men kan kræve, at der tages højde for forskellene i programmeringssprogene. Det vil godt nok give færre kode-dele at vedligeholde, men disse vil blive hver især blive mere komplicerede. 7

8 Idéen bag CLR Integration er ikke en Microsoft-opfindelse. SQL2003-standarden indeholder specifikationer til en implementation af samme typer funktionaliteter i Java, SQL/JRT 3. Hvis en Java implementation af database funktionaliteter skal være en del af SQL-standarden bør der også være belæg for at standardisere CLR Integration. Denne underliggende CLR er, ligesom Java-motoren, et produkt med en åben standard, der primært vedligeholdes og implementeres af et kommercielt firma. På trods af at være en standardiseret funktionalitet er SQL/JRT også en meget lille niche. Den eneste store database, der implementerer SQL/JRT er IBMs DB

Database for udviklere. Jan Lund Madsen PBS10107

Database for udviklere. Jan Lund Madsen PBS10107 Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated

Læs mere

Hvorfor skal vi bruge objekt orienteret databaser?

Hvorfor skal vi bruge objekt orienteret databaser? OODBMS Vs. RDBMS 1 Indholdsfortegnelse Hvorfor skal vi bruge objekt orienteret databaser?... 3 OODBMS i erhvervslivet... 4 Bagsiden af medaljen... 5 OODBMS i praksis... 6 Konklusion... 8 2 Hvorfor skal

Læs mere

MapBasic &.NET interaktion. MapBasic.NET. Jakob Lanstorp IT konsulent COWI. Odense 23. Juni 2011. 1 8 jun 2011 MapBasic &.

MapBasic &.NET interaktion. MapBasic.NET. Jakob Lanstorp IT konsulent COWI. Odense 23. Juni 2011. 1 8 jun 2011 MapBasic &. MapBasic &.NET interaktion MapBasic.NET Jakob Lanstorp IT konsulent COWI Odense 23. Juni 2011 1 MapBasic &.NET interaktion Erfaring med MapBasic.NET / Visual Studio Anden programmering 2 Program Hurtig

Læs mere

METODER ARV KLASSER. Grundlæggende programmering Lektion 5

METODER ARV KLASSER. Grundlæggende programmering Lektion 5 METODER KLASSER ARV Grundlæggende programmering Lektion 5 1 METODER Sekvenser af kode om samme emne 2 REPETITION Række af statements der udfører en handling Mindst én metode der hedder main Forskellen

Læs mere

Lektion 6. Grundlæggende programmering i VR

Lektion 6. Grundlæggende programmering i VR Lektion 6 Grundlæggende programmering i VR Plan for i dag Simpelt FPS Triggerzones og animationer C# og objekt orienteret programmering Interfaces Generics Google Cardboard Video om VRs fremtid App til

Læs mere

FESD-standardiseringsgruppen Att: Palle Aagaard IT- og Telestyrelsen IT-strategisk kontor Holsteinsgade 63 2100 København Ø

FESD-standardiseringsgruppen Att: Palle Aagaard IT- og Telestyrelsen IT-strategisk kontor Holsteinsgade 63 2100 København Ø FESD-standardiseringsgruppen Att: Palle Aagaard IT- og Telestyrelsen IT-strategisk kontor Holsteinsgade 63 2100 København Ø Høringssvar vedr. FESD GIS-integrationsmodel version 2.0 Geodata Danmark har

Læs mere

Abstrakte datatyper C#-version

Abstrakte datatyper C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype

Læs mere

Introduktion til SQL

Introduktion til SQL Introduktion til SQL Introduktion til SQL 1. udgave, 1. oplag 2013 Copyright 2013 Libris Media A/S Forfatter: Bobby Henningsen Forlagsredaktion: Peter Wiwe og Louise Peulicke Larsen Omslag: Louise Peulicke

Læs mere

Object-Relational Mapping

Object-Relational Mapping Databaser for udviklere () Datamatiker TietgenSkolen Underviser: Allan Helboe 06-06-2010 Problemformulering Denne opgave er et forsøg på at beskrive problemerne der opstår ved anvendelsen af en relationel

Læs mere

Version Dato Beskrivelse 1.0.0 26/11/2012 Initial version 1.2.0 05/03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet.

Version Dato Beskrivelse 1.0.0 26/11/2012 Initial version 1.2.0 05/03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet. MOX og APOS2 Forord Dette dokument er en del af APOS version 2 manualerne. APOS version 2 (APOS2 herefter) er et organisation, klassifikation og personale system baseret på Sag & Dokument standarderne.

Læs mere

Singleton pattern i C#

Singleton pattern i C# Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i C# Denne artikel beskriver Singleton pattern og implementation i C#. Den forudsætter kendskab til C# men ikke til Singleton. Der er

Læs mere

Installation og Drift. Aplanner for Windows Systemer Version 8.15.12

Installation og Drift. Aplanner for Windows Systemer Version 8.15.12 Installation og Drift Aplanner for Windows Systemer Version 8.15.12 Aplanner for Windows løsninger Anbefalet driftsopsætning Cloud løsning med database hos PlanAHead Alle brugere, der administrer vagtplaner

Læs mere

Databaseadgang fra Java

Databaseadgang fra Java Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,

Læs mere

Introduktion til OPC Access

Introduktion til OPC Access Introduktion til OPC Access OPC Access anvendes til at kommunikere med jeres produktionsudstyr via OPC. OPC Access kombinerer en SQL Server med OPC, således at jeres produktionsudstyr kobles sammen med

Læs mere

Ugeseddel 4 1. marts - 8. marts

Ugeseddel 4 1. marts - 8. marts Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,

Læs mere

Singleton pattern i Java

Singleton pattern i Java Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.

Læs mere

Introduktion til Microsoft R. Steen Dybboe, Pragmatic BI MsBIP 2017 Aarhus

Introduktion til Microsoft R. Steen Dybboe, Pragmatic BI MsBIP 2017 Aarhus Introduktion til Microsoft R Steen Dybboe, Pragmatic BI MsBIP 2017 Aarhus Agenda Introduktion til R Data Scientists Microsoft R implementering R + SQL SQL + R Hvem er jeg Steen Dybboe Selvstændig konsulent

Læs mere

Arkitektur for begyndere

Arkitektur for begyndere Denne guide er oprindeligt udgivet på Eksperten.dk Arkitektur for begyndere Denne artikel beskriver forskellige basale n-tier arkitekturer. Som man bør kende og have valgt inden man går igang med at udvikle

Læs mere

EG Data Inform. Byggebasen. WCF og webservices. Jens Karsø

EG Data Inform. Byggebasen. WCF og webservices. Jens Karsø EG Data Inform Byggebasen WCF og webservices Jens Karsø 10 Indholdsfortegnelse Byggebasen Services indledning... 2 Målsætning... 2 Valg af teknologier... 3 Kommunikationsmodel for byggebasen... 3 Services.byggebasen.dk...

Læs mere

TimePlan version 6.0 - Installationsvejledning

TimePlan version 6.0 - Installationsvejledning TimePlan version 6.0 - Installationsvejledning For opgradering af tidligere TimePlan versioner anvendes opdateringsprogrammet: TimePlan 6 Wizard.exe. Programmet kan afvikles på dansk eller engelsk. Opdateringsprogrammet

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 20. april, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Grundlæggende OOA - OOD

Grundlæggende OOA - OOD Grundlæggende OOA - OOD Dette kursus henvender sig til personer, der har lille eller ingen erfaring med softwareudvikling. Med udgangspunkt i UML opbygges et solidt kendskab til softwareudviklingens kunst

Læs mere

educasoft - en professionel samarbejdspartner med speciale i uddannelse!

educasoft - en professionel samarbejdspartner med speciale i uddannelse! Velkommen til educasoft's hjemmeside educasoft - en professionel samarbejdspartner med speciale i uddannelse! Professionelle undervisere Undervisning i virksomheden Undervisning dag/aften eller week-end

Læs mere

LØKKER METODER C S HISTORIE. Grundlæggende programmering Lektion 4

LØKKER METODER C S HISTORIE. Grundlæggende programmering Lektion 4 LØKKER METODER C S HISTORIE Grundlæggende programmering Lektion 4 1 LEKTIER UML struktur diagrammer om biler 2 OPERATORER Syntaks til at udføre forskellige beregninger og handlinger Booleans og hvorfor

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2017 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 6. april, 2017 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

SWC eksamens-spørgsmål. Oversigt

SWC eksamens-spørgsmål. Oversigt SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition

Læs mere

0.9 19-09-2012 DAVAR Omdøbt til SagDokumentFormat. Attention er skilt ud i et selvstændigt format, AttentionFormat.

0.9 19-09-2012 DAVAR Omdøbt til SagDokumentFormat. Attention er skilt ud i et selvstændigt format, AttentionFormat. Specifikation 19. september 2012 DAVAR J.nr. 2012-6211-281 Sagdokumentformat Versionshistorik Version Dato Initialer Noter 0.7 15-06-2012 DAVAR Høringsversion. Indsat MeddelelseAttention. 0.9 19-09-2012

Læs mere

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel: Denne guide er oprindeligt udgivet på Eksperten.dk SQL og ASP En artikel omkring simpel SQL og hvordan disse opbygges, udformes og udføres, sådan at man kan få et brugbart resultat i ASP. Dette ligefra

Læs mere

Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002

Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002 Databaser, efterår 2002 Databasesystemer Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk

Læs mere

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal

Læs mere

Kursusarbejde 3 Grundlæggende Programmering

Kursusarbejde 3 Grundlæggende Programmering Kursusarbejde 3 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 21. november 2003 Indhold 1. Kode 2 1.1. forestillinger.h............................................. 2 1.2. forestillinger.cc.............................................

Læs mere

Introduction til.net remoting i C#

Introduction til.net remoting i C# Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i C# Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i C#. Den forudsætter kendskab

Læs mere

Installation og Drift. Aplanner for Windows Systemer Version 8.15

Installation og Drift. Aplanner for Windows Systemer Version 8.15 Installation og Drift Aplanner for Windows Systemer Version 8.15 Aplanner for Windows løsninger Tekniske forudsætninger Krav vedr. SQL Server SQL Server: SQL Server 2008 Express, SQL Server 2008 R2 eller

Læs mere

Data load og udtræk. 2. iteration: implmentation (test af backend) PHP mysql. Loade og parse XML (SimpleXML, Xpath) Filhåndtering i PHP JSON

Data load og udtræk. 2. iteration: implmentation (test af backend) PHP mysql. Loade og parse XML (SimpleXML, Xpath) Filhåndtering i PHP JSON Data load og udtræk 2. iteration: implmentation (test af backend) 1 PHP mysql Loade og parse XML (SimpleXML, Xpath) Filhåndtering i PHP JSON 2 Data udtræk PHP mysql: Processen 1. Forbind til MySQL server

Læs mere

Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004

Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004 Overvågningssystem Beskrivelse Bagagesorteringssystemet består af et antal skranker (check-in) til modtagelse og registrering af bagage, et automatiseret sorteringsanlæg samt et antal terminaler (gates),

Læs mere

MsSQL: Basal performance tuning, part 1

MsSQL: Basal performance tuning, part 1 Denne guide er oprindeligt udgivet på Eksperten.dk MsSQL: Basal performance tuning, part 1 Hvordan man skriver "God SQL" for bedre performance. Skrevet den 03. Feb 2009 af trer I kategorien Databaser /

Læs mere

Vejledning til Teknisk opsætning

Vejledning til Teknisk opsætning Vejledning til Teknisk opsætning v. 1.0 Adm4you, 2010. Indhold Kort om denne vejledning... 3 Generelt om easyourtime... 3 Installation af databasen... 3 Sikkerhed og rettigheder... 4 SQL Login... 4 Rettigheder

Læs mere

Web CMS kontra Collaboration

Web CMS kontra Collaboration Web CMS kontra Collaboration Sammenligning mellem Sitecore og Sharepoint Lars Fløe Nielsen, Evangelism ln@sitecore.net Page 1 Sitecore har dyb integration til Microsoft Sitecore har integration til mange

Læs mere

.NET Component Overview

.NET Component Overview .NET Component Overview Martin Søgaard og Erik K. Aarslew-Jensen 10. april 2005 1 Indhold 1 Indledning 3 2.NET Framework Overview 4 2.1 Common Language Runtime (CLR)................ 4 2.1.1 Common Language

Læs mere

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk Denne guide er oprindeligt udgivet på Eksperten.dk Database tips Denne artikel vil give nogle forskellige små praktiske råd om ting man skal tænke på når man arbejder med databaser og applikationer som

Læs mere

EasyIQ Opdatering 5.2.3 -> 5.4.0

EasyIQ Opdatering 5.2.3 -> 5.4.0 EasyIQ Opdatering 5.2.3 -> 5.4.0 Kunde: Forfatter: Thomas W. Yde Systemtech A/S Side: 1 af 17 1 Indholdsfortegnelse 2 GENERELT OMKRING FORUDSÆTNINGEN OG OPDATERINGS FORLØBET... 3 2.1 FORUDSÆTNINGER...

Læs mere

Studieordning del 3-2014

Studieordning del 3-2014 Studieordning del 3-2014 Valgfag Datamatiker AP Graduate in Computer Science Version 1.1 Revideret august 2014 Side 0 af 6 del 3 Valgfag 1. Valgfrie uddannelseselementer...2 2. Valgfaget Android...2 3.

Læs mere

DANMARKS TEKNISKE UNIVERSITET

DANMARKS TEKNISKE UNIVERSITET DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler

Læs mere

SmartFraming Et vindue til nationale sundhedssystemer. Version 3.0

SmartFraming Et vindue til nationale sundhedssystemer. Version 3.0 SmartFraming Et vindue til nationale sundhedssystemer Version 3.0 Infrastruktur i dagens sundheds IT Det sundhedsfaglige personale benytter sig i dag af en række forskellige systemer i forbindelse med

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2

Læs mere

Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder.

Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder. .NET UDVIKLER NATIONALITET: DANSK PROFIL Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder. Stor erfaring omkring databasedesign, datahåndtering og MS

Læs mere

Delphi og Databaser for begyndere

Delphi og Databaser for begyndere Denne guide er oprindeligt udgivet på Eksperten.dk Delphi og Databaser for begyndere Denne artikel handler om hvordan man udnytter noget af det bedste i Delphi: Dets gode muligheder for integrering med

Læs mere

Indholdsfortegnelse. Systembeskrivelse kapitel 8 Administrationsdatabase

Indholdsfortegnelse. Systembeskrivelse kapitel 8 Administrationsdatabase Indholdsfortegnelse 5. Administrationsdatabase... 2 5.1 Metadata... 2 5.2 Administrationsdata... 3 5.2.1 Indstillingsmuligheder... 3 5.2.2 Webside... 4 5.2.3 Klikafgift (Udgået)... 4 5.2.4 Modtageboks...

Læs mere

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0 Program Dokumentation PC Software Skrevet af Gruppen. Version 1.0 Indholds fortegnelse 1. INDLEDNING...3 1.1. FORMÅL...3 1.2. REFERENCER...3 1.3. VERSIONSHISTORIE...3 1.4. DEFINITIONER...3 1.5. DOKUMENTATIONENS

Læs mere

Introduktion til funktioner, moduler og scopes i Python

Introduktion til funktioner, moduler og scopes i Python Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til funktioner, moduler og scopes i Python Denne artikel er fortsættelsen af "I gang med Python", som blevet publiceret her på sitet for

Læs mere

Hvad er Objekter - Programmering

Hvad er Objekter - Programmering Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som

Læs mere

Kapitel 4 Løkker i C#

Kapitel 4 Løkker i C# Kapitel 4 Løkker i C# Løkker en vigtig del af alle programmeringssprog, og C# er ikke andeles. En løkke er en måde at udføre en del af koden gentagne gange. Ideen er at du fortsætter med at udføre en opgave

Læs mere

Introduction til.net remoting i VB.NET

Introduction til.net remoting i VB.NET Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i VB.NET Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i VB.NET. Den forudsætter

Læs mere

Educasoft 2010 Side 1. Søgemaskineoptimering

Educasoft 2010 Side 1. Søgemaskineoptimering Educasoft 2010 Side 1 Kurser: 2010 Søgemaskineoptimering Sælger din virksomhed nok via hjemmesiden? Lad kunderne finde din virksomhed - uden annoncering! Dette kursus henvender sig til virksomheder, der

Læs mere

Test af It-komponent

Test af It-komponent Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side

Læs mere

PID2000 Archive Service

PID2000 Archive Service PROLON CONTROL SYSTEMS Herstedvesterstræde 56 DK-2620 Albertslund Danmark Tlf.: (+45) 43620625 Fax: (+45) 43623125 PID2000 Archive Service Bruger vejledning Juni 2002 Denne manual beskriver brugen af softwaren

Læs mere

Septimas høringssvar vedrørende dokumenteterne FKG datamodellen - Version 2 3 1 - Fysisk implementering.pdf og FKG_2_3_1_mssql.sql

Septimas høringssvar vedrørende dokumenteterne FKG datamodellen - Version 2 3 1 - Fysisk implementering.pdf og FKG_2_3_1_mssql.sql Septima P/S Larsbjørnsstræde 3 1454 København K +45 7230 0672 www.septima.dk 31. juli 2013 Septimas høringssvar vedrørende dokumenteterne FKG datamodellen - Version 2 3 1 - Fysisk implementering.pdf og

Læs mere

Database programmerings tips

Database programmerings tips Denne guide er oprindeligt udgivet på Eksperten.dk Database programmerings tips Denne artikel vil introducere nogle problem stillinger med flere samtidige brugere, som man skal tænke på, når man udvikler

Læs mere

A Profile for Safety Critical Java

A Profile for Safety Critical Java A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren

Læs mere

Objektorientering. Programkvalitet

Objektorientering. Programkvalitet 1 PROSA-Bladet nr. 4 1993 Objektorientering = Programkvalitet? Af Finn Nordbjerg, adjunkt ved Datamatikeruddannelsen, Aalborg Handelskole 1. Indledning Objektorientering er blevet et edb-fagets mest udbredte

Læs mere

Sammenligning af Objekt-orienteret databaser og Relationelle databaser.

Sammenligning af Objekt-orienteret databaser og Relationelle databaser. Sammenligning af Objekt-orienteret databaser og Relationelle databaser. Af Louis Fleron Databaser OODBMS og RDBMS PBS10101 Louis Fleron Side 2 Af 11 Indholdsfortegnelse 1. Forord....3 2. Hvad er et OODBMS?...3

Læs mere

Data Warehouse Knowledge is Power - Sir Francis Bacon -

Data Warehouse Knowledge is Power - Sir Francis Bacon - Data Warehouse 4. sem. datamatiker uddannelse Tietgen Skolen Odense Skrevet af Troels Markvard Andersen (DM08228) Knowledge is Power - Sir Francis Bacon - Troels Markvard Andersen Side 1 af 8 Forord /

Læs mere

Nintex Workflow UK/DK

Nintex Workflow UK/DK Nintex Workflow UK/DK Når Nintex Workflows anvendes i et Dansk sproget SharePoint miljø, er der lidt forskel på hvad de forskellige elementer kaldes, såvel som rækkefølgen på disse. Noget er oversat, noget

Læs mere

Database "opbygning"

Database opbygning Database "opbygning" Dette områder falder mest under en DBA's ansvarsområde. Det kan sagtens tænkes at en database udvikler i nogle situationer vil blive nød til at oprette produktions og test) databaser,

Læs mere

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125 Tietgenskolen - Nørrehus Data warehouse Database for udviklere Thor Harloff Lynggaard DM08125 Juni 2010 Indhold Beskrivelse... 3 Data warehouse... 3 Generelt... 3 Sammenligning... 3 Gode sider ved DW...

Læs mere

Kursusarbejde 2 Grundlæggende Programmering

Kursusarbejde 2 Grundlæggende Programmering Kursusarbejde 2 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 31. oktober 2003 Indhold 1. Kode 2 1.1. hotel.h.................................................... 2 1.2. hotel.cc...................................................

Læs mere

Modern Concurrency Abstractions for C#

Modern Concurrency Abstractions for C# Modern Concurrency Abstractions for C# Nick Benton Luca Cardelli Cédric Fournet Presenter: Henrik Kragh-Hansen September 27, 2007 Motivation for concurrency Forbedring af concurrency Baggrundsinformation

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 10. april, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation). Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer

Læs mere

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Der findes en tilsvarende artikel med

Læs mere

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API. Denne guide er oprindeligt udgivet på Eksperten.dk Brug af MySQL i C++ Denne artikel bygger ovenpå artiklen "MySQL C API" og forklarer hvordan man kan programmere mere objekt orienteret. Den forudsætter

Læs mere

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

PHP 3 UGERS FORLØB PHP, MYSQL & SQL PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at

Læs mere

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne. Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning

Læs mere

SYSTEMDOKUMENTATION AF POC

SYSTEMDOKUMENTATION AF POC DIGITALISERINGSSTYRELSEN POC PÅ ORKESTRERINGSKOMPONENTEN SYSTEMDOKUMENTATION AF POC Version: 1.1 Status: Endelig Godkender: Forfatter: Copyright 2019 Netcompany. All rights reserved Dokumenthistorik Version

Læs mere

Foto-Applikation Dokumentation. Et Kod-i-Ferien projekt

Foto-Applikation Dokumentation. Et Kod-i-Ferien projekt Foto-Applikation Dokumentation Et Kod-i-Ferien projekt 1 Indholdsfortegnelse Systemets generelle opsætning... 3 Systemets elementer... 4 iphone applikation... 4 PHP-script... 4 Wordpress-plugin... 4 Website...

Læs mere

Bypassing the. Brian Marick

Bypassing the. Brian Marick Bypassing the GUI Brian Marick Problemer med GUI GUI er designet for mennesker, ikke automatisering Automatiseret test af GUI kræver specialiseret værktøjer Har tildens til at bryde ned når der sker ændringer

Læs mere

NC_71 Quick Guide v1.0. CJ1W-NC_71 Mechatrolink-II Position Control Unit. Quick Guide

NC_71 Quick Guide v1.0. CJ1W-NC_71 Mechatrolink-II Position Control Unit. Quick Guide Quick Guide v1.0 CJ1W- Mechatrolink-II Position Control Unit Quick Guide Denne quick guide er ment som supplement til de respektive manualer for CJ1W- modulet og de monterede servodrev. Guiden beskriver

Læs mere

IT-Basecamp 2013. Real World Java EE Patterns Adam Bien. Real World Java EE Patterns, Adam Bien Copyright Lund&Bendsen A/S

IT-Basecamp 2013. Real World Java EE Patterns Adam Bien. Real World Java EE Patterns, Adam Bien Copyright Lund&Bendsen A/S IT-Basecamp 2013 Real World Java EE Patterns Adam Bien 1 Indhold Lidt om mig Baggrund for valg af emnet Bogens opbygning Fra J2EE til JEE 5/6 Overflødiggjorte patterns Fremhæve et par patterns 2 Kenneth

Læs mere

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse. Mysqli Webintegrator Når vi arbejder med server-side scripting ( i vort tilfælde PHP), har vi ofte behov for at kunne tilgå data, som vi opbevarer i en database. Det kan f.eks. dreje sig om nyhederne i

Læs mere

Specifikation Abstrakt OO OS-API Rev. 1.7. Specifikation. Abstrakt, objektorienteret operativsystem-api

Specifikation Abstrakt OO OS-API Rev. 1.7. Specifikation. Abstrakt, objektorienteret operativsystem-api Specifikation Abstrakt, objektorienteret operativsystem-api Indhold 1 Indledning... 3 1.1 Introduktion... 3 1.2 Formål... 3 1.3 Overordnede krav... 3 2 Ressourcer i OS-API et... 4 2.1 Tråde... 4 2.2 Timere...

Læs mere

Klasser og Objekter i Python. Uge 46 Learning Python: kap 15-16, 19-22.

Klasser og Objekter i Python. Uge 46 Learning Python: kap 15-16, 19-22. Klasser og Objekter i Python Uge 46 Learning Python: kap 15-16, 19-22. Klasser og objekter En klasse beskriver en klump af samhørende funktioner og variable En klasse er en beskrivelse. En kage form Klassens

Læs mere

Hvilket sprog er hurtigst

Hvilket sprog er hurtigst Denne guide er oprindeligt udgivet på Eksperten.dk Hvilket sprog er hurtigst Denne artikel forsøger at aflive forskellige myter om hvilke sprog der er hurtigst. Den forudsætter ikke noget særligt. Skrevet

Læs mere

Erfaringer med CPR-replikering

Erfaringer med CPR-replikering Erfaringer med CPR-replikering Dette dokument beskriver en række overvejelser vi har gjort os i forbindelse med at vi har udviklet en Proof of Concept (PoC) af en CPR-replikeringstjeneste for KOMBIT. CPRs

Læs mere

Eksempel: et ordresystem note 5 Lagdeling s. 1

Eksempel: et ordresystem note 5 Lagdeling s. 1 Eksempel: et ordresystem note 5 Lagdeling s. 1 Eksempel: et ordre-system NiceHair er et firma, som sælger udstyr, inventar og frisørartikler til frisørsaloner over hele landet. Det er ejet af et ægtepar

Læs mere

Java Klasse nedarvninger

Java Klasse nedarvninger Denne guide er oprindeligt udgivet på Eksperten.dk Java Klasse nedarvninger Et let lille overblik i hvordan klasse nedarvning virker i java Skrevet den 07. dec 2011 af mochners I kategorien Programmering

Læs mere

Data repository løsningsbeskrivelse

Data repository løsningsbeskrivelse Indhold Dokument status... 1 Beskrivelse af ICT s Analytiske Arbejdsområde... 2 Teknisk setup med Hadoop og Hive... 2 Arbejdsområder... 2 Arbejdsområder Udestående:... 3 Arkivet... 3 Arkivet Udestående:...

Læs mere

The Design Diaries PHP projekt

The Design Diaries PHP projekt The Design Diaries PHP projekt Anna Emely Jensen cph-aj215@cphbusiness.dk www.annaemely.dk Oliver Alexander Vedel Trojhan cph-ot46@cphbusiness.dk www.olivervedeltrojahn.com Link til GoLogo blog http://olivervedeltrojahn.com/project%203%20php/index.php

Læs mere

Anvendelse af metoder - Programmering

Anvendelse af metoder - Programmering Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur

Læs mere

Datatekniker med programmering som speciale

Datatekniker med programmering som speciale Datatekniker med programmering som speciale H3 H1 varer ti uger bestående af syv uddannelsesspecifikke fag, samt 2 Valgfri Udannelsesspecifikke Fag og 1 Valgfrit Speciale Fag Indhold På H2 er der fokus

Læs mere

2. Systemarkitektur... 2

2. Systemarkitektur... 2 Indholdsfortegnelse 2. Systemarkitektur... 2 2.1 Præsentationsserverarkitektur... 3 2.2 Applikationsserverarkitektur... 7 Version 7.0 Side 1 af 7 5. Systemarkitektur Arkitekturen for Nyt BBR bygger på

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4 DM502 Forelæsning 4 Flere kontrolstrukturer for-løkke switch-case Metoder Indhold Arrays og sortering af arrays String-funktioner for-løkke Ofte har man brug for at udføre det samme kode, for en sekvens

Læs mere

Datatekniker med programmering som speciale

Datatekniker med programmering som speciale Datatekniker med programmering som speciale H1 H1 varer ti uger bestående af ti uddannelsesspecifikke fag. Indhold På H1 beskæftiger du dig med at lære at programmere helt fra bunden. Forløbet er designet

Læs mere

EasyRun En løbers bedste ven

EasyRun En løbers bedste ven En løbers bedsteven Anders Arnfast 06525, Martin Søberg 0655, Ken Falk 06504 09 . INDHOLD. Indhold... 2 2. Introduktion... 3 Opsætning... 3 3. System arkitekturdesign... 4 4. Hardware Design... 5 Ethernet

Læs mere

Software Construction 1 semester (SWC) Spørgsmål 1

Software Construction 1 semester (SWC) Spørgsmål 1 Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /

Læs mere

Skriftlig opgave. Designtanker i database-nære systemer

Skriftlig opgave. Designtanker i database-nære systemer Skriftlig opgave til eksamen for faget»databaser«designtanker i database-nære systemer Martin Ancher Holm Juni 2010 1 Intro Denne skriftlige opgave indeholder kort de daglige tanker jeg har omkring design

Læs mere

Dvs. at give dit program muligheden for at loade og bruge plugins som andre har lavet.

Dvs. at give dit program muligheden for at loade og bruge plugins som andre har lavet. Denne guide er oprindeligt udgivet på Eksperten.dk Refleksion med.net Refleksion bruges til at undersøge klasser på runtime tidspunktet. Se hvordan du f.eks. loader en klasse fra en DLL, gennemkigger dens

Læs mere

Programmering I Java/C#

Programmering I Java/C# Programmering I Java/C# Dit første projekt Datatekniker Intro to C# C# (C Sharp) Et enkelt, moderne, generelt anvendeligt, objektorienteret programmeringssprog Udviklet af Microsoft, ledet af danskeren

Læs mere

PHP Crash course. Databaser

PHP Crash course. Databaser PHP Crash course Databaser PHP Intro PHP er et server scripting sprog der kan bruges til at lave aktivt indhold på hjemme sider. Der er to betingelser som skal opfyldes for at serveren fortolker PHP koden.

Læs mere

Database. lv/

Database. lv/ Database 1 Database Design Begreber 1 Database: En fælles samling af logiske relaterede data (informationer) DBMS (database management system) Et SW system der gør det muligt at definer, oprette og vedligeholde

Læs mere