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]