Nacho
How about putting to togetehr a brief guide for "developing
components under Avalon" and posting it to the Wiki; best
practice develops when people can clearly see alternative and
better ways of doing things!
Thanks
Derek
>>> [EMAIL PROTECTED] 2004/05/03 06:28:55 PM >>>
beyaNet Consultancy wrote:
> Hi,
> as I started this whole kettle of fish discussion, I fully support and
> use the sitemap, flowscript, jxt combination. in my opinion trying to
> use the sitemap to determine the flow of a site can become too
> complicated produce and maintain in a very short time! And as for the
> use of Avalon/Actions, that itself can be too complex a solution to
> most problems I have had to deal with...
>
>> I just wanted to add my 0.02�.
>
These are my 0.02�.. (we are reaching the 500� bill mark any moment
now :) )
I' ve been developing with cocoon for a couple of years now, and
still find new ways of doing things from time to time. Cocoon is
**huge**, and that is both a pro and a con for a framework. The first
time I came into cocoon I was having a sabatic half-year between
start-ups and had some time to tinker and toy arround with the samples
to get used to cocoon's feeling. If I discovered cocoon now, I don't
think I could have the time to learn how to use it and make my customers
profit from my experience.
It happened me with struts before.. It looked great, but I just
didn't have the time to pause and refractor my (then) current project
into struts, so I kept working with jsp and ignored a tecnology that
could have improved the results. Cocoon is so horizontally spread, that
it makes the first step very hard for begginners.. I remember doing the
"Web Application HOWTO" and then, a week later, learning that that was
not the way to do it, that there were far more efficient ways.
Even now, when I finish a cocoon project and deploy it, I keep on
thinking that maybe is not the correct way to do it, maybe there is a
more efficient/quicker/higher performance way to implement the kind of
project I've just finished. I refractored my first project 4 times until
i settled down on the (XSP+Actions+Sitemap) combination. For the next
one, I jumped to the (Flowscript+Woody+XSP) combo, and I thought I had
settled in the (Flow + Avalon component +Woody + XSP) until I started
refractoring to JXTemplates my last project.
IMHO, Cocoon needs to slim down and clean up (the blocks effort
points the right way, but is not enough) and lead the way for beginners.
I think that's the weakest link in cocoon. The samples are great to get
used to the different tecnologies you can use, the wiki is fantastic for
people already developing, but a list of "best behaviours" for common
cases would really make newbies more confortable.
An example of what I mean... Right now there's a pet shop example in
the distibution. The same pet shop is implemented in several ways.
That's great for me, because I do want to learn all about cocoon, but
most of the potential users that come across cocoon and install it for
the first time will only get more and more confused by looking at
several ways of doing the same thing. For them, it'd be easier to find
five different examples (typical webapps) and the 'best' way to
implement them, and a small guide to their probable needs. Most of the
people want to be lead, not many want to be a pathfinder.
>> It's undoubtedly true that you can abuse flowscript and implement too
>> much business logic in it. At my company, we are probably guilty of
>> this, in a sense. We tend to implement things with Javascript because
>> the roundtrip time between editing and testing is so short: no need to
>> recompile and restart the container to test results.
>
> Our policy is that putting business logic in the flowscript is to be
> considered OK in a prototyping stage. Once the prototype is tested, you
> should reimplement it in a Java method or class. Of course, this takes
> discipline and sometimes the move-to-Java stage can be postponed (or
> forgotten) due to deadline pressure, as always.
Is the debbuging improvement worth the effort of translation? I do
my bussiness logic as an Avalon Component, and I call the component from
the sitemap when needed.. I find it a little bit hard to debug, but
keeps the code clean and concerns as separate as I need them.
>> One more thing: you mentioned editing cocoon.xconf as a typical step
>> when you're defining a new business object. Well, I see cocoon.xconf as
>> something that should be hidden from view as much as possible. I don't
>> want less-experienced developers touch it and risk breaking the build
>> because of a misconfigured component. I don't even want myself being
>> subjected to the pain of dealing with it.
>
That's one of my complains.. I have to restart cocoon 5 times a minute
when developing components and touch the cocoon.xconf file. That's not
very clean.. There should be a way of dynamically loading components
into cocoon/avalon. Maybe someone with avalon debugging experience and
show us the way here..
>> IMHO, Avalon is much harder than it should be. If we have to live with
>> it, for the time being, I want to implement a full-fledged Avalon
>> component only for exceptional cases. I think a POJO, compiled
>
It took me a while to get used to Avalon, but right now I do set up my
components there, and I like not to have to think about logging,
database conectivity and so on... It really pays of..
With my current set up I did an online newspaper in 3 days (cut the
designer's PNGs into XSLT/CSS, set up some woody forms and an avalon
module for writing articles and covers into an exist database, an easy
authentication for the article writers, some sitemap hocus pocus and
voila! The customer was quite impressed with the speed of development.)
Greetings to all
Nacho Jimenez.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
MailScanner thanks transtec Computers for their support.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]