Wednesday, September 19, 2007

NCover v2.0.1 (with NCoverExplorer v2.0)

Woah, what's this? You wait six months for the next NCoverExplorer bus to arrive and then two come along at once? Even better, there is a bright and shiny new NCover 2.0.1 to go with it...

Peter Waldschmidt nicely summarises in the new NCover blog his thoughts and rationale behind the decision to transition to a commercialised product. We've been talking about the combined possibilities for a little while now until the timing came right for Peter to make it all happen and start the Gnoso team.

For my part, I'm excited at what this means for the future of both products. Peter and his team have a long list of ideas and enhancements to really drive NCover forward and enhance it's existing reputation as the leading tool for .NET code coverage analysis. This opens up even more possibilities for new features for the NCoverExplorer tools to further improve their ability to deliver quality information to developers. Most importantly, the new business model Peter has put in place offers the necessary resources to make it happen.

You can already see the benefits of this in NCover 2.0.1 which we think is a giant step forward from the betas in 1.x. The highlights listed in "What's New" include a bunch of cool new features like interactive HTML reports, branch coverage and regular-expression based exclusions. I've provided my fair share of support in the NCover forums over time and the important "pain points" from 1.x or missing features like x64 support, IIS and service profiling have been focused on for NCover 2.0. Tremendous effort has gone into an ever growing automated suite of integration and regression tests across a range of OS/.NET versions to keep pushing the bar higher as the product moves forward. With dedicated support now available to address any issues as they arise I'm optimistic the product will continue to evolve very quickly.

So what does this all mean for NCoverExplorer? Well, NCoverExplorer 1.4 will continue to be freely available but will not be further enhanced. Instead my time and effort in conjunction with the Gnoso team has moved onto NCoverExplorer 2.0 which is now bundled with and more tightly integrated into NCover 2.0.1. The last few months have been spent pulling this together and it's a great feeling to get into the product some long awaited and often requested features in this version alone, such as...
  • support for all the new NCover 2.0 features (of course!)
  • multiple "project" support for settings per application you profile
  • auto-selecting your project settings when coverage xml files are loaded
  • more reports and enrichment of existing ones
  • more coverage exclusion types
  • a new and improved NCover dialog
  • a graphical source code navigation bar
  • an updated and more customisable GUI
  • enhanced NAnt/MSBuild tasks
  • numerous minor tweaks to enhance ease of use
I will blog about many of these features in more detail over the coming few weeks...

Not to be forgotten is some all important documentation available at long last. Configuring the NCover / NCoverExplorer tools into your build process has always involved a potential number of moving parts. The tool suite includes two console apps and a GUI application, two NAnt tasks, two MSBuild tasks, multiple stylesheets - we will continue to enhance the docs and examples to make this all easier for you.

So, where to from here? Well, by all means please download the trial version of NCover 2.0.1 and send us your feedback. Obviously the new support forums are the ideal place for your questions, feature requests and anything you want to see improved further.

Enjoy! Oh yeah, and don't forget to encourage your coworkers / boss / accountant / significant other / postman etc. to purchase NCover 2.0 licenses if you don't already qualify for a free one... you know you want to...

Sunday, September 16, 2007

NCoverExplorer... v1.4.0

I've had this "quietly available" on the download page for a few weeks to gain feedback on any issues and with no known issues outstanding it seems appropriate to more publicly announce it.

A big change in NCoverExplorer 1.4.0 is that it is no longer published under the GPL license. I made this change for a number of reasons; amongst which was the concern that a number of companies have of deploying GPL based tools into their development process. This roadblock has been removed and should no longer prevent your companies from using this toolset.

My original choice of GPL was based on using the ICSharpCode 1.x texteditor control. I have now dropped that component in favour of using the superior (but commercial) Actipro SyntaxEditor control instead. The improvements are not only in stability and features but also visual as you can see below in the code highlighting screenshot. A splitter window is available as also shown.

So why should you upgrade to NCoverExplorer 1.4?

This release is less about adding new features (although there are some to be found) and more about stabilisation for the future. The core model code has been rewritten and better tested. There have been countless code coverage corner cases (say that five times in a row!) arise that should be better catered for. Better performance for .NET 2.0 users, lower resource usage, better error handling and some minor gui quirks addressed.

Some of the "internal" changes have spilled over externally. For instance the configuration file format used by NCoverExplorer.Console with /c has changed to support new features, although I have retained legacy compatibility for those who choose not to upgrade their build scripts immediately.

What about the new features? Well, the ones I did squeeze in were...
  • Support for the //pm (profiling a process by name) argument in NCover 1.5.8;
  • Copy command in the source code text area via right-click;
  • Print preview command in the File menu;
  • /fc argument for NCoverExplorer.Console to fail a build if the combined total coverage of all assemblies does not meet the minimum specified. This was the original behaviour of the /f command before it was changed to fail if any individual assembly does not meet the minimum;
  • Coverage exclusions now support the '?' wildcard and multiple '*' wildcards within the expression.
  • Report xml contains a "totalSeqPoints" attribute as requested for developers writing alternate xsl reports that need to calculate the excluded code at each level;
  • Update the NAnt/MSBuild task dlls to support the latest changes;
  • Redesigned the options dialog as shown below;

Release Notes