Published on
January 23, 2007.
After reading a while ago about Google’s MapReduce design pattern for highly scalable applications, I now found some time to write my own small example implementation in C#. Ok, ok, this itself is not scalable at all, but it illustrates the concept. One can see that .NET’s generics and delegates are very useful.
Here’s the download: MapReduceCSharp.zip (7 KB)
(To run the unit test, you need to have NUnit installed)
Published on
January 14, 2007.
Recently I’ve set up a Continuous Integration environment in our company for all our .NET source code. Previously we only had a daily build. Our C++ code still is on that basis and maybe we can convince the C++ guys that it is worth doing it (and I’m deeply sure that it is worth).
As basis for our continuous integration, I’ve used TeamCity. Alternatively you also could use CruiseControl.NET, but TeamCity altogether has more features - inclusive a nice AJAX based UI for all the administration and the monitoring. In CruiseControl.NET you have to do all the administration via config-files.
Before doing continuous integration, our whole build already was done via MSBUILD files. This really made it easy to integrate the whole build process in TeamCity, because it has built-in support for them.
One difficulty was, to make it work with StarTeam - our Version Control System. TeamCity currently (I used 1.2) has no built-in support for it. To fix that, I had to write some script code that does the check-out via StarTeam’s command line interface.
Automating the Unit Tests was quite easy. We wrote some NAnt files, which call the NUnit tests and integrated them in TeamCity.
Beside that, we also integrated fxCop for doing static code analysis using NAnt files. One drawback has TeamCity: It does not allow to include custom web pages in their UI. So I had to implement separate page for displaying the fxCop results. The same applies, if you want to use NCover or NDepend (I plan that for the next time).