Analysis tool that gathers software metrics on C# code such as lines of code, number of classes, cyclomatic complexity and more.devMetrics integrates with Visual Studio .NET and runs as a stand-alone command line utility for build integration.Version 2.0 offers an SDK that allows you to develop your own metrics and reports. A free Community Edition is available.

Set of tools for reusable library designers.The package contains a GUI tool for viewing, reviewing, and comparing versions of managed APIs. It also contains a command line tool for generating API diff reports.

Generic reverse engineering software for analysis and automatic documentation of source codes (program/header/form files).Universal Report's goal is to analyse and generate a structured and formatted overview of a given set of program codes. A session can be achieved either in a step-by-step way or in a completely automatic way.Universal Report is not focused on a specific programming language (will run with codes in Basic, C, C++, Fortran, Java, Matlab, Pascal, Visual Basic, Borland C++ Builder, Delphi, Kylix, Visual C++, Visual Basic .Net, Visual C#, Visual J++, etc....), and you can get reports in several common formats (text, latex, html) and languages (English, French, German, Spanish, Portuguese, and Italian). The universality is due to heuristics that use programming languages intersection as well as possible, and examine further specific points. The tool is parameterizable both in the behavior point of view and the quality of the outputs. Moreover, some additional features are available, including spell checking, general pattern research, automatic information extraction, automatic code formating, glossary generator, graphics generator, routines reviewing system, protection with password, and more.

Features include:- stores the structural information about a software system into a central repository. This information is then used for visualization and analysis such as structure, dependency, cycle, quality, what-if and impact analysis on different abstraction levels.- determines for the entire software system where the source code does not correspond to the designed architecture- can localize and visualize illegal relationships from the architecture level down to the source code- can manage information about several versions of a software system- able to analyze Java, C# and C/C++ software

Analyzes your .NET assembly for possible exceptions.Exception Hunter is an analysis tool that finds and reports the set of possible exceptions your functions might throw ľ before you ship. With it, you can locate unhandled exceptions, down to the line of code that is throwing the exceptions.

Features include:- Analysis engine for predicting the possible set of exceptions that can be thrown by a function- Directly analyze ASP.NET applications. It is possible to analyze web applications using their .aspx file, avoiding a complicated process to compile the ASP.NET code.- Find your method by using the navigation bar, which allows you to drill from assembly down to method level- List of unhandled exceptions and their stack traces to see the different situations in which these exceptions were thrown- View the source of methods, to show which lines throw which exceptions- Choose to display only documented exceptions- Run Exception Hunter locally on a development PC- Generate reports from Exception Hunter's UI (without needing to go through the command-line)

Tool to tell you how much of your program is covered by your automatic tests. Instruments source code prior to running unit tests to establish test coverage.Integrates with Nant, for use with continuous integration builds.

Analyses an application's assemblies and generates reports containing design quality metrics, warnings and diagrams.NDepend allows you to measure the quality of a design in terms of its extensibility, reusability and maintainability to manage and control the assembliesĺ dependencies of your .NET applications. Moreover, NDepend helps you to get a view of the topology of your application, both at component and at type level.

Tool for the automatic verification of coding standards.SYNtacTICS is a static code analysis tool that allows you to check your code against bad programming constructs and incorrect language usage that are likely to generate errors often very difficult to identify at a later stage.The tool is coupled with a database that allows you to monitor the quality of your code. A beautifier also helps you in the correction of errors.Integrated as a plug-in into Visual Studio .NET. It can also be executed from the command line in a DOS window. It analyses C, C++, C#, Java, MFC/COM and IDL files, and can be extended to parse any other language.

Lets you see inside your software source code to find out how much code you have and to identify the relative complexity of your modules. For example, you can use SourceMonitor to identify the code that is most likely to contain defects and thus warrants formal review.Features:- Collects metrics in a single pass through source files. - Measures metrics for source code written in C++, C, C#, Java, Delphi, Visual Basic or HTML. - Saves metrics in checkpoints for comparison during software development projects. - Displays and prints metrics in tables and charts. - Operates within a Windows GUI or inside your scripts using XML command files. - Exports metrics to XML or CSV files for further processing with other tools.

Dynamic analysis framework for .NET.ExtendedReflection is a library that offers functionality that extends the standard reflection library, and also lifts the unmanaged CLR profiling API into the managed world.

ExtendedReflection helps you build runtime analysis tools for .NET. It takes care of instrumenting MSIL bodies at runtime and exposes more than 200 .NET callbacks, such as method enter/exit, argument values or field writes. ExtendedReflection also enables redirection of arbitrary method calls.

With ExtendedReflection, you can write dynamic analysis tools without having to understand the low-level CLR internals.

