I’ve never thought counting the number of lines of code in a project was a terribly accurate metric. It gives no view on the quality or efficiency of code and can lead to a mentality of more is better when it most certainly isn’t. Line counts are however good for the soul if you are very small development team and can act as an indication of project size and complexity. What can be a good metric, however, is a version on version comparison of line count.
So, Regatta Manager Suite v2.0 is approximately 70,000 lines of code, 11,000 of those are Jenny’s with the Weather Maker, Race Administrator and Rounding Actuals tools. The remaining 60,000 lines making up the core assemblies and the Course Setter. I’d not actually done a line count last year but had guessed (very wrongly) that it was around 30,000 lines. That code was actually 110,000 lines of code. 65,000 of those were in the Course Setter.
Using WPF reduced the line count for the Course Setter by half. The rest of the reduction in code is accounted for by a huge amount of refactoring of the core and clients; I moved from the data application block to using ADO.NET DataSets, and cleaned up a whole host of repeated, bloated and frankly crap code written either during the early hours of the morning or under huge pressure and always with a caffeine saturated blood stream.
I’m always looking for ways to promote WPF and the rest of the .NET Framework v3.0 to other developers and here is another one. It can seriously reduce the amount of code you have to manage on your user interface.
All I have to do now is port all my thrown together XAML from Beta 2 to RC1/RTM.