Here is one of those "big strategy" emails that tend to have negative impact on things that we can do here and now, instead of doing the "right" thing some time later. So no intent to discourage CAY-762 implementation, just a somewhat related issue that we may discuss in parallel.

For all its undeniable advantages, IMO the main usability issue with CayenneModeler is the fact that it is separate from an IDE. This "gap" results in the following problems:

1. Losing work context when switching between the apps:
You have to often jump between the IDE and the Modeler. When switching, you lose your work context. E.g. click on a Java class name within some code, the class opens... Then you'd like to see its Cayenne mapping. To do that, you have to go to a different application, type something in a search box, open the entity, then tab between attributes/relationships, then look for DbEntity, tab between attributes/relationships again. It is too far away from the original Java class. I'd like to see Java/XML/Modeler representations of the same entity in the same view.

2. Manual Refresh
When the model is saved, you have to refresh files in IDE to pick up the change.

3. Class Generation:
You need to generate classes manually on model change, then refresh files in the IDE. For Maven/Eclipse users cgen problem is somewhat addressed, as you can tie cgen to Maven, and Maven to Eclipse, so classes are generated on refresh. Still you have to do refresh, and then a second refresh (first refresh for xml, second for the generated classes - totally annoying).

The best way to address the gap is to write an IDE plugin replacing the Modeler. There's a bunch of advantages and disadvantages to that:

[good]

* everything is integrated
* Eclipse environment provides lots of built in services that we can take advantage of (most notably it has a built in project model), including graph capabilities.

[bad]

* not everybody's using Eclipse (e.g. Kevin mentioned he's an IDEA user). Supporting multiple IDE's is not realistic for us. I guess this can be addressed by packaging it into a standalone SWT app. * we'll have to support multiple versions of Eclipse, and will be dependent on Eclipse API evolution.

[ugly]

* the time we invested in the Modeler. Reproducing that in Eclipse would be non-trivial.

Or we can go with some hybrid approach of having an Eclipse plugin exchanging events with the Modeler. Not sure if we can make the user experience as nice, we'll have to support 2 tools instead of 1, and we'll have to support an extra messaging layer. But this is probably less work overall...

Or we can write an Eclipse plugin in parallel with the Modeler and provide both as independent tools... Such internal competition will be a resource drain though.

So nothing is free, and these are some hard choices... I am sort of in favor of the last one, as even an initial plugin prototype will show whether we can have significant usability improvements, without being a full Modeler replacement.

Andrus




On Oct 22, 2009, at 10:40 AM, Andrey Razumovsky (JIRA) wrote:
[ https://issues.apache.org/jira/browse/CAY-762?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12768592 #action_12768592 ]

Andrey Razumovsky commented on CAY-762:
---------------------------------------

FYI
JGraph has moved to BSD since 5.13:
http://www.jgraph.com/jgraphlog.html

I assume this means we can now use it? The library seems to be quite promising

ERDiagram for Object Entities in Cayenne Modeler
------------------------------------------------

               Key: CAY-762
               URL: https://issues.apache.org/jira/browse/CAY-762
           Project: Cayenne
        Issue Type: New Feature
        Components: CayenneModeler GUI
  Affects Versions: 3.0
          Reporter: Ahmed Mohombe
          Assignee: Andrus Adamchik

Please add an ER Diagram to the Cayenne Modeler. This is the feature that I miss the most from WebObjects. For start it would be even enough to have an ER Diagram View (so no interactive activities) - just display and layout of entities. I think this would help allot and would increase the productivity with CM - most people think visually. I don't think that it would be complicated to implement, the most complicated question to answer is what graph library is allowed to use, due to the restrictive "license compatibility" of the Apache license.
Thanks in advance,
Ahmed.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



Reply via email to