Squeak SmalltalkJoker Squeak Smalltalk : Projects : prevnext Seaside

Abstract: Dijkstra may have taught us 45 years ago that GOTO was a bad idea, 
but web development has barely caught up. In the CGI model of web applications, 
each link that is followed triggers an entirely new execution of the program. 
Building complex control flow out of these abrupt transitions can lead to a 
tangled and brittle mess of interdependent pages. Modern frameworks such as 
WebObjects and Struts may remove many of the difficulties of CGI scripting, but 
they do not escape the web's inherent GOTO: moving from one page to the next, 
whether through anchors, actions, forms, or forwards, is still a simple one-way 
jump.

Seaside is a framework for developing web-based applications that insulates the 
developer from the HTTP request/response loop, presenting the illusion of a 
continuous interactive session with the user. Each page or form acts much like 
a subroutine, which returns a value to its caller based on user input. Complex, 
conditional or looping workflows can be described in a single piece of 
straightforward Smalltalk code as a sequence of calls to individual pages. The 
benefits this brings to the reusability and maintainability of web applications 
closely mimick the advances made by structured programming long ago.

Seaside also sports callback-based form widgets (no manual request processing), 
transparent embedding of pages or even whole applications, a library of 
prebuilt components, and a complete web-based development environment, with 
code browsers, inspectors, debuggers, and profilers, all implemented in Seaside 
itself.

During this half day workshop, participants will be guided through building a 
simple business application with Seaside. Along with coverage of framework 
basics, special attention will be given to three topics: writing cleanly 
reusable pages and components, separating page logic (how an individual 
interaction works) from application logic (how interactions are strung together 
to form workflows), and proper management and support of the all-important 
browser back button.

Bio: Avi Bryant provides Smalltalk consulting and development services in 
Vancouver, Canada.

Julian Fitzell is a senior developer in the Agile Projects Group at the 
University of British Columbia.