Here is a cool internal tool used by Microsoft that is now seeing daylight.
“We are very excited to announce the release of a new developer tool from Microsoft, Source Analysis for C#. This tool is known internally within Microsoft as StyleCop, and has been used for many years now to help teams enforce a common set of best practices for layout, readability, maintainability, and documentation of C# source code.
StyleCop is similar in many ways to Microsoft Code Analysis (specifically FxCop), but there are some important distinctions. FxCop performs its analysis on compiled binaries, whileStyleCop analyzes the source code directly. For this reason,FxCop focuses more on the design of the code, whileStyleCop focuses on layout, readability and documentation. Most of that information is stripped away during the compilation process, and thus cannot be analyzed by FxCop.
The ultimate goal of StyleCop is to allow you to produce elegant, consistent code that your team members and others who view your code will find highly readable. In order to accomplish this,StyleCop does not allow its rules to be very configurable.StyleCop takes a one-size-fits-all approach to code style, layout, and readability rules.It is highly likely that you will not agree with all of the rules and may even find some of the rules annoying at first! However, the majority of teams using this tool within Microsoft have found that after a short adjustment period, they came to appreciate the rules enforced byStyleCop, and even began to find it difficult to read code not written in this style.
StyleCop comes with a set of default rules analyzers covering approximately 200 best practice rules. These rules are fully compatible with the default layout settings in Visual Studio 2005 and Visual Studio 2008.
Specifically, these rules cover the following, in no particular order:
- Layout of elements, statements, expressions, and query clauses*
- Placement of curly brackets, parenthesis, square brackets, etc*
- Spacing around keywords and operator symbols*
- Line spacing*
- Placement of method parameters within method declarations or method calls*
- Standard ordering of elements within a class*
- Formatting of documentation within element headers and file headers*
- Naming of elements, fields and variables*
- Use of the built-in types*
- Use of access modifiers*
- Allowed contents of files*
- Debugging text**After installation,StyleCop can be run from within the Visual Studio IDE, and can also be integrated into MSBuild-based command line builds” (Microsoft StyleCop).