main
  1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2<html xmlns="http://www.w3.org/1999/xhtml">
  3    <head>
  4        <title>NCoverExplorer Release Notes</title>
  5        <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR" />
  6        <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema" />
  7        <style type="text/css"> 
  8			body { font-size: 10pt; font-family: Verdana; }
  9			p.title { font-size: 20pt; font-weight: bold; }
 10			.subtitle { color: maroon; }
 11			p.question { font-weight: bold; }
 12			pre { font-size: 10pt; font-family: Courier; }
 13			pre.usage { background-color: #F0F0F0; }
 14			.quote { background-color: #F0F0F0; margin-left: 36pt;}
 15			.method { color: maroon; font-size: 10pt; font-weight: bold; }
 16			.hdrcell { background-color: #DDEEFF; font-size: 10pt; }
 17			.datacell { background-color: #FFFFEE; text-align: right; font-size: 10pt; }
 18			.hldatacell { background-color: #FFCCCC; text-align: right; font-size: 10pt; }
 19			.box { border: 1px solid; padding: 10px; }
 20			.treeviewBlack { color: black; }
 21			.treeviewGrey { color: grey; }
 22			.treeviewRed { color: red; }
 23			.treeviewBlue { color: blue; }
 24			.sourceBlue { background-color: #E0EDFD; color: black; }
 25			.sourceRed { background-color: #E6B0A5; color: black; }
 26        </style>
 27    </head>
 28    <body>
 29        <p class="title">NCoverExplorer Release Notes</p>
 30        <p>The latest version of this document is located <a href="http://www.kiwidude.com/dotnet/NCoverExplorerReleaseNotes.html">here</a>.
 31        <br/>For the latest NCoverExplorer news and updates, visit my <a href="http://www.kiwidude.com/blog/">blog</a>.</p>
 32        <hr/>
 33
 34        <p class="question">v1.4.0 - Aug 31st 2007</p>
 35        <p class="answer">The following new features were introduced:</p>
 36 			<ul>
 37				<li>
 38					Major rewrite of the underlying object design for future maintainability. Should improve treeview
 39					performance for .NET 2.0 users (and load performance for all users) as well as make it easier to
 40					add new features.
 41 				</li>
 42				<li>
 43					Changes to the project setting file format and location, both as used by the NCoverExplorer gui
 44					and the NCoverExplorer.Console.exe application. If you use the /c argument supplying a configuration
 45					file to NCoverExplorer then you must modify your project file format. See ConsoleExample.config
 46					for details (replace the outer tag and move ProjectName to be a Name attribute).
 47 				</li>
 48				<li>
 49					Replaced ICSharpCode text editor with Actipro which offers far superior features, more attractive
 50					appearance and provides a more flexible licensing model for the future of NCoverExplorer.
 51 				</li>
 52				<li>
 53					A new attribute added into the coverage report xml of "totalSeqPoints" which includes the
 54					total of any excluded sequence points at that level. In response to a feature request in
 55					<a href="http://ncover.org/SITE/forums/thread/697.aspx">this</a> NCover forum thread to allow
 56					people to report how much code was excluded from coverage.
 57 				</li>
 58				<li>
 59					Add a copy command to the right-click menu for the source code area.
 60 				</li>
 61				<li>
 62					Add a print preview command to the File menu.
 63 				</li>
 64				<li>
 65					Add support for profiling a specific process module to the Run NCover dialog.
 66 				</li>
 67				<li>
 68					Add a /fc (failCombinedMinimum) option to NCoverExplorer.Console.exe for emulating the
 69					original behaviour of failing based on total coverage to supplement the /f option which
 70					fails if an individual module is below the coverage threshold.
 71 				</li>
 72			</ul>
 73        <p class="answer">The following minor changes were made:</p>
 74			<ul>
 75				<li>
 76					Rewrite the options dialog to use a VS.Net style property pages approach.
 77 				</li>
 78				<li>
 79					Exclusions tab in Options dialog - delete key is now a shortcut to removing an exclusion.
 80 				</li>
 81				<li>
 82					Reorder the file menu slightly so Run NCover is separated.
 83 				</li>
 84				<li>
 85					Source code window now has a splitter bar.
 86 				</li>
 87				<li>
 88					Command line generated for NCover 1.5.7+ in NCover Runner dialog includes the //reg
 89					option if choosing to register coverlib.dll.
 90 				</li>
 91				<li>
 92					Statistics pane auto-sizes the last column to fill the width of the listview.
 93 				</li>
 94				<li>
 95					Coverage exclusions now support '?' and more complex wildcard expressions such
 96					as Test.*.Something*.
 97 				</li>
 98			</ul>
 99        <p class="answer">The following bug fixes were made:</p>
100			<ul>
101				<li>
102					Line number foreground colour not displayed correctly in options dialog tab.
103 				</li>
104				<li>
105					Directory not created if not existing when writing output report.
106 				</li>
107				<li>
108					Corrected typo in full name of parameter when using /quiet option with NCoverExplorer.Console.
109 				</li>
110			</ul>
111        <hr/>
112
113        <p class="question">v1.3.6 - Apr 5th 2007</p>
114        <p class="answer">Bundled with TestDriven.Net from build 2.5.2078.</p>
115        <p class="answer">The following new features were introduced:</p>
116 			<ul>
117				<li>
118					Added a Find dialog (ctrl+F) to quickly navigate to a class. Wildcards are supported.
119 				</li>
120				<li>
121					Added a /q or /quiet option to NCoverExplorer.Console.exe to minimise the output.
122 				</li>
123			</ul>
124        <p class="answer">The following minor changes were made:</p>
125			<ul>
126				<li>
127					Failing if less than a threshold now applies to any assembly not meeting the threshold
128					rather than comparing against the total coverage across all assemblies.
129 				</li>
130				<li>
131					Add some examples to the NCoverExplorer.Console.exe output for the /help or /? (or no arguments).
132 				</li>
133				<li>
134					Pressing ESC on the NCover Runner dialog will now close it.
135 				</li>
136				<li>
137					Implement a workaround for poor treeview performance under .NET 2.0.
138 				</li>
139				<li>
140					Rather than displaying validation errors automatically "fix" paths with matching trailing
141					slashes in the Change Source Path dialog.
142 				</li>
143				<li>
144					Writing of coverage files should now match the schema for the relevant NCover version.
145					Later NCover versions like 1.5.7 have enhanced the schema, so the results of a merge or
146					save from NCoverExplorer should offer a comparative schema in the result.
147 				</li>
148				<li>
149					Add a message indicating the return code to the output.
150 				</li>
151			</ul>
152        <p class="answer">The following bug fixes were made:</p>
153			<ul>
154				<li>
155					NCover 1.5.5/6 produce duplicate sequence points. To workaround this fix Jamie Cansdale implemented 
156					a change for me to the way the methods are identified uniquely. The longer term fix is NCover version 1.5.7 
157					- this should keep things usable until that is released.
158 				</li>
159				<li>
160					Another issue up to at least NCover 1.5.7 is that non-instrumented code does not have the sequence
161					points optimised. When merging multiple coverage files NCoverExplorer was incorrectly merging the noops with
162					valid instrumented sequence points, resulting in lower coverage information.
163 				</li>
164				<li>
165					If CoverageReport.xsl stylesheet already exists in destination output folder for an xml report
166					and is marked as read-only then the replace would fail.
167 				</li>
168				<li>
169					Drag/drop of coverage.xml files would add to the wrong end of the MRU menu once the maximum
170					number of items is reached.
171 				</li>
172				<li>
173					If multiple classes in the same file then selecting a class node was not navigating to that
174					class in the source code tab. It will now jump to the first unvisited sequence point, or if
175					there are none of those the first sequence point in the class.
176 				</li>
177				<li>
178					Wildcards for coverage exclusions were only working if placed at the ends, not in the middle
179					e.g. *.Tests or Testing.* would work, but xxx.*.yyy would not. 
180 				</li>
181				<li>
182					Prevent some of the nasty GDI errors in CommandBars code from disrupting the GUI. Longer
183					term will utilise another framework.
184 				</li>
185				<li>
186					Replacing paths by typing them in had MaxLength set to 50 so impossible to edit long paths
187					in the Change Source Path dialog.
188 				</li>
189				<li>
190					Merging property nodes under a parent in the tree has a dependency on the ordering of the coverage output
191					to ensure they appear properly.
192 				</li>
193				<li>
194					When restoring form position from persisted values, ensure it appears on a visible screen,
195					catering for the user changing their display settings between sessions.
196 				</li>
197				<li>
198					Ensure stylesheet cannot be copied over the top of itself.
199 				</li>
200				<li>
201					Supplying a file pattern with no matches to NCoverExplorer.Console.exe was throwing an "Index was
202					outside the bounds of the array" exception.
203 				</li>
204				<li>
205					Multiple coverage exclusion attributes not supplied correctly to NCover (build 26).
206 				</li>
207				<li>
208					Check to make sure node is assigned to a TreeView before getting handle to set text (build 32).
209 				</li>
210				<li>
211					Sort sequence point nodes when loading and handle merge case of multiple non-instrumented
212					sequence points becoming a single sequence point. (build 36).
213 				</li>
214			</ul>
215       <hr/>
216
217        <p class="question">v1.3.5 - Oct 23rd 2006</p>
218        <p class="answer">Bundled with TestDriven.Net from build 2.0.1921.</p>
219        <p class="answer">The following new features were introduced:</p>
220 			<ul>
221				<li>
222					Added ability to run NCover from within NCoverExplorer (all versions). User Ctrl+N or
223					entries on File menu/toolbar to bring up configuration dialog. After successful
224					execution, the resultant coverage file is displayed in NCoverExplorer.
225 				</li>
226				<li>
227					Added ability to generate MSBuild, NAnt and command-line scripts for running NCover
228					from within NCoverExplorer. See the NCover dialog above.
229 				</li>
230				<li>
231					Added new function coverage viewing options and module/class coverage report.
232					Indicates the percentage of functions covered rather than the sequence points within each.
233					Supported by a new "satisfactory function threshold" and function % sorting options.
234 				</li>
235				<li>
236					Background colours can now be customised for coverage nodes in the tree.
237 				</li>
238				<li>
239					Reports will now have the current filtering applied, not just the sorting settings.
240 				</li>
241				<li>
242					Reports using NCoverExplorer.Console can now have filtering and sorting applied. Use the
243					/sort: and /filter: command line arguments, or specify in a .config file (see example.config),
244					or use the sort/filter arguments to the NAnt/MSBuild tasks.
245 				</li>
246				<li>
247					Sorting and filtering options applied are now persisted and reapplied to the next coverage
248					xml file loaded, both in this and future sessions.
249 				</li>
250				<li>
251					Added ability to filter out all nodes exceeding coverage threshold.
252 				</li>
253				<li>
254					Revamp to the NAnt/MSBuild tasks. Renamed assemblies and namespaces. Included new attribute of
255					"AssembliesList" as an alternative to the "Assemblies" group element to allow direct
256					specification of a list as you would on the command line. The "Version" attribute is now optional
257					- the task determines it from the NCover assembly instead if not specified. Tasks will automatically
258					register NCover coverlib.dll using the HKCU entry in the registry - no need for regsvr32 any more!
259					NCoverExplorer task now writes it's config file to temp folder for passing to the executable.
260 				</li>
261				<li>
262					Added documentation for the NAnt and MSBuild tasks. This is included both in the NCoverExplorer.Extras.zip
263					file, as well as being available online for the custom <a href="http://www.kiwidude.com/dotnet/doc/NCoverExplorer.MSBuildTasks/index.html">MSBuild Task Help</a>
264					and <a href="http://www.kiwidude.com/dotnet/doc/NCoverExplorer.NAntTasks/index.html">NAnt Task Help</a>.
265					Links also available off the Help menu for NCoverExplorer.
266 				</li>
267				<li>
268					Added a schema file ConsoleConfig.xsd to the distribution for people wanting to know the exact syntax
269					options for creating .config files to pass to NCoverExplorer.Console using the /config switch.
270 				</li>
271				<li>
272					Added regular expression support to the coverage exclusions dialog for people wanting more complex queries.
273 				</li>
274			</ul>
275        <p class="answer">The following minor changes were made:</p>
276			<ul>
277				<li>
278					<span style="color:red">Configuration file change - the ModuleThresholds section in .config files passed to NCoverExplorer.Console now
279					uses propercase attribute names to be consistent with the rest of the configuration file.
280					i.e. "ModuleName" instead of "moduleName", and "SatisfactoryCoverage" instead of "satisfactoryCoverage".</span> You must update
281					your NAnt/MSBuild tasks for NCoverExplorer if you use these. If you instead use the &lt;exec&gt; task with a .config
282					file then you should update the case of the entries in this file. This only affects people who have setup coverage exclusions
283					at the module level for reporting purposes.
284 				</li>
285				<li>
286					If source code is out of date compared to the coverage results, the user is prompted with
287					the change source path dialog.
288 				</li>
289				<li>
290					If the user chooses a new source code location, the tab is now automatically opened for
291					that location rather than requiring the user to click on the tree node again.
292 				</li>
293				<li>
294					Added Help->NCoverExplorer Forum menu option to link to the NCover website. Also included
295					forum link information on the exception dialog.
296 				</li>
297				<li>
298					Added a toolbar button for turning off filtering.
299 				</li>
300				<li>
301					<span style="color:red">Keyboard shortcut change - Changed the keyboard shortcuts for next/previous unvisited class (ALT+UP/DOWN) and
302					next/previous unvisited line in class (ALT+LEFT/RIGHT).</span>
303 				</li>
304				<li>
305					Remember which tab was last opened in the NCoverExplorer options dialog during an NCoverExplorer session.
306 				</li>
307				<li>
308					Replaced references to "transparent.gif" with "shim.gif" in the NCoverExplorerSummary.xsl. The "shim.gif"
309					file is a transparent 1x1 gif already distributed with CC.Net.
310 				</li>
311				<li>
312					Coverage exclusions for assemblies are now case insensitive.
313				</li>
314				<li>
315					There are no longer two default coverage exclusions added of "*.Tests" and "*.My*" for first time users. 
316					Intended for demo purposes only but stayed in until now. New users can manually add them if they desire them.
317				</li>
318			</ul>
319        <p class="answer">The following bug fixes were made:</p>
320			<ul>
321				<li>
322					Overloaded constructors with class level variable declarations were being merged into a single
323					constructor in the coverage results as they had the same "start line" of the variable. Now uses
324					end line as part of the identifying key for each method.
325 				</li>
326				<li>
327					Memory leak from opening and closing tabs displaying source code.
328 				</li>
329				<li>
330					.Net 2.0 performance is pretty dire due to crap Microsoft changes to the TreeView control.
331					Change to default to .Net 1.1 in NCoverExplorer.exe.config and wrap updates to the tree
332					in BeginUpdate/EndUpdate.
333 				</li>
334				<li>
335					Parsing Java code would blow up if an accessor had the same name as a nested class (illegal in C#).
336 				</li>
337				<li>
338					Bugfix in NCover task where multiple assemblies were specified for NCover 1.5.4, which requires
339					separate &lt;assembly&gt; nodes.
340 				</li>
341				<li>
342					Bugfix in trying to restore selected node text after refreshing file could raise
343					null reference exception.
344 				</li>
345				<li>
346					Bugfix so that module names specified in module thresholds when using NCoverExplorer.Console
347					are no longer case sensitive for matching.
348 				</li>
349				<li>
350					Added support for NCover 1.5.5 - the //q bug is fixed in NCover. Also changed parsing code so that modules
351					with a blank assembly name (through using TestDriven.Net) are ignored from the coverage.
352 				</li>
353				<li>
354					Bugfix for merge functionality for NCover.Console when wildcards were used with relative paths.
355 				</li>
356				<li>
357					Bugfix for naming of xml/html arguments for NCover.Console with relative file paths.
358 				</li>
359				<li>
360					Bugfix for drag/drop broken while making the memory usage optimisations during the 1.3.5 beta release.
361 				</li>
362				<li>
363					Print button was enabled when no source code displayed resulting in exception.
364 				</li>
365			</ul>
366       <hr/>
367
368        <p class="question">v1.3.4 - Jul 10th 2006</p>
369        <p class="answer">Bundled with TestDriven.Net from build 2.0.1702.</p>
370        <p class="answer">The following new features were introduced:</p>
371 			<ul>
372				<li>
373					Added toolbar buttons which support moving to the next and previous unvisited code
374					within a class or namespace. Shortcut keys of N and P for next/previous unvisited line in the
375					current class (or mouse forward/back buttons). Use Ctrl+N and Ctrl+P to navigate to the
376					next/previous partially or unvisited class within the namespace (or Ctrl+forward/back mouse buttons).
377 				</li>
378				<li>
379					NCoverExplorer.Console.exe now supports saving the merged results of the coverage xml file(s) with
380					a /s[ave] option. The NCoverExplorer NAnt and MSBuild tasks have also been enhanced to support this
381					with an optional "mergeFileName" attribute.
382 				</li>
383				<li>
384					NCoverExplorer.Console.exe now supports wildcards for coverage xml filename(s).
385 				</li>
386				<li>
387					NCoverExplorer.Console.exe now supports module level coverage thresholds, rather than just a project
388					coverage threshold. This feature allows finer tolerance for both output on the reports and to fail
389					a build. Specifying the module thresholds is done either through a .config file (see ConsoleExample.config)
390					or through parameters in the NAnt/MSBuild tasks.
391 				</li>
392				<li>
393					Added a new summary report showing class coverage per namespace per module.
394 				</li>
395				<li>
396					Enhanced the NCoverExplorerSummary.xsl to display summaries of each module.
397 				</li>
398				<li>
399					Clicking on a class with non-existent source code displays a dialog allowing the user to specify an alternate
400					folder. For use when the source code location indicated within the coverage.xml file(s) loaded differs from
401					that on the local machine now (e.g. a different drive letter or folder path).
402 				</li>
403			</ul>
404        <p class="answer">The following minor changes were made:</p>
405			<ul>
406				<li>
407					NCoverExplorer release is compiled against .Net 1.1 rather than .Net 1.0 due to a dependency on the
408					FolderBrowserDialog not available in .Net 1.0.
409 				</li>
410				<li>
411					Coverage file stylesheet modified to show coverage column and NCoverExplorer version information with
412					numerous other cosmetic enhancements.
413 				</li>
414				<li>
415					Enrich error environment information to include .Net framework version and operating system.
416 				</li>
417				<li>
418					Classes without a namespace are now shown under a namespace node of "-" like in Reflector.
419 				</li>
420			</ul>
421        <p class="answer">The following bug fixes were made:</p>
422			<ul>
423				<li>
424					Warnings about mismatches when merging xml files are no longer issued. NCover seems to inconsistently
425					produce xml file coverage of methods which caused some users problems when merging.
426 				</li>
427				<li>
428					Nested classes without a namespace specified would cause the coverage.xml file to fail to load.
429 				</li>
430				<li>
431					Parsing overloaded properties (overloads of this[]) would not show the separate overloads in the tree
432					and have incorrect coverage stats.
433 				</li>
434				<li>
435					Fix memory leaks for when source code tabs are closed.
436 				</li>
437				<li>
438					Minimum coverage threshold for NCoverExplorer.Console would sometimes be incorrect due to rounding.
439 				</li>
440				<li>
441					Changed NCoverExplorerSummary.xsl to format to 1dp rather than rounding to 0.
442 				</li>
443				<li>
444					Sorting by filename for a method then clicking on class node threw exception.
445 				</li>
446				<li>
447					VB.Net source code keywords not highlighted with the correct ICSharpCode template.
448 				</li>
449			</ul>
450       <hr/>
451
452        <p class="question">v1.3.3 - Apr 4th 2006</p>
453        <p class="answer">Bundled with TestDriven.Net from build 2.0.1578.</p>
454        <p class="answer">The following new features were introduced:</p>
455 			<ul>
456				<li>
457					Added NCoverExplorer.Console.exe for utilising NCoverExplorer features with automated
458					coverage builds and NAnt tasks. By default will load up all the specified coverage file(s), apply
459					any coverage exclusion(s) specified in the NCoverExplorer configuration and display total
460					coverage statistics in the console output. If all items processed successfully returns an exit code of 0,
461					if an exception occurs returns an exit code of 2.
462 				</li>
463				<li>
464					Added /m:xx (or /minCoverage:xx) argument to NCoverExplorer.Console.exe. When used in conjunction with
465					/f (or /failMinimum) an exit code of 3 is returned if the min coverage is not reached. Can act
466					as a trigger for failing an automated build such as with CruiseControl.Net.
467 				</li>
468				<li>
469					Added module & namespace summary xml report generation to NCoverExplorer (both the GUI and Console versions).
470					In the GUI, this is available via the "View->Reports" menu. The three reports that are offered currently are:
471					<br/>&nbsp;- Module Summary (Coverage totals for the project and per module);
472					<br/>&nbsp;- Namespace Summary (Coverage totals for the project and per namespace);
473					<br/>&nbsp;- Module Namespace Summary (Coverage totals for the project, per module and per namespace);
474 				</li>
475				<li>
476					Reports can be generated in xml or html format. Native html may be useful for directly attaching to e-mails.
477					If xml format is chosen a "CoverageReport.xsl" stylesheet is copied from the NCoverExplorer installation
478					folder to the report directory and linked to the xml file similar to coverage.xml/coverage.xsl by NCover.
479 				</li>
480				<li>
481					Reports can contain an "excluded nodes" footer section. This lists at the topmost level all of the items
482					excluded from coverage at the time the report was run.
483 				</li>
484				<li>
485					Added "View->Filter" main menu and context menus, offering the ability to filter out nodes. Filtered
486					nodes are simply moved under a new "Filtered" tree node and do not alter the coverage statistics
487					(unlike excluded nodes which are effectively removed from the tree). Filters offered are either to
488					hide all 100% covered nodes, or hide all unvisited (0%) nodes.
489 				</li>
490				<li>
491					Added "Include in Results" context menu option for when clicking on either the "Excluded" bin or one
492					of it's immediate child nodes. Offers a way to "undo" an exclusion without reloading the file.
493 				</li>
494				<li>
495					Added "View->Summary Statistics" menu option (shortcut F3) to show dialog of totals of files, classes, members,
496					NCLOC (non-commented lines of code) and sequence points. Statistics do not include excluded nodes
497					(but will include filtered nodes).
498 				</li>
499				<li>
500					Created NAnt and MSBuild tasks for execution of NCoverExplorer.Console as an alternative to the &lt;exec&gt; task.
501					These tasks offer a more developer friendly alternative such as &lt;fileset&gt; for coverage files and creating a
502					.config file on the fly based on specified parameters such as &lt;exclusions&gt; within the .build/.proj file.
503 				</li>
504				<li>
505					Replaced menus with a lightly tweaked variant of Lutz Roeder's excellent CommandBar code to give a more modern
506					look and assign icons on the menus.
507 				</li>
508				<li>
509					Added a toolbar. If not wanted the toolbar can be hidden using the "View->Show Toolbar" menu option.
510 				</li>
511			</ul>
512        <p class="answer">The following minor changes were made:</p>
513 			<ul>
514				<li>
515	 				Options dialog shortcut changed to F2.
516 				</li>
517				<li>
518	 				Excluding a node will now select the node after by default rather than the one previous.
519 				</li>
520			</ul>
521        <p class="answer">The following bug fixes were made:</p>
522			<ul>
523				<li>
524					Fix bug where delete key shortcut was active on the root coverage file node, causing an exception to be thrown.
525 				</li>
526				<li>
527					Path was being truncated from the module name when saved.
528 				</li>
529				<li>
530					Fix bug where changing theme without coverage file loaded caused error.
531 				</li>
532			</ul>
533        <hr/>
534
535        <p class="question">v1.3.2 - Mar 14th 2006</p>
536        <p class="answer">Bundled with TestDriven.Net from build 2.0.1545.</p>
537        <p class="answer">The following new features were introduced:</p>
538			<ul>
539				<li>
540					Added support for merging multiple coverage files. This can be triggered through a variety of ways:
541					<br/>&nbsp;- Selecting multiple	test classes/fixtures/projects in TestDriven.Net;
542					<br/>&nbsp;- Passing multiple files in the command line arguments;
543					<br/>&nbsp;- Selecting multiple files in the Open dialog;
544					<br/>&nbsp;- Using a new "File->Merge..." menu option;
545					<br/>&nbsp;- Drag/dropping onto the NCoverExplorer application.
546				</li>
547				<li>
548					Added tabs for each source code file you open to explore coverage on. If you click on a partial class
549					then tabs will be opened for each of the source code files making up the class.
550				</li>
551				<li>
552					Added the ability to exclude assemblies, namespaces or classes from the coverage results by a wildcard capable
553					case-sensitive match on the name. By default NCoverExplorer includes two exclusions:
554					<br/>&nbsp;- Exclude all assemblies with the name ending in ".Tests".
555					<br/>&nbsp;- Exclude all namespaces with the name containing ".My" (for VB.Net exclusions).
556				</li>
557				<li>
558					Added support for the NCover 1.5.4 "excluded" attribute which can be found in the coverage.xml files when
559					the appropriate NCover command-line attributes are used. Note that TestDriven.Net still does not as yet
560					support this attribute so you need to use the NCover.Console command line for this feature - for more information see
561					<a href=http://ncover.org/SITE/blogs/ncover_blog/archive/2006/01/29/103.aspx>here</a>. NCoverExplorer
562					will not include nodes marked as 'excluded' by NCover in it's totals but will still display them in the tree.
563				</li>
564				<li>
565					Added an "Excluded" child bin node containing all nodes that have been excluded by the options dialog, by NCover
566					attributes or by the "Exclude From Results" context menu option (see next point).
567				</li>
568				<li>
569					Replaced the "Remove from Results" context menu feature with "Exclude from Results" (shortcut of the DEL key).
570					Achieves a similar result of removing nodes from coverage calculations, however the nodes are "moved" to the
571					Excluded bin rather than being deleted from the tree.
572				</li>
573				<li>
574					Added a custom "theme" capability along with further colour and font customisation options for the coverage tree,
575					statistics and source code panes. A number of predefined "themes" are supplied and users can add their own.
576					Users can switch between themes either in the Options dialog or via the "View->Themes" menu.
577				</li>
578				<li>
579					Added a new "View->Coverage" menu which has sub-options related to "Sequence Point Coverage" and
580					"Function Coverage", assigned shortcut keys ctrl+(1-4):
581					<br/>&nbsp;- Choosing one of the "Sequence Point" variants will display the tree nodes with differing naming
582					combinations of coverage percentage and # unvisited sequence points.
583					<br/>&nbsp;- Choosing "Function Coverage" will alter the coverage tree display so that only methods/classes that were
584					invoked are highlighted. Method nodes show the number of visits to that method. Class, namespace and module nodes
585					show the maximum visit count by any of their children.
586				</li>
587				<li>
588					Added a "View->Sort By" menu option and context menu on the tree, with sub-options for "Name" (default),
589					"Class name/line number", "Coverage %" (ascending/descending), "Uncovered Sequence Points" (ascending/descending)
590					and "Visit Counts" (ascending/descending).
591					Assigned shortcut keys of ctrl+shift+(1-8). Note that reloading the coverage file will remove the current sort
592					and default back to by "Name".
593				</li>
594				<li>
595					Added "Save" and "Save As" options to the File menu. These give you the option of overwriting/creating a
596					new coverage.xml file with the current values loaded in NCoverExplorer. Any coverage exclusions/removed
597					nodes will not appear in the saved coverage file. Note that the methods are written in the same order as
598					the sort order specified above.
599				</li>
600				<li>
601					Added an "Explore Coverage Folder" menu option to the file menu.
602				</li>
603				<li>
604					Added an "Expand All" context menu option on the tree (shortcut ctrl+L).
605				</li>
606				<li>
607					Enhanced the statistics pane. When a class node is selected you will now see additional columns of
608					coverage %, unvisited sequence points and sequence points. When clicking on a method node you will
609					now see the filename.
610				</li>
611				<li>
612					Implemented "smart expansion" in the tree. If when you expand a node there is only one child node
613					then that node will also be expanded and so on. Increases speed of tree navigation particularly
614					if using a style of "Nested" namespaces with deep hierarchies.
615				</li>
616				<li>
617					Display class file name in tab page header bar when a method node is clicked on. Tooltip shows the path.
618				</li>
619			</ul>
620        <p class="answer">The following minor changes were made:</p>
621			<ul>
622				<li>
623					Optimised when reloads of the coverage file so it is now only required if you change a coverage exclusion
624					or the tree grouping/nesting styles in the options dialog. Makes for a snappier UI.
625				</li>
626				<li>
627					Added a "Close" menu option to remove any loaded coverage file(s) from display.
628				</li>
629				<li>
630					Moved all the "Recent Files" into a submenu to tidy up the File menu.
631				</li>
632				<li>
633					Pressing Tab/shift-tab while focus is in the TextEditor pane of source code will now
634					move focus out of the TextEditor.
635				</li>
636				<li>
637					If a source code file contains multiple classes (not nested), then only the highlighting relevant
638					to that particular class will be displayed in the editor window as each class tree node is clicked.
639				</li>
640				<li>
641					Excluding the My namespace is now done through the Exclusions feature.
642				</li>
643				<li>
644					Options dialog can be displayed using the F4 shortcut key.
645				</li>
646				<li>
647					Removed last remnants of "non VS.Net standard colors" from the C# ICSharpCode TextEditor template.
648				</li>
649				<li>
650					Make the GUI naming consistent to correctly reference "sequence points" rather than "lines" and "unvisited"
651					rather than "uncovered".
652				</li>
653				<li>
654					Removed "Edit in VS.Net" from the View menu.
655				</li>
656				<li>
657					Changed NCoverExplorer main form icon to one that includes 32x32 sizes so Alt-Tab switching looks
658					better than upscaled 16x16 icon.
659				</li>
660				<li>
661					User is now prompted to remove a non-existent coverage file from the "Recent" files list rather than
662					automatically being removed.
663				</li>
664			</ul>
665        <p class="answer">The following bug fixes were made:</p>
666			<ul>
667				<li>
668					Serializing the configuration settings was not flushing the stream - resulting sometimes in a blank settings file
669					preventing people from loading NCoverExplorer. Will now revert to default settings if an error occurs.
670				</li>
671				<li>
672					Displaying a source code file that has been modified to have less lines of code than at the time of the coverage run
673					will now display a user friendly message box.
674				</li>
675				<li>
676					Compensation made for NCover not reporting column information when profiling C++ code. NCoverExplorer will now
677					highlight the entire line rather than throwing an error.
678				</li>
679				<li>
680					In some circumstances properties were not highlighted consistently due to a bug in the property node expansion.
681				</li>
682				<li>
683					Coverage greater than 99.5% will no longer be rounded up to 100% in the display. It is instead shown as ">99.5%".
684				</li>
685				<li>
686					Extremely high visit counts will no longer overflow the visit count.
687				</li>
688				<li>
689					Statistics pane for a class will now always consistently show the property nodes grouped, rather than only
690					after the class node has been expanded in the tree.
691				</li>
692				<li>
693					Recent file menu would display incorrectly for files numbered from 10 onwards truncating first character.
694				</li>
695				<li>
696					Release notes & FAQ were always directed to website rather than local versions when NCoverExplorer was started
697					from TestDriven.Net.
698				</li>
699			</ul>
700        <hr/>
701
702        <p class="question">v1.3.1 - Feb 15th 2006</p>
703        <p class="answer">Bundled with TestDriven.Net from build 2.0.1435.</p>
704        <p class="answer">The following new features were introduced:</p>
705			<ul>
706				<li>
707					Namespaces are now "flattened" by default in the tree. This looks like the ClassView
708					browser in VS.Net 2005 (or Lutz Roeder's Reflector). You can retain the nested look by changing it in the View->Options dialog.
709				</li>
710				<li>
711					If you use the original "nested" namespace style (like the VS.Net 2003 class browser), then inner namespaces will now be
712					listed at the top of each branch with the classes listed underneath which is less confusing to navigate.
713				</li>
714				<li>
715					Option to exclude the "My" namespace for VB.Net projects (for use with with BCL 2.0 & NCover 1.5.x).
716				</li>
717				<li>
718					Right-click menu option on coverage tree (shortcut ctrl+R) to "Remove From Results" that selected node
719					and all it's children. Will force the coverage values to be recalculated. Intended for use where
720					you have undesired assemblies, namespaces, classes or methods included in the report that are skewing your
721					coverage results and you want them removed.
722				</li>
723				<li>
724					Option to specify a satisfactory coverage threshold as a number of lines instead/as well as a percentage.
725					If either of the conditions are met the node is coloured differently (provided the coverage is not zero).
726				</li>
727				<li>
728					Colours can now be customised for both the source code highlighting and the nodes in the tree.
729				</li>
730				<li>
731					Collapse all nodes context menu option on the coverage tree control (shortcut ctrl-A). Equivalent to reloading
732					the coverage file (but would preserve any changes you have made such as removing nodes).
733				</li>
734				<li>
735					By default the NCoverExplorer now attempts to restore your currently selected node/caret position after
736					reloading a coverage.xml file (either F5 or by execution of another "Test With Coverage" command in TestDriven.Net).
737					You can turn off this behaviour in the View->Options dialog.
738				</li>
739				<li>
740					Statistics pane is now sortable by method name (default), visit count and line number.
741				</li>
742				<li>
743					Statistics pane now summarises all the methods and their visit counts when a class node is clicked.
744					Can be used as a basic form of method invocation counting for a fairly rudimentary level of profiling.
745					The colouring used is the same as that of the tree to visually assist in identifying methods invoked.
746				</li>
747			</ul>
748        <p class="answer">The following minor changes were made:</p>
749			<ul>
750				<li>
751					Restructured the Options dialog to have a tabbed interface.
752				</li>
753				<li>
754					Renamed the "Show Visit Pane" menu option to "Show Statistics".
755				</li>
756				<li>
757					The statistics pane now includes the method name. Widths of the columns are remembered each time you close NCoverExplorer.
758				</li>
759				<li>
760					Statistics pane now has icons and colouring to match those of the associated nodes in the coverage tree.
761				</li>
762				<li>
763					Inner nested classes now nested internally in the tree under the parent class, sorted to the top.
764				</li>
765				<li>
766					Added FAQ, Release Notes and Blog website to the Help menu.
767				</li>
768			</ul>
769        <p class="answer">The following bug fixes were made:</p>
770			<ul>
771				<li>
772					Source code files now loading with "Encoding.Default" rather than previous default of UTF-8.
773				</li>
774				<li>
775					Coverage highlighting not working correctly on multiple line statements.
776				</li>
777				<li>
778					Now handles partial classes and yield statements correctly.
779				</li>
780			</ul>
781        <hr/>
782
783        <p class="question">v1.3 - Feb 6th 2006</p>
784        <p class="answer">Bundled with TestDriven.Net from build 2.0.1373d.</p>
785        <p class="answer">The following new features were introduced:</p>
786			<ul>
787				<li>
788					Launching from VS.Net using TestDriven.Net will now re-use the NCoverExplorer instance
789					opened from a previous "Test with... Coverage" click. Each VS.Net instance has it's own
790					instance of NCoverExplorer.
791				</li>
792				<li>
793					Added "Edit in VS.Net" functionality (keyboard shortcut ctrl+ E) for classes and methods.
794					Will navigate to source code in your IDE at same point where your cursor resides in NCoverExplorer.
795					Replaces and enhances previous "Open File" right-click option which has been removed.
796				</li>
797				<li>
798					Added "Expand Covered" functionality (keyboard shortcut ctrl + Q) - recurses through the child
799					nodes of the current node and expands all those with partial or complete coverage. Useful when
800					using in conjunction with TestDriven.Net for isolated unit testing.
801				</li>
802				<li>
803					Added "coverage file" node at the top of the tree showing total coverage across all modules/namespaces.
804				</li>
805				<li>
806					Group by module option (default) to assist with navigating coverage for large solutions.
807				</li>
808				<li>
809					Configuration information for NCoverExplorer now written to Local Settings rather than registry.
810				</li>
811				<li>
812					Increase default number of "recent files" to 10, with ability to alter in the Options dialog.
813				</li>
814				<li>
815					Reload of the current coverage file now has a shortcut key of F5.
816				</li>
817				<li>
818					Display the path to the currently loaded coverage file in the title bar.
819				</li>
820			</ul>
821        <p class="answer">The following minor changes were made:</p>
822			<ul>
823				<li>
824					Performance enhancements to improve loading times further for large files.
825				</li>
826				<li>
827					Static constructors now renamed from "cctor" to ".cctor" so as to be sorted at the top.
828				</li>
829				<li>
830					Running NCoverExplorer for first time ever will use a better starting form position.
831				</li>
832				<li>
833					Removed configuration option for "nesting properties" - default remains the same of "true".
834				</li>
835				<li>
836					Source code refactoring into separate assemblies to facilitate unit testing.
837				</li>
838			</ul>
839        <hr/>
840        
841        <p class="question">v1.2 - Feb 1st 2006</p>
842        <p class="answer">First public release, bundled with TestDriven.Net from build 2.0.1341d.</p>
843        <p class="answer">The following new features were introduced:</p>
844			<ul>
845				<li>
846					Block style highlighting option for both visited and unvisited code.
847				</li>
848				<li>
849					Satisfactory coverage threshold.
850				</li>
851				<li>
852					Nesting of properties as nodes are expanded.
853				</li>
854				<li>
855					Further speed improvements for initial file parsing.
856				</li>
857			</ul>
858        <hr/>
859        
860        <p class="question">v1.1 - Jan 1st 2006</p>
861        <p class="answer">Speed improvements.</p>
862        <hr/>
863        
864        <p class="question">v1.0 - Dec 17th 2005</p>
865        <p class="answer">First version created.</p>
866    </body>
867</html>