GSoC/GCI Archive
Google Code-in 2010 Mono Project

Gendarme support tool mapping FxCop compatibility

completed by: Yuri Stuken

mentors: spouliot


Gendarme is a static analysis tool to find problems in .NET software. Gendarme inspects executables and libraries that contain code in ECMA CIL format (Mono and .NET) and looks for common problems with the code, problems that compiler do not typically check or have not historically checked.

A common question is to know if Gendarme supports rule CAxxxx ? and if so what is the Gendarme rule name for it.


The task is to build a small, command-line, tool that extract [FxCopCompatibility] attributes from Gendarme.Rules.*.dll and build a compatibility matrix wrt FxCop.

Note that:
• some Gendarme rules implements more than one FxCop rules
• some FxCop rules could be split into several Gendarme rules
• some Gendarme rules do not match any FxCop rules
• a list of FxCop rule is not needed

The tool must output two lists in separate files:
a) one that map each FxCop rule into one (or many) Gendarme rule
b) one that map each Gendarme rule into one (or many) FxCop rule

The results of both list will be used to generate documentation for the Gendarme wiki.


To complete the task the student must provide:

* the tool, written in C#. The source code must follow the Mono source code guidelines (available at;

* its documentation, i.e. a README file describing the parameters;

* the output of the tool (the two files) so the mentor can review the results.

Once ready the files (or the patch) can be submitted to the mentor for review. Make sure you executed Gendarme on your tool because the mentor will do so ;-)



* Gendarme web site:

* Mailing-list / discussions:

* IRC: #gendarme on GimpNET