Features include:- Error detection- Code coverage analysis- Performance analysis- Integrated reporting- System comparison with SnapshotSDK- Visual Studio integration- Can be integrated into automated testing and nightly build processes through a command-line interface- Helps native Visual C++ developers interface with managed .NET code by monitoring native application calls that cross the managed boundary into .NET code. It provides information on the frequency of crossed boundaries to help developers determine when native code should be migrated to .NET code. It also tracks errors in native code that can cause problems in managed code such as finalizer problems and unhandled exceptions thrown across boundaries.

Tool for developers to find and eliminate duplicate code.Atomiq is designed for .NET developers, but works equally well for developers of other languages and even web designers.Atomiq works with C#, VB.NET, ASPX, Ruby, Python, Java, C, C++, ActionScript, and XAML.Atomiq doesn't just find exact matches, it finds similar code. It ignores "fluff" like whitespace, string content, curly braces, comments and using/import statements so you can find the duplicate code that causes problems. In VB.NET, it will also ignore lines that contain only "Next", "End While", "End Try", "End If", "End Property", "End Get" and "End Set".

Features include:- Search your code for duplications- Get instant feedback on analysis results- Quick similarity statistics- Navigation to points of duplication- Visual cues determine locations of duplicate code- A wheel view diagrams the repetitions and how they relate to each other in your code- Immediately open files for editing

Plug-in for Visual Studio that checks the code against a configurable code standard and best practices.Code Style Enforcer is developed for C#, but some of the rules will also work for VB .NET, though not tested. The code standard is configurable with the following rules:- Name rules, where it is possible to have different rules for different members, i.e. fields, constants, variables, methods, properties and so on.- Visibility rules, where you can specify the visibility that is valid for different members. It is also possible to specify that the visibility has to be specified explicitly.- Implementation rules, where it is possible to specify that interface implementations are to be made explicitly or implicitly.

Enables you to analyze the architecture of your .NET application in terms of the system elements and their relationships (exe, dlls, namespaces, classes, methods, etc.)

Lattix LDM allows you to analyze your architecture, edit the structure to create what-if and should-be architectures, and then create design rules to formalize and communicate that architecture to your development organization. Lattix LDM uses a dependency-matrix approach to obtain information about an application. It displays the matrix and lets users conceptually reorganize the layers and packaging structure. Continual monitoring of an application for structural deterioration is also enabled; thereby allowing remedial action to be taken before the problem escalates to a major maintenance problem.Lattix LDM offers a GUI as well as a command line options to facilitate integration with build tools or IDEs.

The Mono Migration Analyzer (MoMA) tool helps you identify issues you may have when porting your .NET applications to Mono. It helps pinpoint platform specific calls (P/Invoke) and areas that are not yet supported by the Mono project.While MoMA can help show potential issues, there are many complex factors that cannot be covered by a simple tool. MoMA may fail to point out areas that will cause problems, and may point out areas which will not actually be an issue. The results provided can be used as a guide to get you started on porting your application, but the true test is actually running your application on Mono.

StyleCop, also known as Source Analysis, analyzes C# source code to enforce a set of best practice style and consistency rules.

Source Analysis is similar in many ways to FxCop, but FxCop performs its analysis on compiled binaries, while Source Analysis analyzes the source code directly. For this reason, FxCop focuses more on the design of the code, while Source Analysis focuses on layout, readability and documentation. Most of that information is stripped away during the compilation process, and thus cannot be analyzed by FxCop.

Source Analysis comes with a set of default rules analyzers covering approximately 200 best practice rules. These rules are full 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, Source Analysis can be run from within the Visual Studio IDE, and can also be integrated into MSBuild-based command line builds.

Assembly comparison tool.BitDiffer allows you to compare multiple versions of assemblies for all types of changes and drill down to find the smallest changes, public or private.

Features include:- View changes in a GUI interface, which highlights breaking changes and publicly visible changes. Browse through the grid of changes in order to determine their impact, or export reports to keep a record.- Compare implementation of methods and properties, not just the declarations. You can compare protected, internal and private items as well as just the exported public types.- Will catalog and compare: classes, interfaces, properties, fields, methods, attributes, events, assembly attributes- Compare across time. You can also load up a series of versions and review them side-by-side to see how they all changed across time.- Load assemblies with the strong name from different locations and compare across them.- Compare entire directories of assemblies at once, to perform complete build comparisons in one click.- Command-line support

JustCode! detects errors throughout the current solution in real time, like a background compiler. The code analysis engine is designed to work incrementally in the background. Whenever the code is changed the error results are made available almost immediately so that one can see how changes in a file affect other files.

