In the afternoon I gave a talk on Seaside and how it can be used to bring existing applications onto the intra- or internet. The first part of my talk was a little overview of Seaside. I showed the basics like rendering in pure Smalltalk code, wiring the controls on an html page to the application model and control flow via call: and answer:. Another topic was the composition aspect of Components.
This was all pretty basic stuff for a Seaside pro, but my impression was and still is that Seaside is pretty unknown in many corporate IT departments.
The second part concentrated on how Seaside development and the classical VA Smalltalk environment are pretty similar. I drew parallels between using the composition editor and Attribute to Attribute connections to wire the application model and the view and the way you connect html controls to model values using value callback blocks. From an architectural standpoint, this is pretty much the same. The same similarities can be found for Event to Action Connections in visual Parts and Action Callbacks in Seaside Components. I also tried o show that the way of walking through a Seaside application is pretty much like a fat client application that jumps from one modal dialog to the other. In fact, due to the fact that Seaside does all the session management groundworks, developing a Seaside application is really the same thing, even though there s a full-blown multithreaded web server beneath it.
I talked a bit about the AJAX support in Seaside and showed how Prototype and Scriptaculous are being used in Seaside to build very interactive and snappy web applications.
I then gave a demo of Seaside in VA Smalltalk. I had implemened a little web frontend to the Yahoo! Traffic – client that I had shown in the RESTful Web Services client demo in the morning. The demo application used Scriptaculous to allow the user to drag&drop city names into a container which listed all traffic news of the cities. The page also did automatic updates of the list of cities (a link named “add” was changed to “remove”) when a city was added. The whole demo was just a single component and Scriptaculous, no page reloads other than Ajax calls.
The final part of the presentation concentrated on the various topics you’ll be faced with if you want to turn a fat client application into a web server with Seaside. While Seaside will make the transition very easy from the control flow and GUI point of view, there are many other aspects to the application that might make the transition harder than it looks like at first sight. Some of the aspects to address are:
- the persistency architecture of an application (concurrency, connection pooling etc.)
- Back-end calls like CICS transactions that shouldn’t block the whole image
- User authorization and authentication
- All the things related to running a server application in a production environment (logging, health checks etc.)
You can view the presentation here.
The talk was well received and it seems people were quite impressed by what you can do with Smalltalk and Seaside. The demo ran fine and with no major problems, which is very impressive given the fact that is has been implemented and run on a very early preview verson of VA Smalltalk Version 8. In fact, on implementing the demo I had sent a few bug reports to John and got the fixes quite fast. So I can be proud of having contributed to the evolution of Seaside on VAST ;-). And, of course, I can claim to be the first to publicly show Seaside on VA Smalltalk, even before anybody from Instantiations :-))
People in the room seemed to like the idea of playing with Seaside in VAST to see whether it could be used for their projects. We had a long session of Q&A about VAST and Seaside during and after the talk. I think we can be sure that people will adopt Seaside in their applications. At dinner I frequently heard the sentence: “If only I could get my fingers on VA Version 8”.