[Seaside] Seaside subsets
norbert at hartl.name
Wed Feb 14 14:05:10 UTC 2007
On Wed, 2007-02-14 at 00:46 -0800, Avi Bryant wrote:
> As 2.7 gets closer to beta (right?) and people might be thinking about
> what 2.8 or even 3.0 might look like, I thought it might be
> interesting to share a somewhat surprising experience I've had: Dabble
> DB, which is by far the most complex web application I've ever worked
> on, uses really a rather small subset of Seaside. For example:
> - We never use the old WAHtmlRenderer code. Ok, no surprise there,
> but in case anyone was wondering, it's all Canvas all the way.
I started to use seaside a few month ago. After two days I recognized
that there is something called Canvas and I switched. I switched
then to 27a1 completely.
> - We never use decorations, ever. No new subclasses of WADecoration,
> no #isolate:, no #authenticateWith:during:,etc. Hasn't come up.
I'm using Magritte. A lot is done using decorators.
> - We never use any of the standard dialog or widget components. For
> us, anyway, the Canvas tags turn out to be the right level of detail
> for reuse across apps. We do plenty of reusing components within the
> app, but a generic YesOrNoDialog or WATree doesn't cut it except when
> - We do use halos, and I'd like to use them more, but they do badly
> with heavily CSS-styled layouts. Note that I only use them to see
> page structure and for view source, I don't use the web-based system
> browser (that's what the RFB Server is for).
I use them, too. If they were capable of displaying only the output
for one component without children I would use them even more ;)
No serious browser use here.
> - We do use the preferences system pretty heavily, with app-specific
> subclasses of WASystemConfiguration that provide defaults we can
> override from /config. But we don't use the baroque multiple
> inheritance system.
I do not know much about it.
> #updateRoot: and #resourceUrl: heavily to bring in external .css and
> .js files which the designer controls.
Same here, I externalized all style and scripts and removed them from
the code. Using scriptaculous there is a big performance degrade. I had
an average of 15 link style and link script statements in the header
of every page. Pulling every script to a single file gives you a 183kb
(!!) file but serving via static url the client has to load it only
> - We use WATask sparingly. In fact, pretty much the only use is for
> collecting payment info, which is of course the classic example I
> always give.
I like the idea of having tasks. It is some sort of workflow planning
for the usage of the site. I use tasks if input of data is spread over
multiple pages. It is some sort of guided input.
> - We certainly do use #call: and #answer:, but much less than you
> might expect given how much talk there is about continuations. And
> the #call: stack rarely gets more than one component deep. Instead,
> we're much more likely to conditionally render a child component, or
> to have a "currentChild" state variable which is constantly modified
> during navigation.
I use call:/answer: mostly for viewers and editors. The rest of the
site opperates like your currentChild.
> - Except for a handful of those "currentChild" state variables, we
> don't use WAStateHolder or #registerObjectForBacktracking: at all.
> Well, that's not strictly true: we use it once, with a single
> session-global NavigationContext object that holds all the
> backtrackable state as instance variables. The entire component tree
> at any given time can almost always be determined by examining the
I do not use this as I don't anything about it.
> - We do use Scriptaculous, but mostly only the Ajax bits rather than
> the effects.
At the moment it is only autocompletion. But we are planning to do
some ajax stuff. And we should try to keep our fingers from the
> So, I'm curious how typical my experience is. If it's shared by most
> of you, we may want to do some major housecleaning...
As I can see my experience is lacking a lot of features which seaside
provides. So there is a lot of space for tutorials of any sort. Topics
in this mail I never saw a tutorial about are:
- how to use WADecoration
- how to use preferences
- how to use styles and scripts.
- how to use WATask
More information about the Seaside