Sculptor looks like it does a good job of building a stack that I
like to use out of the box. (Spring, Hibernate, etc) - but for the
GUI layer I often build my stuff using Flex and I do remoting via
BlazeDS with Remote Objects.
In Flex, when you do object remoting, you build an ActionScript VO on
the client side that mirrors a Java VO on the server side, and use
the VO's as parameters or results with your remote service calls.
Obviously, maintaining two sets of VOs for your entire model can be a
bit tedious. There are some code generators out there that start with
a Java object and will generate (more or less) an ActionScript object
- but I think it would be a lot easier to start from the top and have
something like Sculptor help in building the entire chain - leaving
just the view layer to be constructed.
The FULL stack I like to use would be amazing to have generated -
which consists of this stuff for the client side: (this is in
addition to the existing Spring / Hibernate server-side stuff that
gets generated, and would tie into it)
- PureMVC + Prana Framework for IoC and MVC.
- Generate a set of "Proxy" objects for the PureMVC (a proxy is a
repository, basically, but it isolates the View and the Controller
from knowing about where the model comes from - which is often a
remote service call... etc)
- Generate the VO's to support the proxy
- Generate business layer to call the remote services that are
created to call services on the server side
- Generate the notifications that are sent around the system to
indicate when things happen. (PureMVC relies upon using string
constants for a generic notification type, but if a code generator is
involved, using strongly typed notifications would be the ideal way
to go - PureMVC doesn't require them simply because they aren't 100%
necessary and they would take time to create, but if you have
somethign like a Sculptor cartridge generating them... you can get
all the benefits without the pain of creating them all by hand)
- Generate a Prana Config file to configure the system (Prana is
very similar to an XML-configured Spring IoC container - the syntax
is almost identical as it was based on Spring's syntax)
- Generate FlexUnit tests to test various pieces of the client side
system
- Generate the BlazeDS configuration to tie the Spring and BlazeDS
pieces together
(Optional) - Generate a CRUD gui in Flex for the various pieces that
interacts with all of the other components.
Because the model and the remote services are often shared amongst
different applications, it's common to split those out and have them
load in as a runtime shared library. Each runtime shared library
should be generated by its own maven artifact.
I've not looked into Sculptor's internals a great deal (and the wiki
is down at the moment, so I can't right now). I like sculptor because
of the simple DSL that it has. I don't like the fact that all the
tools are focused on Eclipse - but I don't see any reason why I can't
use IntellIiJ in conjunction with it. (If I need to write my own
syntax hilighting piece for the DSL, that shouldn't be too hard)
Would Sculptor be the easiest piece to start throwing these kind of
cartridges together for, our would the UML2 ones be a better fit?
I think the first thing I would take a stab at creating would be the
simple value-object creation for the client-side objects. The rest of
it - although it would be very nice - is not as important to me to
have automated.
I'm at a new job, so I'm not entirely sure how friendly my new bosses
are to me doing FOSS stuff on company time - so until I get approval
to start building this kind of a structure out it will have to be a
side project. Would anyone else be interested in this kind of tool?
More importantly... would anyone else be interested in helping to
work on this kind of tool chain?
I'm connected in a couple of other flex open source communities - and
if things started rolling I could probably enlist the help of a
couple of other java / flex developers to help out. The end product
would be so powerful I don't think they could resist getting in on
the action...
If a good GUI DSL gets defined, I can see how it would be possible to
create a very powerful toolchain that would help to create RIA's
using multiple end-user technologies - such as a rich AJAX client
alongside a Flex or AIR client.
Ryan
-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Fornax-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fornax-developer