<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>FinlogiK Statistics Collector for FxCop</title><link>http://finlogikfxcopstats.codeplex.com/Project/ProjectRss.aspx</link><description>The FinlogiK statistics collector tool for FxCop is intended to help development teams to track the progress of an FxCop backlog cleanup effort.  It is capable of counting total remaining and TODO ...</description><item><title>Project License Changed</title><link>http://finlogikfxcopstats.codeplex.com/license?LicenseHistoryId=35748</link><description>Copyright &amp;#40;c&amp;#41; 2007, FinlogiK Inc.&amp;#13;&amp;#10;All rights reserved.&amp;#13;&amp;#10;&amp;#13;&amp;#10;Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met&amp;#58;&amp;#13;&amp;#10;&amp;#13;&amp;#10;&amp;#42; Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.&amp;#13;&amp;#10;&amp;#13;&amp;#10;&amp;#42; Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and&amp;#47;or other materials provided with the distribution.&amp;#13;&amp;#10;&amp;#13;&amp;#10;&amp;#42; Neither the name of FinlogiK Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.&amp;#13;&amp;#10;&amp;#13;&amp;#10;THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;#34;AS IS&amp;#34; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES &amp;#40;INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES&amp;#59; LOSS OF USE, DATA, OR PROFITS&amp;#59; OR BUSINESS INTERRUPTION&amp;#41; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT &amp;#40;INCLUDING NEGLIGENCE OR OTHERWISE&amp;#41; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</description><author></author><pubDate>Mon, 15 Feb 2010 16:03:22 GMT</pubDate><guid isPermaLink="false">Project License Changed 20100215040322P</guid></item><item><title>Updated Wiki: Home</title><link>http://finlogikfxcopstats.codeplex.com/wikipage?version=4</link><description>&lt;div class="wikidoc"&gt;The FinlogiK statistics collector tool for FxCop is intended to help development teams to track the progress of an FxCop backlog cleanup effort.  It is capable of counting total remaining and TODO rule violations in an FxCop 1.35 project.&lt;br /&gt;
&lt;h2&gt;How does it work?&lt;/h2&gt;The tool is intended to count two types of FxCop violations:
&lt;ol&gt;&lt;li&gt;The number of &amp;quot;TODO&amp;quot; violations that are flagged for short-term clean-up as part of an immediate backlog (i.e.: violations of rules that have already been activated as decribed &lt;a href="http://msmvps.com/blogs/calinoiu/archive/2007/04/22/fxcop-and-the-big-bad-backlog.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, and&lt;/li&gt;
&lt;li&gt;The total number of violations left to fix before the entire backlog has been addressed for all existing FxCop rules.&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;This counting is accomplished by running FxCop multiple times and evaluating the results of the report produced by FxCop for each execution.  In particular, the following operations are carried out by the tool:
&lt;ol&gt;&lt;li&gt;The tool removes all TODO exclusions (if applicable) from the target FxCop project file.&lt;/li&gt;
&lt;li&gt;The tool runs FxCopCmd.exe to count the TODO violations.  Any active violation found in the resulting FxCop report is assumed to represent a TODO task.&lt;/li&gt;
&lt;li&gt;The tool modifies the FxCop project file to activate all rules.&lt;/li&gt;
&lt;li&gt;The tool re-runs FxCopCmd.exe to count the total violations.  Any active violation found in the resulting FxCop report is counted.&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;N.B.: Exclusions created via SuppressMessageAttribute instances in source code are never counted as violations by the tool.&lt;br /&gt;
&lt;h2&gt;Installation&lt;/h2&gt;&lt;ol&gt;&lt;li&gt;Download and install &lt;a href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=FinlogiKFxCopStats" class="externalLink"&gt;FinlogiK.FxCop.Statistics.Setup.msi&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  (Installation should be performed under a local administrator account.)&lt;/li&gt;
&lt;li&gt;After installation on at least one machine, run the CreateDatabase.sql SQL script from the install directory against a SQL Server 2005 instance in order to create the statistics database.&lt;/li&gt;
&lt;li&gt;After database creation, add any users who should be able to collect and view statistics to the public database role.&lt;/li&gt;&lt;/ol&gt;

&lt;h2&gt;Client configuration&lt;/h2&gt;&lt;ol&gt;&lt;li&gt;Launch the FinlogiK.FxCop.Statistics.Windows.exe application.&lt;/li&gt;
&lt;li&gt;Use the database configuration dialog to specify the connection string to the statistics database.  (If you cannot use the connection string builder, you should still be able to provide a connection string in the following format (without the quotes): &amp;quot;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=FxCopStatistics;Data Source=SomeSql2005Instance&amp;quot;.)&lt;/li&gt;&lt;/ol&gt;

&lt;h2&gt;Adding target applications&lt;/h2&gt;Before using the tool, you will need to provide a list of applications/projects for which you wish to collect FxCop statistics.  To do so, follow these steps:
&lt;ol&gt;&lt;li&gt;Launch the FinlogiK.FxCop.Statistics.Windows.exe application.&lt;/li&gt;
&lt;li&gt;Click the &amp;quot;Application Profiles&amp;quot; button in the application toolbar.&lt;/li&gt;
&lt;li&gt;Enter a row for each application/project for which you wish to be able to collect statistics:
&lt;ol&gt;&lt;li&gt;Use the &amp;quot;Name&amp;quot; column to specify the name you wish to use to identify the application within the statistics tool.&lt;/li&gt;
&lt;li&gt;Use the &amp;quot;Active&amp;quot; column to indicate whether one should be able to provide new statistics for the application using the tool.  This will usually be set to true for a new application.&lt;/li&gt;
&lt;li&gt;Use the &amp;quot;Treat all exclusions as TODOs&amp;quot; column to indicate whether all exclusions found the in FxCop project file should be assumed to be backlog cleanup tasks (as opposed to &amp;quot;real&amp;quot; violation suppressions).  This will usually be true iff you are using SuppressMessageAttribute for your real exclusions and the FxCop project for your TODO exclusions.&lt;/li&gt;
&lt;li&gt;The &amp;quot;FxCop project path&amp;quot; column is a user- and machine-specific path to the FxCop project path for the application.  It is an optional value that is only used if you perform a statistics collection on that particular client machine.&lt;/li&gt;
&lt;li&gt;The &amp;quot;FxCopCmd.exe path&amp;quot; column  is a user- and machine-specific path to FxCopCmd.exe (usually found in C:\Program Files\Microsoft FxCop 1.35\FxCopCmd.exe).  It is an optional value that is only used if you perform a statistics collection on that particular client machine.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;

&lt;h2&gt;Specifying TODO prefixes&lt;/h2&gt;Unless all the applications for which you will be using the statistics tool are flagged to treat all exclusions found in the FxCop project file as TODOs, you will need to help the tool identify which of the in-project exclusions are TODOs as opposed to real exclusions.  This is done by specifying a list of prefixes that the tool will attempt to match in the last note recorded against any given in-project exclusion.&lt;br /&gt;To provide a prefix list, follow these steps:
&lt;ol&gt;&lt;li&gt;Launch the FinlogiK.FxCop.Statistics.Windows.exe application.&lt;/li&gt;
&lt;li&gt;Click the &amp;quot;TODO prefixes&amp;quot; button in the application toolbar.&lt;/li&gt;
&lt;li&gt;Enter a row for each prefix (case-insensitive) that should identify a TODO exclusion.&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;For example, the current TODO prefix list in use at FinlogiK is the following:
&lt;ol&gt;&lt;li&gt;?&lt;/li&gt;
&lt;li&gt;pas le temps&lt;/li&gt;
&lt;li&gt;temporary&lt;/li&gt;
&lt;li&gt;to check&lt;/li&gt;
&lt;li&gt;to do&lt;/li&gt;
&lt;li&gt;todo&lt;/li&gt;
&lt;li&gt;too many problems&lt;/li&gt;
&lt;li&gt;too many to fix&lt;/li&gt;
&lt;li&gt;will be automatically converted&lt;/li&gt;
&lt;li&gt;will be fixed&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;Since the appropriate prefix list may evolve as developers add new exclusions to your FxCop projects, you should consider periodically reviewing your in-project exclusions in order to identify any new TODO prefixes that may have crept in.	&lt;br /&gt;
&lt;h2&gt;Running an analysis using the tool UI&lt;/h2&gt;Unless you are already using automated builds for your target projects, you will probably end up running statistics collection analyses from the tool UI.  To launch an analysis run from the UI, follow these steps:
&lt;ol&gt;&lt;li&gt;Launch the FinlogiK.FxCop.Statistics.Windows.exe application.&lt;/li&gt;
&lt;li&gt;Click the &amp;quot;Run Analysis...&amp;quot; button in the application toolbar.&lt;/li&gt;
&lt;li&gt;Select the application/project for which you wish to perform the analysis.&lt;/li&gt;
&lt;li&gt;Click the &amp;quot;Start&amp;quot; button to initiate the analysis run.&lt;/li&gt;
&lt;li&gt;Once the analysis run has completed, a message box will be shown indicating whether the analysis was successful and inviting you to view the resulting statistics should you wish to do so immediately.&lt;/li&gt;&lt;/ol&gt;

&lt;h2&gt;Running an analysis from an automated build&lt;/h2&gt;The tool may be launched in command line mode by providing the following arguments (in this order):
&lt;ol&gt;&lt;li&gt;The project name (required),&lt;/li&gt;
&lt;li&gt;The statistics database connection string (optional),&lt;/li&gt;
&lt;li&gt;The full path to FxCopCmd.exe (optional), and&lt;/li&gt;
&lt;li&gt;The full path to the FxCop project file to be used in the analysis (optional).&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;The command line arguments are read by position, so you should provide values for all optional arguments if you provide values for any of them.  If you do not provide the optional values, they will be read from the tool configuration for the build machine and user.&lt;br /&gt;&lt;br /&gt;In practice, you probably won't want to perform a statistics collection at every automated build, particularly if you're using continuous integration.  At FinlogiK, we've set things up so that we only run FxCop stats collection once per day for any given project.&lt;br /&gt;
&lt;h2&gt;Viewing analysis results&lt;/h2&gt;To view analysis results, open the tool UI and click the &amp;quot;View statistics&amp;quot; button in the toolbar.  Select the application and statistics run for which you wish to view statistics.  (The analysis runs are sorted in descending chronological order, and the timestamp shown is UTC.)&lt;br /&gt;&lt;br /&gt;The four tabs represent the summary and detailed results for each of the &amp;quot;total&amp;quot; and &amp;quot;TODO&amp;quot; violation categories.  The summary results show violation counts by rule category, and the detailed results show violation counts by rule.&lt;br /&gt;&lt;br /&gt;If you wish to modify the category mappings (for example, to merge multiple categories of custom rules into one category) and/or sorting for the summary results, this can be done by manually editing the CategoryGroups and RuleCategories tables in the statistics database.  The current version of the statistics tool does not include a UI for editing this data.&lt;br /&gt;
&lt;h2&gt;Known issues&lt;/h2&gt;This tool was developed for internal use at FinlogiK, and its functionality set is pretty close to the absolute minimum that we need for tracking our FxCop backlog cleanup efforts.  There's quite a bit we would have liked to change before distributing a version here on CodePlex, but that would probably have delayed the first public release more of less indefinitely.  So... Instead of no release at all, what you see here is exactly the same beastie we're using internally, warts and all.&lt;br /&gt;&lt;br /&gt;We've added some of those those warts to the &lt;a href="http://www.codeplex.com/FinlogiKFxCopStats/WorkItem/List.aspx" class="externalLink"&gt;Issue Tracker&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for this project.  Unfortunately, given limited resources, it's unlikely that we'll be addressing these issues any time soon, but at least you'll know that they bug us too... ;)  If there's some change that you absolutely can't live without, please feel free to download the &lt;a href="http://www.codeplex.com/FinlogiKFxCopStats/SourceControl/ListDownloadableCommits.aspx" class="externalLink"&gt;source code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and modify it as necessary for your internal use.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>dgouin</author><pubDate>Tue, 10 Nov 2009 19:45:12 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20091110074512P</guid></item><item><title>Created Release: 1.0.4.0 (Nov 10, 2009)</title><link>http://finlogikfxcopstats.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=35722</link><description>&lt;div class="wikidoc"&gt;Application re-branded with the company new name.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>dgouin</author><pubDate>Tue, 10 Nov 2009 19:40:33 GMT</pubDate><guid isPermaLink="false">Created Release: 1.0.4.0 (Nov 10, 2009) 20091110074033P</guid></item><item><title>Released: 1.0.4.0 (Nov 10, 2009)</title><link>http://finlogikfxcopstats.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=35722</link><description>&lt;div&gt;Application re-branded with the company new name.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;</description><author></author><pubDate>Tue, 10 Nov 2009 19:40:33 GMT</pubDate><guid isPermaLink="false">Released: 1.0.4.0 (Nov 10, 2009) 20091110074033P</guid></item><item><title>Source code checked in, #46219</title><link>http://finlogikfxcopstats.codeplex.com/SourceControl/changeset/view/46219</link><description>Rebranded the application</description><author>dgouin</author><pubDate>Tue, 10 Nov 2009 19:37:17 GMT</pubDate><guid isPermaLink="false">Source code checked in, #46219 20091110073717P</guid></item><item><title>CREATED FEATURE: Richer database security model</title><link>http://www.codeplex.com/FinRadFxCopStats/WorkItem/View.aspx?WorkItemId=3634</link><description>Increased granularity of permissions via at least splitting of editor and reader roles would be advantageous.&lt;br /&gt;</description><author>calinoiu</author><pubDate>Fri, 15 Feb 2008 16:07:53 GMT</pubDate><guid isPermaLink="false">CREATED FEATURE: Richer database security model 20080215040753P</guid></item><item><title>CREATED FEATURE: UI for rule category editing and mapping</title><link>http://www.codeplex.com/FinRadFxCopStats/WorkItem/View.aspx?WorkItemId=3633</link><description>Rule categories must currently be edited directly in the database tables since the application does not include a UI for this purpose.&lt;br /&gt;</description><author>calinoiu</author><pubDate>Fri, 15 Feb 2008 16:06:24 GMT</pubDate><guid isPermaLink="false">CREATED FEATURE: UI for rule category editing and mapping 20080215040624P</guid></item><item><title>CREATED FEATURE: Command line argument syntax</title><link>http://www.codeplex.com/FinRadFxCopStats/WorkItem/View.aspx?WorkItemId=3632</link><description>It would be more convenient if command line arguments were named rather than posititional.&lt;br /&gt;</description><author>calinoiu</author><pubDate>Fri, 15 Feb 2008 16:05:28 GMT</pubDate><guid isPermaLink="false">CREATED FEATURE: Command line argument syntax 20080215040528P</guid></item><item><title>CREATED FEATURE: Storage of FxCop reports</title><link>http://www.codeplex.com/FinRadFxCopStats/WorkItem/View.aspx?WorkItemId=3631</link><description>In order to facilitate backward application of any statistics to be added in the future, it would be convenient if the FxCop reports for both TODO and total violations were stored in the database at the time of analysis.&lt;br /&gt;</description><author>calinoiu</author><pubDate>Fri, 15 Feb 2008 16:04:46 GMT</pubDate><guid isPermaLink="false">CREATED FEATURE: Storage of FxCop reports 20080215040446P</guid></item><item><title>CREATED ISSUE: Exception explanations</title><link>http://www.codeplex.com/FinRadFxCopStats/WorkItem/View.aspx?WorkItemId=3630</link><description>Exceptions are not currently mapped to explanations of how the user might address a problem.  For the moment, it is expected that users are developers and are capable of examining&amp;#47;debugging the source code in order to figure out what they need to do to address any problems, including configuration issues.&lt;br /&gt;</description><author>calinoiu</author><pubDate>Fri, 15 Feb 2008 16:03:19 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: Exception explanations 20080215040319P</guid></item><item><title>CREATED ISSUE: Backend database platform</title><link>http://www.codeplex.com/FinRadFxCopStats/WorkItem/View.aspx?WorkItemId=3629</link><description>Only SQL Server is supported as a backend database.&lt;br /&gt;</description><author>calinoiu</author><pubDate>Fri, 15 Feb 2008 16:01:42 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: Backend database platform 20080215040142P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/FinRadFxCopStats/Wiki/View.aspx?title=Home&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
The FinRad statistics collector tool for FxCop is intended to help development teams to track the progress of an FxCop backlog cleanup effort.  It is capable of counting total remaining and TODO rule violations in an FxCop 1.35 project.
&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
How does it work?
&lt;/h2&gt;The tool is intended to count two types of FxCop violations:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;The number of &amp;quot;TODO&amp;quot; violations that are flagged for short-term clean-up as part of an immediate backlog (i.e.: violations of rules that have already been activated as decribed &lt;a href="http://msmvps.com/blogs/calinoiu/archive/2007/04/22/fxcop-and-the-big-bad-backlog.aspx" class="externalLink"&gt;here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;, and&lt;/li&gt;&lt;li&gt;The total number of violations left to fix before the entire backlog has been addressed for all existing FxCop rules.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;This counting is accomplished by running FxCop multiple times and evaluating the results of the report produced by FxCop for each execution.  In particular, the following operations are carried out by the tool:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;The tool removes all TODO exclusions (if applicable) from the target FxCop project file.&lt;/li&gt;&lt;li&gt;The tool runs FxCopCmd.exe to count the TODO violations.  Any active violation found in the resulting FxCop report is assumed to represent a TODO task.&lt;/li&gt;&lt;li&gt;The tool modifies the FxCop project file to activate all rules.&lt;/li&gt;&lt;li&gt;The tool re-runs FxCopCmd.exe to count the total violations.  Any active violation found in the resulting FxCop report is counted.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;N.B.: Exclusions created via SuppressMessageAttribute instances in source code are never counted as violations by the tool.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Installation
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Download and install &lt;a href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=FinRadFxCopStats" class="externalLink"&gt;FinRad.FxCop.Statistics.Setup.msi&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  (Installation should be performed under a local administrator account.)&lt;/li&gt;&lt;li&gt;After installation on at least one machine, run the CreateDatabase.sql SQL script from the install directory against a SQL Server 2005 instance in order to create the statistics database.&lt;/li&gt;&lt;li&gt;After database creation, add any users who should be able to collect and view statistics to the public database role.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;h2&gt;
Client configuration
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Launch the FinRad.FxCop.Statistics.Windows.exe application.&lt;/li&gt;&lt;li&gt;Use the database configuration dialog to specify the connection string to the statistics database.  (If you cannot use the connection string builder, you should still be able to provide a connection string in the following format (without the quotes): &amp;quot;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=FxCopStatistics;Data Source=SomeSql2005Instance&amp;quot;.)&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;h2&gt;
Adding target applications
&lt;/h2&gt;Before using the tool, you will need to provide a list of applications/projects for which you wish to collect FxCop statistics.  To do so, follow these steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Launch the FinRad.FxCop.Statistics.Windows.exe application.&lt;/li&gt;&lt;li&gt;Click the &amp;quot;Application Profiles&amp;quot; button in the application toolbar.&lt;/li&gt;&lt;li&gt;Enter a row for each application/project for which you wish to be able to collect statistics:&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;Use the &amp;quot;Name&amp;quot; column to specify the name you wish to use to identify the application within the statistics tool.&lt;/li&gt;&lt;li&gt;Use the &amp;quot;Active&amp;quot; column to indicate whether one should be able to provide new statistics for the application using the tool.  This will usually be set to true for a new application.&lt;/li&gt;&lt;li&gt;Use the &amp;quot;Treat all exclusions as TODOs&amp;quot; column to indicate whether all exclusions found the in FxCop project file should be assumed to be backlog cleanup tasks (as opposed to &amp;quot;real&amp;quot; violation suppressions).  This will usually be true iff you are using SuppressMessageAttribute for your real exclusions and the FxCop project for your TODO exclusions.&lt;/li&gt;&lt;li&gt;The &amp;quot;FxCop project path&amp;quot; column is a user- and machine-specific path to the FxCop project path for the application.  It is an optional value that is only used if you perform a statistics collection on that particular client machine.&lt;/li&gt;&lt;li&gt;The &amp;quot;FxCopCmd.exe path&amp;quot; column  is a user- and machine-specific path to FxCopCmd.exe (usually found in C:\Program Files\Microsoft FxCop 1.35\FxCopCmd.exe).  It is an optional value that is only used if you perform a statistics collection on that particular client machine.&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;h2&gt;
Specifying TODO prefixes
&lt;/h2&gt;Unless all the applications for which you will be using the statistics tool are flagged to treat all exclusions found in the FxCop project file as TODOs, you will need to help the tool identify which of the in-project exclusions are TODOs as opposed to real exclusions.  This is done by specifying a list of prefixes that the tool will attempt to match in the last note recorded against any given in-project exclusion.&lt;br /&gt;To provide a prefix list, follow these steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Launch the FinRad.FxCop.Statistics.Windows.exe application.&lt;/li&gt;&lt;li&gt;Click the &amp;quot;TODO prefixes&amp;quot; button in the application toolbar.&lt;/li&gt;&lt;li&gt;Enter a row for each prefix (case-insensitive) that should identify a TODO exclusion.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;For example, the current TODO prefix list in use at FinRad is the following:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;?&lt;/li&gt;&lt;li&gt;pas le temps&lt;/li&gt;&lt;li&gt;temporary&lt;/li&gt;&lt;li&gt;to check&lt;/li&gt;&lt;li&gt;to do&lt;/li&gt;&lt;li&gt;todo&lt;/li&gt;&lt;li&gt;too many problems&lt;/li&gt;&lt;li&gt;too many to fix&lt;/li&gt;&lt;li&gt;will be automatically converted&lt;/li&gt;&lt;li&gt;will be fixed&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Since the appropriate prefix list may evolve as developers add new exclusions to your FxCop projects, you should consider periodically reviewing your in-project exclusions in order to identify any new TODO prefixes that may have crept in.	&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Running an analysis using the tool UI
&lt;/h2&gt;Unless you are already using automated builds for your target projects, you will probably end up running statistics collection analyses from the tool UI.  To launch an analysis run from the UI, follow these steps:&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Launch the FinRad.FxCop.Statistics.Windows.exe application.&lt;/li&gt;&lt;li&gt;Click the &amp;quot;Run Analysis...&amp;quot; button in the application toolbar.&lt;/li&gt;&lt;li&gt;Select the application/project for which you wish to perform the analysis.&lt;/li&gt;&lt;li&gt;Click the &amp;quot;Start&amp;quot; button to initiate the analysis run.&lt;/li&gt;&lt;li&gt;Once the analysis run has completed, a message box will be shown indicating whether the analysis was successful and inviting you to view the resulting statistics should you wish to do so immediately.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;h2&gt;
Running an analysis from an automated build
&lt;/h2&gt;The tool may be launched in command line mode by providing the following arguments (in this order):&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;The project name (required),&lt;/li&gt;&lt;li&gt;The statistics database connection string (optional),&lt;/li&gt;&lt;li&gt;The full path to FxCopCmd.exe (optional), and&lt;/li&gt;&lt;li&gt;The full path to the FxCop project file to be used in the analysis (optional).&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;The command line arguments are read by position, so you should provide values for all optional arguments if you provide values for any of them.  If you do not provide the optional values, they will be read from the tool configuration for the build machine and user.&lt;br /&gt; &lt;br /&gt;In practice, you probably won't want to perform a statistics collection at every automated build, particularly if you're using continuous integration.  At FinRad, we've set things up so that we only run FxCop stats collection once per day for any given project.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Viewing analysis results
&lt;/h2&gt;To view analysis results, open the tool UI and click the &amp;quot;View statistics&amp;quot; button in the toolbar.  Select the application and statistics run for which you wish to view statistics.  (The analysis runs are sorted in descending chronological order, and the timestamp shown is UTC.)&lt;br /&gt; &lt;br /&gt;The four tabs represent the summary and detailed results for each of the &amp;quot;total&amp;quot; and &amp;quot;TODO&amp;quot; violation categories.  The summary results show violation counts by rule category, and the detailed results show violation counts by rule.&lt;br /&gt; &lt;br /&gt;If you wish to modify the category mappings (for example, to merge multiple categories of custom rules into one category) and/or sorting for the summary results, this can be done by manually editing the CategoryGroups and RuleCategories tables in the statistics database.  The current version of the statistics tool does not include a UI for editing this data.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Known issues
&lt;/h2&gt;This tool was developed for internal use at FinRad, and its functionality set is pretty close to the absolute minimum that we need for tracking our FxCop backlog cleanup efforts.  There's quite a bit we would have liked to change before distributing a version here on CodePlex, but that would probably have delayed the first public release more of less indefinitely.  So... Instead of no release at all, what you see here is exactly the same beastie we're using internally, warts and all.&lt;br /&gt; &lt;br /&gt;We've added some of those those warts to the &lt;a href="http://www.codeplex.com/FinRadFxCopStats/WorkItem/List.aspx" class="externalLink"&gt;Issue Tracker&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for this project.  Unfortunately, given limited resources, it's unlikely that we'll be addressing these issues any time soon, but at least you'll know that they bug us too... ;)  If there's some change that you absolutely can't live without, please feel free to download the &lt;a href="http://www.codeplex.com/FinRadFxCopStats/SourceControl/ListDownloadableCommits.aspx" class="externalLink"&gt;source code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and modify it as necessary for your internal use.&lt;br /&gt;
&lt;/div&gt;</description><author>calinoiu</author><pubDate>Fri, 15 Feb 2008 16:00:25 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080215040025P</guid></item><item><title>Source code checked in</title><link>http://www.codeplex.com/FinRadFxCopStats/SourceControl/ListDownloadableCommits.aspx</link><description>Initial commit</description><author>calinoiu</author><pubDate>Thu, 14 Feb 2008 16:24:56 GMT</pubDate><guid isPermaLink="false">Source code checked in 20080214042456P</guid></item><item><title>UPDATED RELEASE: 1.0.2.0 (Feb 14, 2008)</title><link>http://www.codeplex.com/FinRadFxCopStats/Release/ProjectReleases.aspx?ReleaseId=10734</link><description>Initial release</description><author></author><pubDate>Thu, 14 Feb 2008 16:03:48 GMT</pubDate><guid isPermaLink="false">UPDATED RELEASE: 1.0.2.0 (Feb 14, 2008) 20080214040348P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/FinRadFxCopStats/Wiki/View.aspx?title=Home&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
The FinRad statistics collector tool for FxCop is intended to help development teams to track the progress of an FxCop backlog cleanup effort.  It is capable of counting total remaining and TODO rule violations in an FxCop 1.35 project.
&lt;br /&gt;
&lt;/div&gt;</description><author>calinoiu</author><pubDate>Thu, 14 Feb 2008 15:42:32 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080214034232P</guid></item></channel></rss>