On Thu, May 19, 2011 at 12:08 AM, Tudor Girba
<tudor.girba@gmail.com> wrote:
Hi Usman,
On 18 May 2011, at 22:56, Usman Bhatti wrote:
> Verveinesharp aims to extract program information from C# code and writes the information into an MSE for analysis of the info in Moose. I have placed a preliminary version of VerveineSharp on its website.
>
https://gforge.inria.fr/frs/?group_id=3329&release_id=6023
Great news!
Unfortunately, I do not have access to a Windows machine. Would it be possible to make available an MSE file + sources of some larger C# open source project?
A small problem is that Mono treats Generics in some specific way that I need to check. Currently, I cannot parse a project where generics are used to describe the type at runtime. So, I have created two MSEs from projects that do not use them. One is an application that can be used to calculate C# metrics,
DrivenMetrics, the second is VerveineSharp itself. The purpose is to check the conformance of the MSE file vis-a-vis Moose. In the meantime, I am trying to parse
Gendarme, a rule checking engine for C#. I'll send its Mse as soon as all the bugs related to Generics are gone. The VerveineSharp file can be found here:
> It exports the following code information to MSE:
> - Namespaces
> - Classes/Interfaces/Inner Classes
> - Class Members
> - Invocations/Access/Inheritance/Implements
> - Delegates as Inner classes + method attached to delegates...
Interesting solution. You should also know that it is possible to create a dedicated CSharp extension of FAMIX. Just raise the point and we see what can be done.
Delegates are just callback method pointers so I think the current FAMIX model suffices to represent delegates. I'll see if C# needs some specifics in FAMIX.
> Also, there is a UI with VerveineSharp that helps visualizing all these elements in a tree-like structure.
>
> The zip file also contains some tests that can be executed through the bat file.
>
> VerveineSharp is developed and tested on .Net FW 2.0.
>
> There are some known issues:
> 1. Any assemblies referenced in a program but not present in the program folder make VerveineSharp to terminate prematurely. This requires some reflection to resolve.
> 2. SourceLanguage is still not set as I am having some trouble in Java libs.
What do you mean?
FAMIXRepo says {"String index out of range: -1"} when trying to read CSharpLanguage object defined in C#. That probably coz I am trying to add a C# object in FamixRepo that expects a Java object. In the meantime, Nicholas has created a CSharpSourceLanguage class in verveine.core. I haven't tested that class yet. Normally, it should work.
> Probably, we can use bug db of Moose for VerveineSharp?
Definitely. I added a tag for this, and I added your Gmail address to the project members.