On 08/08/2008, at 9:14 PM, Andrey Razumovsky wrote:
> Hello,
>
> My activity as a GSoC student comes to its end. Anyways, I'd like to
> stay.
> The reasons are obvious: I like Cayenne, I wanna become an Apache
> committer,
> ORM is useful in 90% business applications.
Your work has been very valuable to Cayenne, and very much
appreciated. Although working on the modeler might only seem like
tinkering around the edges of Cayenne, it is very much the first
impression users get of Cayenne and therefore extremely important to
the project.
> 1. Reverse engeneering.
If there is a pluggable naming engine, it must have a couple of simple
prepackaged options available as choices in Cayenne modeler since few
people will probably go to the trouble of writing their own java
plugin. There could be a series of checkboxes and options in the
modeler to make it even easier. This could be taken a further step to
control the generation of the velocity templates for entity class
generation. For example we've added:
public static Class<?> getDataTypeForKey(String key)...
to ours since we find it quite useful. It would be great to allow
users to easily control the naming and options within the entity
superclass without tinkering with velocity templates which can be a
bit obscure.
> 2. Core API.
> Generified SelectQuery (and related classes) is the thing Cayenne
> definitely misses. I think I've seen some discussion about it, so
> maybe
> someone is currently working on it. This doesn't seem too hard of a
> task, we
> must just look at correct deprecating of present methods, which take
> Class
> as parameter (like SelectQuery constructor).
I think you'll find that there are as many opinions on this as
developers :-) but I agree that we should complete the generification
of Cayenne before 3.0 final is released. I think that SelectQuery is
one of the last main bits to do. As Andrus said, DataRows was the main
issue and the conversations (as I recall) revolved around whether you
choose to perform a DataRow query when you construct the query or when
you ask for the results.
> 4. ROP
> I haven't thought of how to implement this yet, but nested contexts
> are
> needed on client side.
Yes! +1 That would be incredibly useful.
> Some thoughts about removing "Client classes have to be available to
> the
> server JVM" limitation. My colleague once shared experience, that if
> client
> and server classes are in same package, client classes are not
> needed on
> server. I.e. client objects are serialized and server objects
> are deserialized. If we could somehow tell Hessian that package of
> classes
> may change, that'd solve a problem.
Putting client and server entities in the same inheritance hierarchy
would simplify lots of things for users. For instance, right now it is
very hard to share validation between client and server classes.
> I also have some thoughts about CM usability, but I'm a bit tired of
> modeler
> now, if you know what I mean :-) Maybe later.
> I would appreciate any comments and suggestions.
My main thought there would be to add documentation to the modeler. I
think it would be quite simple and is mostly a UI challenge. Each
relationship, attribute and entity should allow text which then gets
dumped into javadocs in the generated classes and methods. Really,
just a bunch of big text areas in the modeler with a convenient way to
edit them and view them alongside the things they describe. I'm
thinking that maybe a panel across the bottom. Using the docs in
tooltips in the modeler (when you hover over an attribute for
instance) would also be good.
It might be useful to write them out into a separate XML file (not the
main Cayenne model file) so that they don't have to be exposed to the
client in ROP for security reasons. Not sure what others think about
that, since it adds a little complexity.
Anyhow, please don't hesitate to create Jira's for anything you think
of. That will allow everyone to contribute to the ideas. We want to
welcome you to working on Cayenne and encourage any ideas that you
want to develop.
Ari Maniatis
-------------------------->
ish
http://www.ish.com.au
Level 1, 30 Wilson Street Newtown 2042 Australia
phone +61 2 9550 5001 fax +61 2 9550 4001
GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A
This archive was generated by hypermail 2.0.0 : Sun Aug 10 2008 - 05:39:53 EDT