Two Gendarme rules to check for variables/fields maintainability
completed by: Nagato Yuki
Gendarme is a static analysis tool to find problems in .NET software. Gendarme inspects executable 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.
The task is to write two similar Gendarme rules. One that implement the same logic behind the FxCop rule CA1504 (http://msdn.microsoft.com/en-us/library/bb164506.aspx), i.e. to avoid misleading fields name.
The second one is a rule that check if some variables are using the same name as a filed of the same type. This is the same logic than FxCop rule CA1500 (http://msdn.microsoft.com/en-us/library/ms182216.aspx).
To complete the task the student must provide:
* the rules, written in C#. The source code must follow the Mono source code guidelines (available at http://www.mono-project.com/Coding_Guidelines). Also a 'self-check' must be done one the code (i.e. you need to run gendarme on your own code) and the defects, if any, must be fixed (in doubt please ask for guidance on IRC).
* its documentation (in-source xmldoc) that includes 'good' and 'bad' examples; and
* the unit tests (also in C# using the gendarme helpers around NUnit) proving the rule is working as intended
Once ready the files (or the patch) can be submitted to the mentor for review.
* In order to avoid misunderstandings you should start by writing your unit tests and ask for a review of them. That will quickly tell you if you're on the right path to solve the problem.
* Gendarme provides hundreds of rules that can be used as example, here's one
* Gendarme web site: http://www.mono-project.com/Gendarme
* Mailing-list / discussions: http://groups.google.com/group/gendarme
* IRC: #gendarme on GimpNET