Tool that enables discovery, composition and consumption of development guidance.Guidance Explorer installs with a connection to the Microsoft Patterns & Practices guidance library including performance and security topics for .NET, ASP.NET, and ADO.NET applications. The guidance library contains a variety of guidance types including checklists and guidelines covering design, implementation and deployment topics.

Includes:- Guidance Explorer: smart client that allows browsing local or remote libraries from a Windows Forms client application.- Guidance Explorer Web Edition: allows a user to browse guidance from the online store. Unlike the smart client it is a read-only view on guidance.- Online Guidance Store: provides a mechanism for publishing to, and sharing from, a guidance library on the web. It is a web service interface backed by a SQL Server 2005 database.- Guidance Explorer Authoring Toolkit: stripped down version of Guidance Explorer that does not come with a guidance library and includes just the basic guidance types.

Provides metrics, visualization, querying, and analysis of .NET assemblies, classes, and methods for all .NET languages, including C# and Visual Basic.NET.Vil inspects .NET DLL's and EXE's and provides means of rapidly filtering and sorting through thousands of classes and methods in multiple assemblies to find code meeting specific criteria, or generate bulk reports.

Configurable code checker for C#.It is possible to let ClockSharp check your C# code according to the Philips C# coding standard or configure it to your own needs. ClockSharp checks more than 50 programming rules. It can be executed as a command-line tool, but it is also integrated into Visual Studio .NET 2003 and 2005.

Suite of tools primarily aimed at validating the architecture of a framework.

Included tools:- Deps: produces dependency diagrams between assemblies, based both on implementation, as well as API-only. It also carries out cycle detection analysis. The tool additionally outputs some general-interest statistics (e.g. number of types, number of members, etc).- Layering: verifies that a layering and grouping diagram is indeed satisfied by a set of assemblies.- PotentialCallers: lists all the methods that call, directly or indirectly, a set of methods.

Tool that enables programmers and QA managers to check C# source for compliance with coding standards and best practices.Code analyzer enables to define your own "policy", which consists of set of rules that define how the code should look like. Rules may relate to different aspects of the code like naming of elements, organization of the code, commenting of the code, using of namespaces and more. Rules are organized in a navigable hierarchy and you can select which rules you want to use. Rules are extensible. With Code Analyzer Rules SDK you can develop your own rules of any kind. Rules can be written in any .NET language and compiled to assembly, which can be included into Code Analyzer policy.

Coding standards creation and enforcement tool for VB.NET source code.VS Law .NET consists of a rule editor allowing the creation and maintenance of custom coding standards and a code review add-in that integrates with Visual Studio .NET 2002/2003. It comes supplied with more than 150 rules.

Add-in for Visual Studio that provides coding assistance, navigation helpers, on-the-fly error highlighting and quick error correction, as well as support for code refactoring or unit testing features.

Binary code analysis tool that helps identify common variants of certain prevailing vulnerabilities that can give rise to common attack vectors such as Cross-Site Scripting (XSS), SQL Injection and XPath Injection.

CAT.NET (Code Analysis Tool .NET) is a snap-in to the Visual Studio IDE that helps you identify security flaws within a managed code application you are developing. It does so by scanning the binary and/or assembly of the application, and tracing the data flow among its statements, methods, and assemblies. This includes indirect data types such as property assignments and instance tainting operations. The engine works by reading the target assembly and all reference assemblies used in the application - module-by-module - and then analyzing all of the methods contained within each. It finally displays the issues its finds in a list that you can use to jump directly to the places in your application's source code where those issues were found.Supported rules :- Cross Site Scripting- SQL Injection- Process Command Injection- File Canonicalization- Exception Information- LDAP Injection- XPATH Injection- Redirection to User Controlled Site

Features include:- Rule set based on Microsoft .NET Guidelines, Framework Design Guidelines and best practices- Auto correct violations; Automagical refactoring to patterns- Profile editor: tweak the rules to your team requirements or suppress the ones you don't need- Configurable rules; Custom rules- Multiple profiles: group rules the way you want and quickly switch between profiles- Exclude violations, rules and project files for a solution- Correct a single violation or all of them at once- Source code analysis: no need to compile your code to check it for conformance to the design guidelines- Quickly navigate to violation source code: just double click the violation- Integration with VS 2005 and VS 2003- Export violations report to Excel

Simian (Similarity Analyser) identifies duplication in Java, C#, C, C++, COBOL, Ruby, JSP, HTML, XML and Visual Basic source code. Simian can also be used on any human readable files such as plain text files.Especially on large enterprise projects, it can be difficult for any one developer to keep track of all the features (classes, methods, etc.) of the system. Simian can be used as part of the build process during development or as a guide when re-factoring. Think of Simian as an independent pair of eyes that will assist in raising the quality of your software.