[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