Eiffel for .NET Compliance Checker


The Eiffel for .NET Compliant Checker tool is a tool that can be used to verify or validate. It can be used by both assembly authors (those wanting to proffer components to Eiffel developers) and assembly consumers (developers writing Eiffel code.) The tool is graphical and is based on the EiffelVision2 graphical library, but is compiled for .NET. So, for the mean time, that means compilation is for Windows only.

The tool is distributed with EiffelEnvision (2.6 or better) and it's help documentation is merged into the EiffelEnvision help collection. The help there provides a walk through on what everything does and means in the tool. For a quick start guide, see the next section.

The compliance checker is actually used inside the Eiffel for .NET metadata consumer, used to validate third-party assemblies. Back in 2005 I introduce the notion of "Eiffel-compliance", an extension to the notion of CLS Compliance devised by Microsoft. Not content with the strict limitation of CLR-Compliance restricting the growth of Eiffel for .NET I developed a checker engine to ensure that everything we could support in Eiffel for .NET , in third party assemblies, was supported. On top of that a graphical interface was developed so we could examine assemblies and determine who is to blame when we get reports about not being able to use assemblies from Eiffel for .NET. We in turn have found many bugs in both Microsoft and third party assemblies.

Getting Started

I'm not going to provide a complete rundown of what the tool does because I would have to duplicate the already complete documentation on the tool (see EiffelEnvision help.) Here I provide a quick rundown of how to use the tool and interpret the results.

The very first thing you need to do is to select an assembly to check. Use the browse button to select a .NET assembly.

If the assembly has dependencies not locatable in the same directory as the specified assemblies, or not present in the GAC, you'll need to add the reference paths to the list below.

Now you are ready to check that assembly. Either click the Check Compliance toolbar button or head to the next tab to custom your checking of the assembly. If you choose the next tab, please click the Check button to begin checking the specified assembly.

As the assembly is being checked a report list is generated. Once checking has completed you can examine the report. Depending on what you selected to check the report may be long or short, the shorter the better. Green ticks are good, that means you can use that entity nos mean that the entity has been marked as not being compliant, and finally the yellow caution symbol indicate that the entity is marked or assumed to be compliant but is not.

For use within Eiffel for .NET you are looking for the icons in the Eiffel column. The CLS column refers to the Microsoft interpretation of CLS-compliance.

Final Note

The engine is not a complete CLS-compliance checker. If's purely for the consumption aspects required by the Eiffel for .NET Metadata Consumer. There are over 40 rules dictating what constitutes a CLS-compliant assembly. The engine does not need to go to the level indicated the in specification, and does not.


Tool developed and maintained by Paulb

Location: https://eiffelsoftware.origo.ethz.ch/svn/es/trunk/Src/tools/compliance_checker

Change Log

Initial Entry: Paulb 20:12, 16 August 2006 (CEST)