[Mono-list] FxCop?
Jeroen Janssen
japj@xs4all.nl
Mon, 03 Feb 2003 19:28:39 +0100
Miguel de Icaza wrote:
>Yes, you are allowed to use FxCop to improve Mono's class libraries.
>
>Be warned though that there are too many warnings generated that should
>be ignored, so it should not be done blindly.
>
>
I already figured that much out :)
>>If the answer is yes, then how are we going to proceed with this?
>>Do we agree with all the rules it checks, etc? Is it ok for me to run
>>the tool on a certain assembly and start "fixing" things?
>>
>>
>
>I think we should run the tool on our assemblies and generate a set of
>settings that we are comfortable having.
>
That sounds like a good idea, I think the tool allows this with regards
to saving/loading an "exclude" set.
So we could probably define a mono 'exludes' file and have it in CVS.
>At the same time, there are
>some very simple things that we should do *anyways*, so lets post
>patches to the list and take it from there.
>
What do we do with the following rules (I started with Mono.PEToolkit -
but I think starting with any assembly will result in the same general
rules to be 'hit'):
* Assemblies are marked CLSCompliant ('Mono.PEToolkit' should have the
CLSCompliantAttribute, and its value should be true.)
* Assemblies have strong names (Sign 'Mono.PEToolkit' with a strong name
key.)
I think we can skip this one for now, right?
* Assemblies have version numbers (Add an AssemblyVersion attribute to
the 'Mono.PEToolkit' assembly.)
* Exceptions do not extend System.Exception (Change
'BadMetaDataException' to extend either ApplicationException or
SystemException.)
* Exceptions require multiple constructors (Add a constructor with a
string parameter and exception parameter to custom exception
'BadMetaDataException'. Add a protected constructor with a
SerializationInfo object parameter and a StreamingContext object
parameter to custom exception 'BadMetaDataException'.)
* Exceptions are marked Serializable (Add a Serializable attribute to
'BadMetaDataException'.)
That should be enough to start discussing/working on for now.
---
Jeroen Janssen