April 2010 tot September 2011 - Een platform voor het ondersteunen van front office, clearing en billing activiteiten, dat bestaat uit web services en een gebruikersinterface gemaakt in C#.NET, enkele business services gemaakt in Magic iBolt en een front office toepassing voor het registreren van dossiers. Mijn rol in het ontwikkelteam strekt zich uit tot het meewerken aan de ontwikkeling van web services en de gebruikersinterface in C#.NET en het beheren van database wijzigingen. In deze omschrijving zal ik met name ingaan op bijdragen die ik heb gedaan voor het verbeteren van het ontwikkel proces.

Tags:
C#.NET - SQL - SQL Server - SQL Server Reporting Services - WCF - Microsoft Enterprise Library

Situatie

De opdrachtgever stond voor een bekend probleem, namelijk het samenvoegen van diverse software systemen en administraties na een aantal fusies. Na een periode van uitgebreid verzamelen en analyseren van requirements kwam men tot de conclusie dat er geen compleet overzicht gemaakt kon worden en er dus geen standaard software geselecteerd kon worden. Met name het structureel vastleggen en integreren van contractuele afspraken bleek lastig. Daarom is besloten een project op te starten om de software zelf te bouwen. Naast de implementatie van de genoemde mid-office activiteiten moest er een bestaande front-office applicatie geïntegreerd worden om te zorgen voor handhaving van de contractuele afspraken bij het aanmaken van dossiers.

Taken

Ik ben met name bezig geweest met de implementatie van WCF web services. Dit bestaat voor een groot deel uit het opstellen van configuratie bestanden (Web.config) wat lastig, inefficiënt en foutgevoelig bleek in een OTAP omgeving.

Verder heb ik de bestaande front office applicatie geïntegreerd in het platform. Dit was bijzonder lastig omdat het pakket nauwelijks integratie mogelijkheden bood en de ondersteuning op dit pakket zeer beperkt was.

Een andere taak was het beheren van de database.

Aanpak

Voor de integratie van de front office applicatie, en oude Win32 applicatie geschreven in c++, ben ik noodgedwongen zeer onconventioneel te werk gegaan. De integratie mogelijkheden die de applicatie bood waren ontoereikend, waardoor we niet op cruciale momenten in het front office proces konden ingrijpen. Om dit toch te kunnen bereiken heb ik programmatuur gemaakt die, op basis van de Windows API, onderdelen van de gebruikers interface verving door C# onderdelen.

Naast het normale programmeer werk heb ik een aantal noemenswaardige wijzigingen aangebracht in de werkwijze van het team.

Zoals genoemd leverde het configureren van met name de endpoints van de WCF services problemen op in de OTAP omgeving. Slechts enkele details in de configuratiebestanden verschillen tussen bijvoorbeeld de acceptatie en de productie omgeving, zoals server- en database namen. Om dit op te lossen heb ik een kleine toepassing ontwikkeld die in het pre-build event wordt aangeroepen en, afhankelijk van de gekozen configuratie in Visual Studio, configuratiebestanden kan aanpassen aan de gewenste stap in de OTAP. Zo wordt, in template vorm, hetzelfde basisbestand gebruikt voor alle OTAP stappen, en hoeven wijzigingen in de configuratie niet langer in vier vrijwel dezelfde configuratiebestanden te hoeven aangebracht.

Voor het beheren van de database heb ik een procedure opgezet die ervoor zorgt dat wijzigingen versie-gestuurd worden bijgehouden en bewaakt. Ook was ik de aangewezen persoon voor het oplossen van database problemen, data migraties en het opstellen van queries.

Resultaat

Tijdens het project hebben we als team door een efficiënte werkwijze enorm veel bereikt en geproduceerd. Ook heb ik zeer veel geleerd op het gebied van database performance optimalisatie en hoe je door juist gebruik te maken van Linq2SQL efficiënte database interactie kunt genereren.