Visual Basic Days 2002  

Captator deltog på Teknologisk Instituts årligt tilbagevendende Visual Basic Days. I år foregik arrangementet på Hotel Nyborg Strand den 19. - 20. november 2002.

Test først programmering - Unit tests i VB .NET

ved Carsten Juel Andersen, Captator
Vi har alle prøvet det - et godt velfungerende program, der har virket upåklageligt, begynder pludseligt "uden grund" at te sig underligt. Tilbage til debuggeren. Nogle timer senere finder vi ud af, at den fejl, vi rettede i sidste uge, desværre havde en uheldig følgefejl. I de værste situationer bliver en følgefejl først opdaget adskillige uger efter, den er blevet indført, hvilket kan resultere i flere dages debugging, før problemerne er løst.

For at undgå sådanne situationer må der testes, men det at teste systematisk udskydes ofte til senere, det er jo vigtigere at få programmet færdigt. Eller er det? - Måske kunne de manglende tests spare os for mere tid, end de tog at skrive. Hvis testene automatiseres, kan de gentages igen og igen. Så bliver det pludselig let at sikre, at programmet til stadighed virker.

"Test først programmering" handler om at gøre automatiske tests til en naturlig del af et programs tilblivelse, og til en integreret del af din dagligdag som programmør. Fra at være en irriterende nødvendighed, gøres test til en sikkerhedsfaktor, der giver ro i det daglige arbejde. Når de automatiske tests melder systemet OK, så kan vi som kvalitetsbevidste programmører læne os tilbage og være stolte over at have et velfungerende system.

Dette indlæg vil handle om generel teori ved "Test først programmering", hvordan det gøres i praksis, samt hvad det er, der gør det sjovt at programmere på denne måde. Hovedvægten af indlægget vil blive lagt på at demonstrere, hvorledes testværktøjet NUnit for VB .NET benyttes. Vi kommer omkring NUnit, således at du efter VB-Days kan benytte værktøjet. Da NUnit er et OpenSource projekt, er der heller ikke nogle omkostninger ved at komme i gang - så hvad venter du på!

Systematisk frameworkudvikling - .NET på lykkepiller

ved .Henrik Lykke Nielsen, Captator
NET platformen er en udviklings- og afviklingsplatform omfattende teknologier, udviklingsværktøjer, serverprodukter og meget andet. Set fra en udviklers synspunkt er .NET frameworket, med dets store klassebibliotek, langt den vigtigste del af .NET platformen. Klassebiblioteket indeholder dog hovedsagligt kun basal teknisk funktionalitet, der ikke direkte adresserer egentlig bruger- og systemfunktionalitet. Det er et omfattende og godt udgangspunkt, men som udvikler indser man hurtigt, at ved udvikling af selv almindelige applikationer er der stadig utrolig meget, man selv skal håndtere.

Hvis man i længden skal lave gode applikationer, bør man placere den generiske del af applikationen i selvstændige genbrugelige komponenter - allerhelst udviklet med henblik på skabelsen af et sammenhængende framework. Implementation af frameworks drives dels naturligvis af ønsket om at kunne genbruge funktionalitet på tværs af applikationer, men dels også af ønsket om at skabe klare opsplitninger mellem generel funktionalitet og konkret implementation, hvorved der opnås en klarere arkitektur og langt lettere vedligehold af koden.

Et eksempel: Windows operativsystemet indeholder ganske vist integreret brugerhåndtering, men i forbindelse med eksempelvis en webapplikation ønsker man typisk at håndtere brugeradgangen eksplicit uden om Windows. I .NET findes der naturligvis basal funktionalitet til at implementere databasetilgang og GUI (til implementation af login-form og administrationsprogram), men desværre indeholder .NET frameworkets klassebiblioteker ikke direkte komponenter og værktøjer til at implementere ens egen brugerhåndtering.

Af andre lignende typiske eksempler på framework elementer kan nævnes generel fejlhåndtering og logning, håndtering af konfigurationsfiler, automatisk opbygning af user interface, internationalisering af applikationer etc.

Indlægget handler om systematisk udvikling af generiske frameworks. Indlægget, der illustreres med eksempler fra bl.a. Captators Eifos-framework, fokuserer på teknikker og best-practices for udvikling af generiske frameworks.