⚠️ This page has been archived

✅ New page with updated info: codeauditor.com

Keep your code *healthy* with SSW Code Auditor - the best .NET refactoring tool!

Are you looking to eradicate bugs and ensure consistency? SSW Code Auditor is a tool that allows developers to take control of your code, ensuring large, complex source code can be simplified, cleaned and maintained. The built-in rules focus on the most popular .NET languages (C#, VB.NET) for both Windows Forms and ASP.NET; however, the flexibility of SSW Code Auditor allows the developer to add their own rules to target any language in any text file.

As a project or company grows, managing code standards throughout your team becomes virtually impossible. Consistent code is crucial to future development and maintenance. SSW Code Auditor lets you take control of your code and automatically review your web apps and projects - giving you more opportunity to spend time where it really matters.

Here at SSW, we face the problem of maintaining our standards across nearly five thousand web pages, over twenty active projects in both Visual Basic (6 and .NET) and C#. There comes a point where a tool to check our work is needed, this tool is SSW Code Auditor.

SSW Code Auditor utilises the power of Regular Expressions to audit your code. This powerful feature permits the user to write their own set of rules and have different rules for different projects.

Key Features & Benefits

SSW Code Auditor allows to you:

  • Verify that coding standards are maintained
  • Prevent bad coding practices
  • Seamlessly integrates with VS.NET

screen shot Great, user-friendly wizard style interface With our standards compliant user interface, you are sure to have a consistently great operating environment with SSW products.
Partial Screen shot 2 Make your own rules! With our powerful regular expression enabled parsing engine, you have the flexibility to scan any text file for any kinds of rules. Rules can check specific filetypes and have exceptions based on other regular expression matches.
Partial Screen Shot 3 Stay on top of things... Code Auditor has in-built scheduling and email notification functionality so you can have regular reminders of what needs attention in your projects!
Partial Screen Shot 4 Spanning the big picture Scan any number of directory trees with extensible path selection. As many development projects can be covered by your rules as you wish.
Partial Screen Shot 5 Report Output See a sample good report from the Code Auditor process.
See a sample bad report from the Code Auditor process.
Partial Screen Shot 6 Visual Studio Add-in Audit your project directly from Visual Studio with just a click.
**Also works in Visual Studio 2005 ** See the tutorial .
Partial Screen Shot 7 Visual Studio Add-in Automatically add SSW Code Auditor, NUnit and Microsoft FxCop project files to your solution so that you can easily access the tools to make your code healthier.

We have a rule Do you Add SSW Code Auditor and Microsoft FxCop project files to your Solution
Partial Screen Shot 8 Built-in sample projects & sample database We offer a sample database and kinds of sample projects to help you run a professional demo scan.

More Technical Features include the ability to:

  • Check any text file
  • Check file names
  • Scan project directories for code that violates your rules
  • Perform deep traversal of directories
  • Scan websites for HTML that violates your rules - including the information served by the web server!
  • Validate HTML code by using the Tidy HTML engine
  • Use the report that is written to an .mdb, or to export to XML
  • Organize separate projects into jobs
  • Allow exceptions to rules, thus ignoring files that you are aware of
  • Full scheduling abilities with email alerts, providing regular automated checks on your code base.
  • Use Regular Expression to define more rules
  • Regular Expression builder included

See more screenshots in the Code Auditor User guide .

Upcoming Features

  • XML based settings
  • Web service rules sharing

Predefined Rules - these are examples of what rules you can define

What about FxCop?

SSW Code Auditor is similar to Microsoft FxCop . FxCop has a good set of rules however there are some issues:

  • FxCop works against compiled assemblies and uses MSIL to get information about the code. SSW Code Auditor on the other hand looks at the source code itself.
  • FxCop only works against .NET assemblies. SSW Code Auditor on the other hand works against any plain text files.
  • Overall FxCop rules are good - however many are obscure (Eg: we do not worry about the Mobility rules and Portability rules ). SSW Code Auditor on the other hand has rules that are more 'general developer' oriented.
  • In addition SSW Code Auditor provides many rules to improve your User Interface.
  • For most users FxCop rules are fixed (unless you want to build a .NET Assembly). SSW Code Auditor rules can easily be extended using regular expressions.
  • Out of the box FxCop only provides one type of report in xml . SSW Code Auditor on the other hand provides a report that is flexible and shows the data in different views .
  • Both can be scheduled via a command line. SSW Code Auditor's wizard makes it real easy to help you keep your code projects clean all the time.
  • SSW Code Auditor encourages you to use both within the VS.NET environment .

Internet Explorer   WEB - HTML

  1. Anchor Name can't start with #
  2. Anchor names must be valid
  3. CSS stylesheets must specify a font (you should never use Times New Roman)
  4. Do not use META tags to redirect
  5. Always close quotations of HTML attributes. See Do you close quotations of all your html attributes? for more details.
  6. Empty tags must not exist (except server tags, SCRIPT or TD)
  7. FONT tags must not be used
  8. Google Alt Or Title in Image Tag
  9. Google File Size Limit
  10. Google Relevancy
  11. Google URL Case Sensitive
  12. Heading tags should not contain bold or strong tags
  13. No absolute paths or direct external links
  14. No UNC in HTML Link
  15. Page must contain META description
  16. Page must contain META keywords
  17. Page must have a TITLE tag
  18. Page must not link to the same URL twice. See Do you only have one link to the same page per page? for more details.
  19. Page must reference a CSS stylesheet
  20. Special characters must be encoded
  21. Specify shortcut icon "favicon.ico" at the site level. See Where do you store your favicon.ico file? for more details.
  22. Table tags should not specify the width
  23. Times New Roman should not be used
  24. TITLE tag must exist
  25. No non ASCII characters
  26. CSS stylesheets must have DocType to display accurately across all browsers. See Do you use DocType in Web Pages while using CSS style sheets? for more details.
  27. Links for reading back through data should use "< Back" instead of "< Previous" or other variations. See Do you use "< Back" instead of "< Previous" or other variations? for more details.
  28. "Return to" links should not be used for inter-page navigation. See Do you leave your users Bread Crumbs instead of "Return to" links? for more details.
  29. Width of images in web pages must not be more than 600 pixels. See Printing: Do you check for oversized images and table? for more details.
  30. Images referenced in your page should be inside an Images folder. See Do you put all images in your image folder? for more details.

Internet Explorer   WEB - ASPX

  1. Don't use listboxes. See Do you use Combo Boxes instead of single-select List Boxes? and Do you use Checked List Boxes instead of multi-select List Boxes? for more details.
  2. Don't use server controls image paths
  3. Windows must not be opened from a function that is called by the OnLoad event
  4. Windows must not be opened in the OnLoad event
  5. Do not put debug attributes on page. See Do you put debug information on page? for more details.

C Sharp Dot Net   C#

  1. All Buttons (except OK and Cancel), CheckBoxes, RadioButtons must have mnemonics. Look at Do your buttons have a mnemonic? for more details.
  2. AssemblyInfo.cs must have AssemblyVersion attribute
  3. Boolean Properties must be prefixed by a verb
  4. Buttons, CheckBoxes, GroupBoxes, Labels & RadioButtons must have System FlatStyle. Look at Do you have consistent look on your buttons? for more details.
  5. CenterParent must be used with FixedDialog
  6. CenterScreen must be used with FixedSingle
  7. Exception variables should be called ex
  8. Exception should be caught more precise. Look at Do you catch exception more precise? for more details.
  9. FixedDialog must be used with CenterParent
  10. FixedSingle must be used with CenterScreen
  11. If statement must have braces
  12. EnableVisualStyles must not be used, should include manifest file. Look at Do your applications support XP themes? for more details.
  13. No empty catch blocks
  14. No variable name with the same class name.
  15. OK and Cancel buttons should not have mnemonics
  16. SQL stored procedure names should be prefixed with the owner (dbo). Look at Do you always prefix SQL stored procedure names with the owner? for more details.
  17. String literals containing file paths should be @-quoted
  18. Windows Forms should use Tahoma Font
  19. WinExe Must have MainForm
  20. Don't use hard coded connection string. Look at Do you hard coded your connection string?   for more details.
  21. Button heights must be 23 pixels.
  22. Use Standard width for Date control. Look at Do you make common control with certain width? for more details.
  23. Use Standard width for  Ellipsis button. Look at Do you make common control with certain width? for more details.
  24. Use .Net naming standard. See Commonly used variables for more details.
  25. Message box title must be the application's product name and version only.  See Do you know how to make message boxes user friendly? for more details.

VB Dot NET   VB.NET

  1. All Buttons (except OK and Cancel), CheckBoxes, RadioButtons must have mnemonics. Look at Do your buttons have a mnemonic? for more details.
  2. AssemblyInfo.vb must have AssemblyVersion attribute
  3. Boolean Properties must be prefixed by a verb
  4. Buttons, CheckBoxes, GroupBoxes, Labels & RadioButtons must have System FlatStyle. Look at Do you have consistent look on your buttons? for more details.
  5. CenterParent must be used with FixedDialog
  6. CenterScreen must be used with FixedSingle
  7. Do not re-throw exceptions?. See Do you re-throw your exceptions? for more details
  8. FixedDialog must be used with CenterParent
  9. FixedSingle must be used with CenterScreen
  10. EnableVisualStyles must not be used, should include manifest file. Look at Do your applications support XP themes? for more details.
  11. Exception should be caught more precise
  12. No Empty Catch Blocks. See Do you have meaningless Catch blocks in your applications? for more details.
  13. Open In Try Block
  14. Option Explicit must not be off. See Do you always use Option Explicit? for more details.
  15. Project must Option Strict On
  16. SQL stored procedure names should be prefixed with the owner. See Do you always prefix SQL stored procedure names with the owner? for more details.
  17. String variables must have the str prefix
  18. Windows Forms should use Tahoma Font. See Do you use Microsoft Recommended Font in your Application? for more details.
  19. WinExe Must have MainForm
  20. Button heights must be 23 pixels
  21. Do not use CreateObject() for COM. See Do you use interoperability mechanism for COM object? for more details.
  22. Windows applications must have a MainForm or WizardPage. See Do you have a MainForm in your Windows application? for more details.
  23. Use .Net naming standard. See Commonly used variables for more details.
  24. Do not put Exit Sub just before End Sub. See Do you put Exit Sub before End Sub? for more details.
  25. Message box title must be the application's product name and version only. See Do you know how to make message boxes user friendly? for more details

DOT NET Logo   VB.NET & C#

  1. AcceptButton must be called OK or Next. See Do your Accept button called OK or Next? for more details.
  2. CancelButton must be called Cancel
  3. Controls must be less than (800,600). See Does your application's interface fit in the screen under any resolutions? for more details.
  4. Don't use listboxes. See Control Choice - Do you use Combo Boxes instead of single-select List Boxes? for more details.
  5. Forms which have buttons must have a CancelButton. See Do your form have Accept and Cancel Button? for more details.
  6. Forms which have buttons must have an AcceptButton
  7. Greater than/less than operators should not be used on integer/decimal literals (use >=)
  8. MessageBoxes must have icons
  9. Ok is not OK
  10. TextAlign should be TopLeft or MiddleLeft
  11. No non ASCII characters
  12. Use more descriptive variable names at least 3 letters
  13. Never use empty string like this "", use String.Empty. See Do you use String.Empty instead of ""? for more details.
  14. Not to Release in Debug mode. See Do you release your product in release mode? for more details
  15. Windows form name should not start with frm. See Do you use more meaningful names than Hungarian short form? for more details.
  16. Windows Form should have a minimum size to avoid unexpected UI behavior. See Do you keep a minimum size in the window forms? for more details.
  17. TimeSpan.Parse() function must be used with FormatTimeSpanString() to pre-format the time-string parameter. See Do you pre-format your time strings before using TimeSpan.Parse()? for more details.

VB Dot NET   VB 6.0

  1. Standard Button must be 23 pixels in height. See Do you make your buttons 23 pixels in height? for more details.
  2. Option Explicit must be on. See Do you always use Option Explicit? for more details.

SQL Server Scripts

  1. Do you avoid using the FILENAME parameter of CREATE DATABASE? See Do you create new databases in the default data directory? for more details.

How is Code Auditor able to work on Access .mdbs and .adps?

We convert all forms, reports and modules to text or .vb files.

Once you installed SSW Code Auditor, try our sample from <Installation Path>\SSW Code Auditor\Samples\NorthwindAccess2003

  Access 2003

  1. OnError Goto Statements should not be used. See Do you use OnError Goto Statements? for more details.

Folder   File Structure

  1. .BMP Files must not exist
  2. Images should be in the images directory. Look at Do you put all images in your image folder? for more details.
  3. No BAK Files
  4. There must not be any zz-ed files
  5. Images Folder can only contain Image Files
  6. Always include setup files in setup folder. Look at Do you put setup files in setup folder? for more details.

text screen shot   All Text Files

  1. No carriage returns without line feed
  2. Spelling in American standards
  3. Non ASCII characters must not exist. Look at Do you check for funny apostrophes? for more details.
  4. Email is not Email. Look at Do you know email should be email without the hyphen? for more details.

Reporting Services   Reporting Services

What does the unregistered version give me?

In respect to the unregistered version we know you want to see it working before you buy it. We aim for that.
Note: we also give free version targeted to the little guys
More details see http://www.ssw.com.au/ssw/KB/KB.aspx?KBID=Q658302

SSW provides free phone and email support to answer queries on registered products.

How to show that your application is 'SSW Code Auditor' Compliant

Code Auditor Compliat icon To show your users that you have taken the care to create a 'healthy' code, you may display this icon on any web pages and applications that validates.

For web pages:
Here is the HTML you could use to add this icon to your web page:

<p>
<a href="http://www.ssw.com.au/ssw/CodeAuditor"><img
    src="/ssw/Images/codeauditorcompliant.gif"
    alt="Code Auditor compliant" height="50" width="148" /></a>
</p>

Download the logo in PNG or GIF format.

Where should I put this icon?

We recommend that the logo to be placed on your website footer or in the About Box if it's a winform application.

Getting Support

If you can't find it in the product documentation then check our knowledge base for further information and tips about this product.

Please send us bug reports and feedback so that we can evolve our software into a product that matches your requirements. We guarantee a response.

I'm Sold... What's next?