This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: Smalltalk Solutions Plug of the Day, 6/30/03
Feed Title: Cincom Smalltalk Blog - Smalltalk with Rants
Feed URL: http://www.cincomsmalltalk.com/rssBlog/rssBlogView.xml
Feed Description: James Robertson comments on Cincom Smalltalk, the Smalltalk development community, and IT trends and issues in general.
HREF Considered Harmful: Structured Web Development with Seaside tutorial (extra cost applies) Avi Bryant and Julian Fitzell: beta4.com Monday 2:00:00 pm to 5:30:00 pm
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.