Friday, August 20, 2004

Denis Bauer's Reflector.FileDisassembler

Now this is cool; it's a Reflector add-in that allows you to generate source files from Reflector's decompiler output.

Thursday, August 19, 2004

NCover

I've hooked NCover into my build script; this is a code coverage tool, which analyses the execution path of your code as your unit tests run, and alerts you to unexecuted (and hence untested) code. I'm not sure about it yet - I've yet to get anything meaningful out of the results, and am considering moving to Clover.NET - although this is altogether more powerful (and integrates with VS.NET), it looks like it may be tricky to get working with NAnt, especially as I'm using the Solution task to build with, which apparently the Clover command line tools don't yet support.

If you're using NUnit (or anything like it), then it's essential that you use a code coverage tool; otherwise, it's impossible to tell exactly how effective your tests are; just because you're using NUnit, and have written hundreds of tests, if your tests are garbage you may as well not be doing any unit testing at all.

Thursday, August 12, 2004

Next Version of FxCop

Apparently, the next verson of FxCop (due in autumn) will support the analysis of privately visible code (currently, it's geared towards analysing the public interfaces of stand-alone assemblies, as you'd expect given its roots as the tool MS used to ensure consistency while they were developing the .net framework). This means that it will be much more useful as a code review tool... see the following thread on the GotDotNet FxCop Message Boards.

Wednesday, August 11, 2004

Spoke too soon!

Actually, the security centre in XP sp2 does integrate with 3rd part software - it's just that Norton was being tardy with its own update to its software! See: SP2, Norton, and August 2004.

Monday, August 09, 2004

Windows XP Service Pack 2 - Available on MSDN Universal Subscriber Downloads Only

MS have restricted access to sp2 initially, so if you have a Universal sub, you can download it from here. I Installed it on my machines over the weekend, and have no problems to report; ostensibly, changes are minor - there are no real new features that will immediately grab you, save for better Bluetooth and wireless support, and a Security Center that alerts you to Firewall and virus checker status. Note that, at the moment, the security center is quite useless. If you use 3rd party firewall and AV software, then you tick a box to switch off alerts - there's no integration with the 3rd party offerings. I imagine this will change, though - MS are entering the AV software business soon...

Monday, August 02, 2004

CruiseControl .NET

I've been writing NAnt scripts again for the last couple of days, and getting a CI system in place, but this time using CruiseControl, rather than Draco. I've been pleasantly surprised by CC - it was a breeze to set up (wish I could say the same about NAnt), the documentation was excellent, and it has lots of extra features that Draco lacks (an asp.net dashboard and a tray app that provides build status notifications), and integration with a variety of source control tools (including ClearCase, which is what I've been integrating with).

If you haven't looked into CI, then you first of all need to get intimate with NAnt (ignoring MSBuild for the time being). NAnt can be downloaded from SourceForge; there should be (just enough) documentation to help you get up and running. You're wise to use the Solution task in the NAntContrib project to automatically generate a NAnt script at build time from your .net solution file - this saves you having to constantly update the script when devs add or remove projects.

Once you've got this working, you should look into integrating NDoc (to automate the creation of your code documentation from C# comments), NUnit or NUnitForms (to run your unit tests), and FxCopCmd for lower level code analysis.

Once you've automated all that in your NAnt script, you can get CruiseControl working relatively easily. Best approach is to get it all working locally, then migrate it all to a build server (make sure it has IIS and asp.net installed for the CC Dashboard).