[Seaside] Seaside 2.5a on SqueakMap
Avi Bryant
avi at beta4.com
Thu Apr 15 09:28:49 CEST 2004
Hi all,
I've just published the first alpha release of Seaside 2.5 on
SqueakMap. Although it's not yet feature complete in every detail, I'm
pretty sure that the really major changes have all been made, and the
scope of the release is determined. The summary release notes are
below. Over the next few days, I'll provide more detail for each of
the changes.
Please try it out over the next few weeks. After Smalltalk Solutions,
I'll try to polish off the remaining features and get a beta out by
late May.
Changes from Seaside 2.3 to 2.5:
* complete rewrite of Configuration framework
- dynamic, programmatic specification of attributes and default values
- multiple inheritance model allows site-specific defaults to be
combined with app-specific defaults for individual deployments
- will be able to save and load .ini files
* subclassing WASession is deprecated
- many of the responsibilities of the Session class have been
distributed to other classes, to allow better composability and
configurability:
- WAMain (and subclasses) takes over the #start: method
- WAErrorHandler (and subclasses) takes over exception management
- WARenderLoop takes over the main event loop
- individual components take over filtering
* #children is required on components
- each subclass of WAComponent must now implement the #children method
to return a collection of its visible subcomponents.
- this enables:
- per-component filtering (transaction and authentication wrappers
around specific parts of the page)
- callbacks execute in a dynamic scope that matches the page structure
(wrap exception handlers around your subcomponents' actions)
- multipass rendering (not yet implemented - one pass for headers, one
for HEAD, one for BODY, allows streamed responses)
- each component can contribute independently to the bookmarkable URL
* new Decoration model for components
- a Decoration is a lightweight component (no call/answer) that can be
transparently wrapped around other components
- many features from 2.3 (delegation, filters, validation, #onAnswer:)
are now just types of decoration
- can be used to add generic headers, footers, borders, buttons, etc
- can provide a complete alternate look for a component
* direct in-browser manipulation
- "Toggle Halos" on the browser will display borders with tool icons
around every component and decoration
- halos host tools for debugging and for collaboration (with designers,
translators, etc):
- can browse code, inspect objects, view HTML source for each
component
- in the future will provide CSS and localization editing
* misc enhancements:
- stream large static documents
- access #request from HtmlRenderer
- WADynamicVariable provides portable fluid bindings
- fast ISO character encoding by default
- thread safety fixes
- last-resort status 500 error handler
- simplify ProcessMonitor to perform better under load (no longer
maintain 1 process/session)
- use form/query params for session and continuation IDs instead of URL
segments
- good, CSS-friendly base classes for common types of forms
- more conventional category names
- build HTML on a stream by default, rather than constructing a DOM
- use absolute redirects if server hostname has been configured
- XHTML output
Cheers,
Avi
More information about the Seaside
mailing list