I have been working on an interesting project here at work. I had previously been working on some fixes for a windows service (written in C#) that uploaded our catalog items to Google Base, based on some logging and comparison diffs, every fifteen minutes if there were new items or updates to items. But, with that seemingly on its way now, I was assigned this new project. Basically I am working on a system that will allow the definition of sql queries, or data “views” via an XML schema. Yes, I know there is already RDL for SQL Reporting Services, but that is not what they want. They want a much, much simpler setup that will make it easier for a developer on the team to make changes to, or add a new report, by editing the XML definition file.
So, off I go. I started with the whiteboard notes that were put up during my initial meeting about this, and the sample XML there-in, and have tried to keep it as simple as possible. I am using classes for each logical report entity, such as: Report, Query, Column, Parameter, etc. I am also using the VS unit testing framework for this project, which is something I hadn’t done previously, but wanted to. Let me qualify that by saying up front that I am not using TDD strictly speaking. But I am writing tests for code, classes and methods, as I go. I must say I am quickly becoming hooked on the idea of unit testing everything, whether you are designing with TDD or not, it just makes sense, and it does honestly help with design decisions. By testing your code as you go or before hand you get a quick look at how it will be called, which in my case where I am developing what hopes to be an api of sorts that will be extended and re-used often is a great benefit. Continue reading