Book a Demo

Author Topic: Support for newer programming constructs in C#  (Read 5023 times)

MylesRip

  • EA Novice
  • *
  • Posts: 7
  • Karma: +0/-0
    • View Profile
Support for newer programming constructs in C#
« on: November 06, 2009, 04:35:38 am »
Hi,  I've been using EA for about five years now and have been really impressed with the overall quality of the prodect, level of support and helpfulness of the forum.  Thanks for the great work!  

I've run into a problem, however, with reverse engineering from some of the newer constructs in the C# language.  Here are a couple of examples to show what I mean.  

Example 1:  

There is an Employee class with a many-to-many relationship to the Territory class.  This relationship shows up in the class diagram as follows:  

In the Employee class (use of generics):

    territories:  IList<Territory> new List<Territory>

In the Territory class (use of generics and Automatic Properties):

    Employees() IList<Employee>

Reverse engineering this relationship to a class diagram doesn't produce any connectors between these two classes.  Visually, there is no obvious indication that there is a relationship.  

Example 2 (automatic properties without generics):

The Territory class holds a reference to a Region and appears in the class diagram as follows.  

In the Territory class:

    Region() : Region

Automatic Properties were used to define this property (meaning there is no explicitly defined private field underlying the property).  No connector line is generated between the Territory class and the Region class to indicate the relationship, which leads to a misleading class diagram.  

These may seem like "little" things, but they can have a major impact when using the forward/reverse engineering features of EA in a C# environment.  Not recognizing and properly displaying newer language constructs that get used extensively could very well end up being a show-stopper for me!  I obviously can't ask developers not to use these features of the language.  I'm sure that many others have run into this same problem.  

Please add support for these newer constructs!  Preferably without having to tweak settings since these are constructs that will become more and more common in C# code as time goes on.  

Thanks!

Makulik

  • EA User
  • **
  • Posts: 400
  • Karma: +0/-0
    • View Profile
Re: Support for newer programming constructs in C#
« Reply #1 on: November 06, 2009, 04:54:54 am »
Get's my vote.

Don't forget to submit an official feature request to Sparx, using the link 'Feature Request' at the very bottom of this page.

WBR
Günther

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Support for newer programming constructs in C#
« Reply #2 on: November 06, 2009, 09:18:04 am »
My vote also...

Myles, don't forget to put a back pointer to this topic in your feature request so that Sparx can monitor the support.

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

MylesRip

  • EA Novice
  • *
  • Posts: 7
  • Karma: +0/-0
    • View Profile
Re: Support for newer programming constructs in C#
« Reply #3 on: November 07, 2009, 02:59:41 am »
Thanks guys.  I've submitted an official feature request and have included a back pointer to this topic.  Hopefully this will be addressed sooner rather than later.  Have a good day!   :)

softwaredeveloper

  • EA User
  • **
  • Posts: 20
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
Re: Support for newer programming constructs in C#
« Reply #4 on: November 13, 2009, 04:45:17 pm »
Example 1:  

There is an Employee class with a many-to-many relationship to the Territory class.  This relationship shows up in the class diagram as follows:  

In the Employee class (use of generics):

   territories:  IList<Territory> new List<Territory>

In the Territory class (use of generics and Automatic Properties):

   Employees() IList<Employee>

Reverse engineering this relationship to a class diagram doesn't produce any connectors between these two classes.  Visually, there is no obvious indication that there is a relationship.


This would be really cool.
AFAIK currently only umodel has this => please add this that we are also able to work with current C# language constructs in EA.  8-)