Test med NUnit. Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det.
|
|
- Stefan Lorentzen
- 6 år siden
- Visninger:
Transkript
1 Denne guide er oprindeligt udgivet på Eksperten.dk Test med NUnit Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab til C# / VB.NET og noget generel udviklings erfaring. Skrevet den 09. Feb 2009 af arne_v I kategorien Programmering /.NET Historie: V1.0-30/01/ original Indledning Artiklen ligner meget min artikel om JUnit, men da NUnit er en portering af JUnit til.net platformen, så kan det jo ikke overraske. Alle kode eksempler vil blive vist både som C# og VB.NET, men konceptet i NUnit ligger over det sprog specifikke. Unit test Unit test er ikke en ny opfindelse. Det har man brugt i mange år. Developere skulle teste deres lille stump inden hele projektet blev afleveret til test. Men der er kommet rigtig meget fokus på den i de sidste 5-10 år. Det er ikke længere bare noget som man principielt burde huske at gøre men en meget vigtig del af hele udviklings processen. Det hænger lidt sammen med begreber som XP (extreme Programming), Refactoring, Agile Software Development, Test Driven Development etc.. Men er også accepteret udenfor disse metodikker. Man er beyndt at skrive unit test kode til at teste systematisk og automatisk. Det med automatisk er uhyre vigtigt i. Hvis man har en stor suite af unit tests som tester en given kode, så kan man nemmere tillade sig at rette i den, fordi man kan teste store dele af funktionaliteten på få sekunder/minutter. Samtidigt har unit test også flyttet sig tidsmæssigt. Engang skrev man unit test kode til sidst efter at man havde skrevet
2 selve koden. Det er nu almindeligt accepteret, at det ikke er så godt. Folk skriver nemlig så unit test koden efter hvordan de ved koden virker d.v.s. at de finder færre fejl. Så nu er det alment accepteret at man bør skrive unit test koden først udfra hvad koden bør kunne og ikke hvad den kan. Nogen er endda begyndt at flytte det at skrive unit teste kode op som en del af design. Det er jo en præcis måde at beskrive hvad koden skal gøre og dermed dets interface udadtil. NUnit Der er en familie af unit test frameworks som populært kaldes xunit. JUnit til Java NUnit til.net CppUnit til C++ etc. Vi vil her beskæftige os med NUnit. NUnit version 1.x var en direkte portering af JUnit og havde efter sigende en del java'ismer, mens NUnit version 2.x er blevet rigtig.net'sk. NUnit kan hentes her: Og man downloader en MSI installer som man bare installerer helt normalt. Eksempel Lad os tage et simpelt eksempel for at illustrere hvordan det ser ud i praksis. Vi har følgende kode som skal testes: MathVector.cs public class MathVector private int[] v; public MathVector(int n) v = new int[n]; public MathVector(int[] v) this.v = v; public MathVector Add(int k) for(int i = 0; i < v.length; i++) res[i] = v[i] + k;
3 public MathVector Sub(int k) for(int i = 0; i < v.length; i++) res[i] = v[i] - k; public MathVector Mul(int k) for(int i = 0; i < v.length; i++) res[i] = v[i] * k; public MathVector Div(int k) for(int i = 0; i < v.length; i++) res[i] = v[i] / k; public MathVector Mod(int k) for(int i = 0; i < v.length; i++) res[i] = v[i] - (v[i]/k); public int Count get return v.length; public int[] V get return v; MathVector.vb Public Class MathVector Private _v As Integer() Public Sub New(ByVal n As Integer) _v = New Integer(n) Public Sub New(ByVal _v As Integer()) Me._v = _v Public Function OpAdd(ByVal k As Integer) As MathVector
4 Dim res(_v.length - 1) As Integer res(i) = _v(i) + k Public Function OpSub(ByVal k As Integer) As MathVector Dim res(_v.length - 1) As Integer res(i) = _v(i) - k Public Function OpMul(ByVal k As Integer) As MathVector Dim res(_v.length - 1) As Integer res(i) = _v(i) * k Public Function OpDiv(ByVal k As Integer) As MathVector Dim res(_v.length - 1) As Integer res(i) = _v(i) \ k Public Function OpMod(ByVal k As Integer) As MathVector Dim res(_v.length - 1) As Integer res(i) = _v(i) - (_v(i) \ k) Public ReadOnly Property Count() As Integer Get Return _v.length End Get End Property Public ReadOnly Property V() As Integer() Get Return _v End Get End Property
5 End Class (der er en simpel fejl!) Vi laver nu følgende test kode: MathVectorTest.cs using NUnit.Framework; [TestFixture] public class MathVectorTest [SetUp] protected void Init() [TearDown] protected void Dispose() [Test] public void Add() int[] v = , -1, 0, 1, ; MathVector mv = new MathVector(v); MathVector mv2 = mv.add(777); Assert.AreEqual(mv.Count, mv2.count, "Add Count"); for(int i = 0; i < mv2.count; i++) Assert.AreEqual(mv.V[i] + 777, mv2.v[i], "Add " + i); [Test] public void Sub() int[] v = , -1, 0, 1, ; MathVector mv = new MathVector(v); MathVector mv2 = mv.sub(777); Assert.AreEqual(mv.Count, mv2.count, "Sub Count"); for(int i = 0; i < mv2.count; i++) Assert.AreEqual(mv.V[i] - 777, mv2.v[i], "Sub " + i); [Test] public void Mul() int[] v = , -1, 0, 1, ; MathVector mv = new MathVector(v); MathVector mv2 = mv.mul(777); Assert.AreEqual(mv.Count, mv2.count, "Mul Count"); for(int i = 0; i < mv2.count; i++) Assert.AreEqual(mv.V[i] * 777, mv2.v[i], "Mul " + i); [Test] public void Div() int[] v = , -1, 0, 1, ;
6 MathVector mv = new MathVector(v); MathVector mv2 = mv.div(777); Assert.AreEqual(mv.Count, mv2.count, "Div Count"); for(int i = 0; i < mv2.count; i++) Assert.AreEqual(mv.V[i] / 777, mv2.v[i], "Div " + i); [Test] public void Mod() int[] v = , -1, 0, 1, ; MathVector mv = new MathVector(v); MathVector mv2 = mv.mod(777); Assert.AreEqual(mv.Count, mv2.count, "Mod Count"); for(int i = 0; i < mv2.count; i++) Assert.AreEqual(mv.V[i] % 777, mv2.v[i], "Mod " + i); MathVectorTest.vb Imports NUnit.Framework <TestFixture()> _ Public Class MathVectorTest <SetUp()> _ Protected Sub Init() <TearDown()> _ Protected Sub Dispose() <Test()> _ Public Sub OpAdd() Dim v As Integer() = , -1, 0, 1, Dim mv As MathVector = New MathVector(v) Dim mv2 As MathVector = mv.opadd(777) Assert.AreEqual(mv.Count, mv2.count, "OpAdd Count") For i = 0 To (mv2.count - 1) Assert.AreEqual(mv.V(i) + 777, mv2.v(i), "OpAdd " & i) <Test()> _ Public Sub OpSub() Dim v As Integer() = , -1, 0, 1, Dim mv As MathVector = New MathVector(v) Dim mv2 As MathVector = mv.opsub(777) Assert.AreEqual(mv.Count, mv2.count, "OpSub Count")
7 For i = 0 To (mv2.count - 1) Assert.AreEqual(mv.V(i) - 777, mv2.v(i), "OpSub " & i) <Test()> _ Public Sub OpMul() Dim v As Integer() = , -1, 0, 1, Dim mv As MathVector = New MathVector(v) Dim mv2 As MathVector = mv.opmul(777) Assert.AreEqual(mv.Count, mv2.count, "OpMul Count") For i = 0 To (mv2.count - 1) Assert.AreEqual(mv.V(i) * 777, mv2.v(i), "OpMul " & i) <Test()> _ Public Sub OpDiv() Dim v As Integer() = , -1, 0, 1, Dim mv As MathVector = New MathVector(v) Dim mv2 As MathVector = mv.opdiv(777) Assert.AreEqual(mv.Count, mv2.count, "OpDiv Count") For i = 0 To (mv2.count - 1) Assert.AreEqual(mv.V(i) \ 777, mv2.v(i), "OpDiv " & i) <Test()> _ Public Sub OpMod() Dim v As Integer() = , -1, 0, 1, Dim mv As MathVector = New MathVector(v) Dim mv2 As MathVector = mv.opmod(777) Assert.AreEqual(mv.Count, mv2.count, "OpMod Count") For i = 0 To (mv2.count - 1) Assert.AreEqual(mv.V(i) Mod 777, mv2.v(i), "OpMod " & i) End Class Bemærk at vi bruger attributter til at markere hvad der er test klasse oghvad der er test metoder. Jeg kalder Assert AreEqual med 3 argumenter: - forventet værdi - faktisk værdi - tekst som identificerer stedet i koden (jeg anbefaler klart at man bruger versionen med 3 argumenter, da den identificerende tekst ofte er meget nyttig)
8 Der findes også IsTrue IsNull etc. metoder. Og når vi kører med: csc /t:library MathVector.cs csc /r:mathvector.dll /r:"\program files\nunit 2.2\bin\nunit.framework.dll" /t:library MathVectorTest.cs nunit-console MathVectorTest.dll vbc /t:library MathVector.vb vbc /r:mathvector.dll /r:"\program files\nunit 2.2\bin\nunit.framework.dll" /t:library MathVectorTest.vb nunit-console MathVectorTest.dll Får vi følgende fejl: NUnit version Copyright (C) James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, Charlie Poole. Copyright (C) Philip Craig. All Rights Reserved. OS Version: Microsoft Windows NT NET Version: F Tests run: 5, Failures: 1, Not run: 0, Time: 0, seconds Failures: 1) MathVectorTest.Mod : Mod 0 expected:<-1> but was:< > at MathVectorTest.Mod() Vi kigger lidt i koden og opdager at der mangler en multiplikation, så vi retter koden til: public MathVector Mod(int k) for(int i = 0; i < v.length; i++) res[i] = v[i] - (v[i]/k)*k; Public Function OpMod(ByVal k As Integer) As MathVector
9 Dim res(_v.length - 1) As Integer res(i) = _v(i) - (_v(i) \ k)*k Og nu får vi: NUnit version Copyright (C) James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, C harlie Poole. Copyright (C) Philip Craig. All Rights Reserved. OS Version: Microsoft Windows NT NET Version: Tests run: 5, Failures: 0, Not run: 0, Time: 0, seconds Videre med NUnit Udover at skrive fejl til consollen så skriver NUnit også en rapport til en fil, som kan gemmes, es elle rprocesses af et andet program (det sidste er nemt fordi den er i XML). TestResult.xml <?xml version="1.0" encoding="utf-8" standalone="no"?> <!--This file represents the results of running a test suite--> <test-results name="c:\e5\mathvectortest.dll" total="5" failures="1" not-run="0" date=" " time="18:21"> <test-suite name="c:\e5\mathvectortest.dll" success="false" time="0,109375" asserts="0"> <results> <test-suite name="mathvectortest" success="false" time="0,09375" asserts="0"> <results> <test-case name="mathvectortest.add" executed="true" success="true" time="0.047" asserts="6" /> <test-case name="mathvectortest.sub" executed="true" success="true" time="0.000" asserts="6" /> <test-case name="mathvectortest.mul" executed="true" success="true" time="0.000" asserts="6" /> <test-case name="mathvectortest.div" executed="true" success="true" time="0.000" asserts="6" /> <test-case name="mathvectortest.mod" executed="true" success="false" time="0.016" asserts="2"> <failure>
10 <message><![cdata[mod 0 expected:<-1> but was:< >]]></message> <stack-trace><![cdata[ at MathVectorTest.Mod() ]]></stack-trace> </failure> </test-case> </results> </test-suite> </results> </test-suite> </test-results> Man kan køre flere test cases sammen ved at lave et NUnit project. AllTests.junit <NUnitProject> <Settings activeconfig="debug"/> <Config name="debug"> <assembly path="bin\debug\mathvectortest.dll"/> <assembly path="bin\debug\abctest.dll"/> <assembly path="bin\debug\xyztest.dll"/> </Config> <Config name="release"> <assembly path="bin\release\mathvectortest.dll"/> <assembly path="bin\release\abctest.dll"/> <assembly path="bin\release\xyztest.dll"/> </Config> </NUnitProject> Og teste den med: nunit-console AllTests.nunit Udover nunit-console programmet er der også et nunit-gui program, hvor man kan loade sit NUnit projekt og, køre det og se små grønne og røde cirkler. Og husk at fordelene ved NUnit bliver større jo større koden er. Den er nyttig ved et enkelt Visual Studio projekt som man builder og kører unittest på. Men den er uvurderlig, hvor et build job starter hver nat kl. 24 som builder i 2 timer og kører unit test i 4 timer, så der ligger en test rapport til programmørerne når de møder om morgenen med alle de små hovsaer. God test lyst.
11 Kommentar af skwat d. 21. Jul Hjæp, mine arme, jeg kan ikke få dem ned! Kommentar af karsten_larsen d. 27. Apr Rigtig god artikel Kommentar af mysitesolution d. 07. Apr Rigtig god artikel ;) vil helt sikkert få glæde af den. Man kan dog undre sig hvorfor det ellers fantastiske (delvist 2008) ikke har sådan nogle test indbygget? eller har de store versioner det? Kommentar af nielle d. 19. Apr Ok artikel, men jeg synes måske nok at du kunne have gået bare lidt i dybden med betydningen af attributterne. I øvrigt vil jeg gerne anbefale NUnit2Report ( som et godt værktøj til at forvandle NUnit xml-rapporter til nogle meget læsevenlige html-rapporter. Kommentar af the_ghost d. 30. Jan Rigtig god artikel. Jeg har selv brugt JUnit en del, og har kigget lidt efter noget lign. til.net -> C# Kommentar af talrinys d. 30. Jan Wow, så vidt jeg kan se en kanon artikel, men skal lige få kigget eksemplerne lidt bedre igennem
Test med JUnit 3. Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det.
Denne guide er oprindeligt udgivet på Eksperten.dk Test med JUnit 3 Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab
Læs mereIntroduktion til NAnt
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til NAnt Denne artikel beskriver NAnt, som er et værktøj til at builde.net applikationer med. Den beskriver nogle af de mest brugte NAnt
Læs mereIntroduction 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 mereIntroduction 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 mereDen forudsætter kendskab til XML og C# men ikke til brug af XML i C#.
Denne guide er oprindeligt udgivet på Eksperten.dk Brug af XML i C# Denne artikel vil vise lidt om hvordan man kan bruge XML i C#. Den forudsætter kendskab til XML og C# men ikke til brug af XML i C#.
Læs mereDen forudsætter kendskab til XML og VB.NET men ikke til brug af XML i VB.NET.
Denne guide er oprindeligt udgivet på Eksperten.dk Brug af XML i VB.NET Denne artikel vil vise lidt om hvordan man kan bruge XML i VB.NET. Den forudsætter kendskab til XML og VB.NET men ikke til brug af
Læs mereRMI 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 mereSingleton 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 mereThreads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter
Læs mereSom sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste
Denne guide er oprindeligt udgivet på Eksperten.dk Indkøbsvogn i PHP I denne artikel vil jeg prøve at lave en indkøbskurv som let kan udvides, og som ikke er svær at forstå. Det er bedst med viden om OOP(klasser),
Læs mereSend fra Java. Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende fra Java.
Denne guide er oprindeligt udgivet på Eksperten.dk Send email fra Java Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende email fra Java. Simple eksempler ikke noget vildt
Læs mereI denne artikel vil vi bruge en User klasse som vi så vil gruppere på forskellige måder.
Denne guide er oprindeligt udgivet på Eksperten.dk Collections i.net Når du kigger i namespacet System.Collections finder du over 10 forskellige klasser. At vælge den rigtige til netop din applikations
Læs mereSingleton 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 mereAnvendelse 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 mereIntroduktion til ant. Denne artikel beskriver Apache ant, som er et værktøj til at builde Java applikationer med.
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til ant Denne artikel beskriver Apache ant, som er et værktøj til at builde Java applikationer med. Den beskriver nogle af de mest brugte
Læs mereLogging i Java. Den forudsætter kendskab til Java og noget generel udviklings erfaring. Denne guide er oprindeligt udgivet på Eksperten.
Denne guide er oprindeligt udgivet på Eksperten.dk Logging i Java Denne artikel beskriver baggrunden for logging frameworks og viser hvordan man bruger 2 af de mest almindelige: Apache Log4J og J2SE/Java
Læs mereParameters. 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//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!
Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for
Læs mereHvorfor 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 mereSkrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET
Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til VB.NET og ADO.NET. Der findes en tilsvarende artikel
Læs mereMozilla Firefox (tidligere Firebird): Fremhæve ord
Denne guide er oprindeligt udgivet på Eksperten.dk Mozilla Firefox (tidligere Firebird): Fremhæve ord Du kender sikkert Google Værktøjslinjen til Internet Explorer, ellers har du sikkert hørt om den. I
Læs mereTilfældige tal. Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge.
Denne guide er oprindeligt udgivet på Eksperten.dk Tilfældige tal Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge. Den forudsætter
Læs mereIntroduktion til AOP i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til AOP i C# Denne artikel giver en introduktion AOP (Aspect Oriented Programming) i C#. Den forudsætter et pænt kendskab til programmering,
Læs mereDen 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 mereDatabase design for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Database design for begyndere Denne artikel beskriver hvordan man kommer fra ide til database design. Den stopper inden normal former. Den forudsætter
Læs mereHvilket 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 mereRMI avanceret. Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer.
Denne guide er oprindeligt udgivet på Eksperten.dk RMI avanceret Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer. Den forudsætter
Læs mereapplikation----x----odbc driver manager----foobar ODBC driver----foobar database
Denne guide er oprindeligt udgivet på Eksperten.dk ODBC i C/C++ Denne artikel beskriver hvordan man bruger ODBC i C/C++. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab
Læs mereHvad 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 mereForskellige Java versioner
Denne guide er oprindeligt udgivet på Eksperten.dk Forskellige Java versioner Denne artikel beskriver lidt om de forskellige Java versioner. Den forklarer J2SE/J2ME/J2EE, plugin/jre/sdk og Sun Java/Microsoft
Læs mereNye Java XML API'er
Denne guide er oprindeligt udgivet på Eksperten.dk Nye Java XML API'er Denne artikel beskriver nye XML features i Java 1.6 - StAX og JAXB, samt XStreams. Den forudsætter kendskab til Java og brug
Læs mereUndtagelseshåndtering i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Undtagelseshåndtering i C# I modsætning til C++ kan man i C# ikke skrive et program uden undtagelseshåndtering, så derfor har jeg skrevet denne guide
Læs mere.NET 4.0 og C# 4.0. Denne artikel beskriver nogle af de nye features i.net 4.0 og C# 4.0. Den forudsætter et vist kendskab til.net og C#.
Denne guide er oprindeligt udgivet på Eksperten.dk.NET 4.0 og C# 4.0 Denne artikel beskriver nogle af de nye features i.net 4.0 og C# 4.0. Den forudsætter et vist kendskab til.net og C#. Skrevet den 14.
Læs mereTech College Aalborg. ASP.NET Hjemmeside. Projekt Smart Zenior Home - Guide til ASP.NET hjemmeside med Visual Studio
Tech College Aalborg ASP.NET Hjemmeside Projekt Smart Zenior Home - Guide til ASP.NET hjemmeside med Visual Studio Isabella Sihm Ziersen Indhold ASP.Net hjemmeside... 2 Visual Studio... 2 Brug af templates
Læs merePrepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.
Denne guide er oprindeligt udgivet på Eksperten.dk Prepared Statements Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Skrevet den 18. Feb 2010
Læs mereAfsending af s vha. ASP
Denne guide er oprindeligt udgivet på Eksperten.dk Afsending af emails vha. ASP Det kan ofte være praktisk at afsende emails fra sin hjemmeside. Denne artikel tager udgangspunkt i komponenten JMail fra
Læs mereEndnu mere om tilfældige tal
Denne guide er oprindeligt udgivet på Eksperten.dk Endnu mere om tilfældige tal Denne artikel bygger oven på de to forrige artikler om tilfældige tal. Den indeholder lidt matematik og anvendelse på PHP
Læs mereBits, bit operationer, integers og floating point
Denne guide er oprindeligt udgivet på Eksperten.dk Bits, bit operationer, integers og floating point Denne artikel beskriver hvordan data gemmes som bits og hvordan man kan manipulere med bits. Den forudsætter
Læs mereArkitektur 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 mereLærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen
Lærevejledning - en introduktion til maskinarkitektur faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig Basisuddannelse
Læs mereInstallation 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 mereIT projekt person galleri
Denne guide er oprindeligt udgivet på Eksperten.dk IT projekt person galleri Denne artikel forsøger at forklare lidt om hvilke funktioner der ligger bag ved de forskellige titler som deltagerne i et IT
Læs mere02101 Indledende Programmering Introduktion til Eclipse
02101 Indledende Programmering Introduktion til Eclipse Version 2018 1 Introduktion I dette kursus lægger vi op til at man bruger det integrerede udviklingsmiljø Eclipse. Basalt set er et integreret udviklingsmiljø
Læs mereReal-time programming safety in Java and Ada
Real-time programming safety in Java and Ada Bo Sandén Presenter: Thomas Bøgholm 25. oktober 2007 Forfatteren Artiklen Synkroniserings Begreber Bo Sandén Professor på Colorado Technical University Beskæftiger
Læs mereCONTENTS 1. KOM GODT IGANG... 3 2. JEG HAR WINDOWS 7 OG ØNSKER AT UDVIKLE APPS TIL WINDOWS PHONE 7... 4 2.1 Opret en DreamSpark konto... 4 2.
CONTENTS 1. KOM GODT IGANG... 3 2. JEG HAR WINDOWS 7 OG ØNSKER AT UDVIKLE APPS TIL WINDOWS PHONE 7... 4 2.1 Opret en DreamSpark konto... 4 2.2 Download udviklingssoftware... 6 2.2.1 Hent Visual Studio
Læs mereIndhold. Senest opdateret:03. september 2013. Side 1 af 8
Indhold Introduktion... 2 Scenarier hvor API et kan benyttes... 2 Scenarie 1 Integration til lagerhotel... 2 Scenarie 2 Integration til økonomi system... 2 API Modeller... 2 Webshop2 API Model v1... 3
Læs mereAt klippe en streng over på det mest hensigtsmæssige sted
Denne guide er oprindeligt udgivet på Eksperten.dk At klippe en streng over på det mest hensigtsmæssige sted Formålet med denne artikel er at kaste lidt lys over, hvordan man klipper en streng over på
Læs mereInstallation 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 mereCurriculum vitae. Personlige oplysninger. Præsentation. Projekterfaring
Curriculum vitae Personlige oplysninger Navn: Michael Sig Adresse: Hesseløgade 4, 3.th. 2100 København Ø Telefonnr.: 40 97 50 49 www: www.sig-logik.dk Email: michael@sig-post.dk Alder: 32 år (født d. 21.9.1974)
Læs mereAO Værktøjer. Installationsvejledning. Version 3. Version 1.0
AO Værktøjer Version 3 Installationsvejledning Version 1.0 28. oktober 2006 AO Værktøjer 3.2 Installationsvejledning Side 2 Indholdsfortegnelse Baggrund...3 Værktøjsvalg...3 Forudsætninger...4 Hvad er.net
Læs mereIndhold. Senest opdateret : 30. juli 2010. Side 1 af 5
Indhold Introduktion... 2 Scenarier hvor API et kan benyttes... 2 Scenarie 1 Integration til lagerhotel... 2 Scenarie 2 Integration til økonomi system... 2 Webshop2 API Model... 3 Brugen af API et... 4
Læs mereDenne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS.
Denne guide er oprindeligt udgivet på Eksperten.dk XML i ASP Denne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS. Den forudsætter
Læs mereArrays i PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 04. Feb 2009 af taskmgr I kategorien Programmering / PHP
Denne guide er oprindeligt udgivet på Eksperten.dk Arrays i PHP De fleste som har skrevet omfattende scripts, er før eller siden stødt på problemet med at de bliver vanskelige at overskue hvis man bruger
Læs mereJava web applikationer med Tomcat
Denne guide er oprindeligt udgivet på Eksperten.dk Java web applikationer med Tomcat Denne artikel beskriver hvordan man kan konfigurere container managed security og en database connection pool i Tomcat.
Læs mereMed register_globals = On får du automatisk adgang til en række variabelnavne i dit script.
Denne guide er oprindeligt udgivet på Eksperten.dk Register Globals Off Lad os slå en ting fast med det samme - register_globals = Off er en god ting, i hvert fald set ud fra et sikkerhedsmæssigt synspunkt.
Læs mereDelphi - CrackMe og Keygen
Denne guide er oprindeligt udgivet på Eksperten.dk Delphi - CrackMe og Keygen Dette er min første artikel! :) Men jeg synes nu den er blevet meget god! :D Jeg giver et et eksempel på hvordan man kan lave
Læs mereF# - hvorfor, hvordan og til hvad? Rune Ibsen Jyske Bank
F# - hvorfor, hvordan og til hvad? Rune Ibsen Jyske Bank 03-10-2018 Rune Ibsen Softwareudvikling Seniorkonsulent Mentoring 10 konsulenter F# Programmeringssprog som oversættes til.net Functional-first,
Læs mereI denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.
Denne guide er oprindeligt udgivet på Eksperten.dk Grundlæggende PHP I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.
Læs mereDelphi 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 mereDatabase 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 mereI denne artikel vil jeg gennemgå hvordan en side for RSS "Live Bogmærke" kan se ud.
Denne guide er oprindeligt udgivet på Eksperten.dk RSS "Live Bogmærke" I denne artikel vil jeg gennemgå hvordan en side for RSS "Live Bogmærke" kan se ud. Skrevet den 10. Feb 2009 af madsass I kategorien
Læs mereOffset til terminalskærm i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Offset til terminalskærm i Java Ikke en atikkel - men en Classe til java der gør det nemt at skrive ud på avancerede måder når man kun opererer i dosvindue.
Læs mereOrCAD Capture TCL IDE med Eclipse
OrCAD Capture TCL IDE med Eclipse OrCAD Capture TCL er et script sprog til at lave applikationer til OrCAD Capture. Eclipse er et gratis udviklingsmiljø med debug muligheder. Denne guide hjælper med at
Læs mereOpsætning af Backup. Hvis programmet registreres korrekt vises nedenstående skærmbillede. Genstart herefter programmet.
Opsætning af Backup Dette er en guide til opsætning af backup med Octopus File Synchronizer. Det første der skal ske er, at programmet skal registreres (programmet kan dog bruges i 30 dage, hvis det ikke
Læs mereUdfordringer og problemstillinger. En liste over de udfordringer og problemstillinger, der er ved Java og JEE udvikling
Java og JEE 1 2 Udfordringer og problemstillinger En liste over de udfordringer og problemstillinger, der er ved Java og JEE udvikling 3 Generelt om Java og JEE 4 Generelt, I Man undervurderer hvor mange
Læs mereMapBasic &.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 mereDvs. 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 mereUdvikling af DOTNET applikationer til MicroStation i C#
Udvikling af DOTNET applikationer til MicroStation i C# Praktiske tips for at komme i gang. Gunnar Jul Jensen, Cowi Hvorfor nu det? Mdl og Vba kan det hele Fordelene er : udviklingsmiljøet er eksternt
Læs mereI denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal.
Denne guide er oprindeligt udgivet på Eksperten.dk Afrund til helt tal I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal. Skrevet den 03. Feb 2009 af tjomsen I kategorien
Læs mereGodkendelsesdato Version Rettet af Rettelse(r)
REST/SOAP Services Referenceimplementation Godkendelsesdato Version Rettet af Rettelse(r) 17/6-2010 1.0 Stefan L. Jensen 1 Indhold 1. Indledning... 3 2. Visual Studio solution... 3 3. Konfiguration...
Læs mereCivilstyrelsen. Lex Dania editor. Installationsvejledning. Version: 1.0 2011-09-26
Installationsvejledning Version: 1.0 2011-09-26 Indhold 1 INDLEDNING... 3 1.1 HVAD ER LEX DANIA EDITOR?... 3 1.2 FORUDSÆTNINGER... 3 1.2.1 Hardware... 3 1.2.2 Software... 3 1.3 POLICIES... 4 2 INSTALLATION
Læs mereKoden i denne guide vil kun virke i Flash MX 2003 og MX ikke ældre versioner!
Denne guide er oprindeligt udgivet på Eksperten.dk Slideshow - Guide Denne guide gennemgår grundigt og forklarende hvordan man i Flash laver et slideshow med simpel fade-effekt med billeder hentet dynamisk.
Læs mereHovedopgave. Test Driven Development. Troels Jegbjærg Mørch. Diplom i Informationsteknologi linien i Softwarekonstruktion
Hovedopgave Diplom i Informationsteknologi linien i Softwarekonstruktion Test Driven Development Af Troels Jegbjærg Mørch 25/5 2005 Troels Jegbjærg Mørch, studerende Henrik Bærbak Christensen, vejleder
Læs mereSådan skriver du artikler til Eksperten!
Denne guide er oprindeligt udgivet på Eksperten.dk Sådan skriver du artikler til Eksperten! Når du skriver artikler handler det om at få den ud til de rigtige personer, og vise den frem så den er let forståelig.
Læs mereMySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere.
Denne guide er oprindeligt udgivet på Eksperten.dk MySQL C API Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab
Læs mereMSI pakke til distribution af AutoPilot komponenter.
MSI pakke til distribution af AutoPilot komponenter. Hermed følger en basal dokumentation for installation af AutoPilot msi pakken. Der vil i det følgende blive forklaret brugen af 4 programmer fra Microsoft,
Læs mere.NET 4.5 og C# 5.0. Denne artikel beskriver nogle af de nye features i.net 4.5 og C# 5.0. Den forudsætter et vist kendskab til.net og C#.
Denne guide er oprindeligt udgivet på Eksperten.dk.NET 4.5 og C# 5.0 Denne artikel beskriver nogle af de nye features i.net 4.5 og C# 5.0. Den forudsætter et vist kendskab til.net og C#. Skrevet den 11.
Læs mereLoginsystem (med MySQL)
Denne guide er oprindeligt udgivet på Eksperten.dk Loginsystem (med MySQL) Dette er en guide til, hvordan man kan lave et loginsystem med php og muligvis også med sessioner og MySQL Skrevet den 02. Feb
Læs mereDatabase 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 mereJava 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 mereLær Python dag 1 - modul 1
Lær Python dag 1 - modul 1 Introduktion, basis python Steffen Berg Klenow Jonas Bamse Andersen Syddansk Universitet Indhold 1. Velkommen 2. Programmering i python 3. Typer, variabler og udtryk 1 Velkommen
Læs mereOpret ODBC datakilde Vejledning
Vejledning V. 1 APRIL 2011 FOR KUNDESERVICE Indholdsfortegnelse 1 Indledning... 3 1.1 Formål... 3 1.2 Målgruppe... 3 1.3 Krav... 3 2 Opret ODBC Datakilde (Open Database Connectivity)... 3 2.1 Forbindelse
Læs mereIT sikkerhed Whitelist
IT sikkerhed Whitelist IT sikkerhed Whitelist Skrevet af: Anchelika V. Skjødt og Lasse B. Troelsen Kom/IT A Klasse 3.5 Side 1 af 7. Spam facts Spam er et af de største problemer med internettet på nuværende
Læs mereRatingsystem i PHP og MySQL
Denne guide er oprindeligt udgivet på Eksperten.dk Ratingsystem i PHP og MySQL Lær at lave et system til at vise rating/bedømmelse på artikler og nyheder. Skrevet den 03. Feb 2009 af virtual1ty I kategorien
Læs mereSAX Simple API for XML.
SAX Simple API for XML. En API (Application Programming Interface) et bibliotek eller et sæt af funktioner eller metoder. SAX er et sådant bibliotek af abstrakte metoder som f. eks. startdocument() eller
Læs mereBrugerdefineret menuer i Access
Denne guide er oprindeligt udgivet på Eksperten.dk Brugerdefineret menuer i Access Denne artikel henvender sig primært til let øvede brugere af Access, der ønsker at komme i gang med at tilpasse egne menuer
Læs merePlugin-arkitektur med.net
Denne guide er oprindeligt udgivet på Eksperten.dk Plugin-arkitektur med.net Denne artikel viser hvordan du kan lave en plugin-arkitektur i dit program. Gør det muligt for andre at skrive udvidelser til
Læs mereTagwall med Php & MySQL
Denne guide er oprindeligt udgivet på Eksperten.dk Tagwall med Php & MySQL Her laver vi en tagwall i Php & MySQL... jeg forklarer dog ikke så meget, men jeg håber du kan få det til at blive til en tagwall
Læs mereViKoSys. Virksomheds Kontakt System
ViKoSys Virksomheds Kontakt System 1 Hvad er det? Virksomheds Kontakt System er udviklet som et hjælpeværkstøj til iværksættere og andre virksomheder som gerne vil have et værktøj hvor de kan finde og
Læs mereMartin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox
Martin Olsen DM0 Projekt 0 Del I. marts 0 FOTO: Colourbox Indhold Indledning... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Kildekode til SimpleInv.java... Kildekode til MergeSort.java...
Læs mereTestservice med anvendelse af Microsoft software.
Testservice med anvendelse af Microsoft software. Få offentlig nøgle fra installeret signeringscertifikat 1. Klik Start Kør på den pc eller server hvor signeringscertifikatet er installeret. 2. Skriv MMC
Læs mereVisual Basic for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Visual Basic for begyndere I denne artikel vil jeg gennemgå Visual Basic (IKKE.NET / Visual Basic 2005 Express Edition) på et begynder-niveau. fed kursiv
Læs mereGeografisk lokalisering i ASP.NET
Denne guide er oprindeligt udgivet på Eksperten.dk Geografisk lokalisering i ASP.NET Denne artikel forklarer lidt om hvorfor og hvordan man laver geografisk lokalisering og viser noget kode. Der er andre
Læs mereListen 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 mereVisual Studio Team System. Team Build en grundpille i søgen efter it-projektproduktivitet?
Visual Studio Team System Team Build en grundpille i søgen efter it-projektproduktivitet? Agenda: Introduktion Hvorfor Automatiseret Build Microsoft Team Build Rapportering/Data warehouse Commentor A/S
Læs mereIntroduktion Med installation af NavisionStatUtility, styrkes sikkerheden i indlæsningen af Excelfiler til Navision Stat via GIS-integrationen.
Side 1 af 11 Navision Stat 9.3 ØSY/CPS/MIL Dato 29.04.19 Installationsvejledning Navision Stat Utility 9.0 Overblik Introduktion Med installation af NavisionStatUtility, styrkes sikkerheden i indlæsningen
Læs mereUpload af billeder/filer for nybegyndere Del. 2
Denne guide er oprindeligt udgivet på Eksperten.dk Upload af billeder/filer for nybegyndere Del. 2 I denne Del vil jeg ikke gaa saa dybt i fil upload som i sidste. Jeg vil i stedet forklare om funktioner
Læs mereModul 8: Clouds (Lagring af filer)
Det sprogpædagogiske kørekort 2012/2013 Modul 8: Clouds (Lagring af filer) Del I Christoph Schepers Studieskolen 8/2012 Indholdsfortegnelse Introduktion... 2 Installer Dropbox (punkt 1-3).. 3 Åbn Dropbox
Læs mereEncoding:...1 Et tegn sæt (character set):...1 UTF-8 og UTF-16 (Unicode):...2
Encoding:...1 Et tegn sæt (character set):...1 UTF-8 og UTF-16 (Unicode):...2 Encoding: Vi har tidligere set på spørgsmålet om et XML dokuments encoding. Det er generelt altid en god ide at gemme et dokument
Læs mereCivilstyrelsen. Lex Dania editor 2010. Installationsvejledning. Version: 1.0 2012-03-09
Installationsvejledning Version: 1.0 2012-03-09 Indhold 1 INDLEDNING... 3 1.1 HVAD ER LEX DANIA EDITOR 2010?... 3 1.2 FORUDSÆTNINGER FOR ANVENDELSE... 3 1.2.1 Hardware... 3 1.2.2 Software... 3 1.3 DISTRIBUTION
Læs mere