>> Cayenne is still missing a lot of functionality when compared to EOF/Wonder and generally feels less mature (understandably, since EOF is ancient). This is perhaps not such a huge problem, since functionality can always be added—but there is indeed a *lot* of work to be done to reach feature parity with EOF.
>
> That seems like an overstatement to me. What things is it missing that you need?
Well, it isn't exactly "big things" that are missing, but rather an aggregation of a lot of small things. Things I can live without, but would rather not. EOF, Foundation, Wonder and the tools have 20 years of refinement and integration in their design so moving from EOF to Cayenne feels a little like moving from a Mercedes to a Wolkswagen Bug.
Lack of IDE support,
There is an Eclipse plugin, but it is not totally baked yet.
no prototypes,
Cayenne already does the "switching databases" part of prototypes. The "faster model creation" part would be a nice add perhaps, but you get part of it (the java type assigment) already in Cayenne by auto-generating the ObjEntity from the DbEntity.
no KVC
This is already in ERCayenne
, "getAccessor" (ugh)
The templates in ERCayenne don't use the get prefix
, limited support for inheritance,
True
no ERXKey means no type safe queries and strings everywhere,
ERXKey is in ERCayenneExample and I'll be committing a version Cayenne itself in the next few days.
somewhat buggy modeler
I fixed a couple of the more annoying problems last week. Other than that I'm not aware of any behaviors that are truly bugs. But usability could certainly be improved.
with no support for cross-model relationships
This is not true anymore if it was before. 3.1 includes the idea of a default node (basically a connection dictionary), so you can load models that are generic, framework level and use them along with your own model.
, no crossing relationships in raw row fetches (which makes it harder to create reports from huge object graphs)
True, this is the biggest gap I've come across - I have an app that does exactly that. However, there are a few built-in alternatives, namely SQLTemplate and EJBQLQuery. But if you have a lot of this in your app, you'll probably want to wait to consider migrating.
, no Project Wonder EO stuff etc. etc.
I have some Cayenne implementations of the specific utilities that I used from Wonder, but yes, this represents work to be done.
Now, I know this comparison is unfair to Cayenne which is in fact great, and Andrus and the others have done an amazing job. EOF is just hard to beat, because EOF is very, very good. And as I said, Cayenne will no doubt get there, I just believe it will take a lot of work.
Just a little work I think. The things that have to be done are almost all approachable by average developers.
> The only reasonable way to do a re-implementation of EOF would be to start with Cayenne. It doesnt have the same API as EOF, but that could be done; that hard work has already been done, only the API would need change. But I think there are advantages in trying to merge with the Cayenne community rather than taking it and forking it.
I agree. If they're compatible it's probably the way to go.
- hugi