Difference between revisions of "Seaside"
m |
m (→See also) |
||
| Line 35: | Line 35: | ||
*[http://scg.unibe.ch/archive/papers/Duca04eSeaside.pdf Seaside - a multiple control-flow web application framework] ''- PDF doc about Seaside by Stéphane Ducasse, Adrian Lienhard and Lukas Renggli'' | *[http://scg.unibe.ch/archive/papers/Duca04eSeaside.pdf Seaside - a multiple control-flow web application framework] ''- PDF doc about Seaside by Stéphane Ducasse, Adrian Lienhard and Lukas Renggli'' | ||
*[http://www.seaside.st/about/trivia/seaside4j Seaside for Java] ''- these guys rock! they hate Java and take the piss out of it just like we do :-)'' | *[http://www.seaside.st/about/trivia/seaside4j Seaside for Java] ''- these guys rock! they hate Java and take the piss out of it just like we do :-)'' | ||
| − | *http://blog.jonudell.net/2007/01/19/a-conversation-with-avi-bryant-and-andrew-catton-about-dabble-db/ DabbleDB] ''- DabbleDB is a very impressive online rdbms-like app written in Squeak'' | + | *[http://blog.jonudell.net/2007/01/19/a-conversation-with-avi-bryant-and-andrew-catton-about-dabble-db/ DabbleDB] ''- DabbleDB is a very impressive online rdbms-like app written in Squeak'' |
*[http://www.infoq.com/interviews/bryant-smalltalk-dabbledb DabbleDB] ''- Creator of DabbleDB on persistence in smalltalk, Seaside'' | *[http://www.infoq.com/interviews/bryant-smalltalk-dabbledb DabbleDB] ''- Creator of DabbleDB on persistence in smalltalk, Seaside'' | ||
[[Category:Software]] | [[Category:Software]] | ||
Revision as of 05:20, 16 January 2011
Seaside provides a layered set of abstractions over HTTP and HTML that let you build highly interactive web applications quickly, reusably and maintainably. It is based on Smalltalk, a proven and robust language that is implemented by different vendors. Seaside has been ported to every major version of Smalltalk, but they use the Pharo flavour which is a fork of Squeak.
Based on continuations, Seaside transparently manages the request/response loop and the handling of the necessary URLs, query strings and hidden form fields. This prevents any name clashes and frees the developer from manually encoding information in the response and decoding it later again. This is the foundation to model the control flow explicitly at a higher level of abstraction rather than having to hardcode the next step of flow in each component itself.
In Seaside, each component can run its own control flow independently of the others. This makes possible to compose complex applications out of small and reusable components without having the problem of composing the individual control flows. This component composition makes possible to have multiple control flows within the same page naturally. The programmer is able to write business application logic at a high-level of abstractions.
Advantages over other web technologies
Many of today's frameworks, such as PHP, ASP.NET, JSP or Zope, fail to provide a high-level abstraction over how pages are linked. Indeed, a web application has to model control flow.
IDE: As Seaside is written in Smalltalk it is based on a very powerful, fully object-oriented language and development environment. In addition to being able to use the tools provided by the environment, Seaside integrates them seamlessly with the web. This makes the platform a versatile and productive environment for web application development. We start by looking at the debugging facilities before presenting the Seaside specific tools.
Incremental programming: Smalltalk’s philosophy of incremental programming in an interactive environment is supported by Seaside. Code can be added and edited while the web application is running and there is neither the need to manually recompile the code nor to restart the server. In many cases this makes it possible to update a system in production on the fly without any outage and without the need to set-up a temporary backup server.
Debugging: Debugging. Most of today’s frameworks do not support debugging of web applications well. Most display the error and the line number in the web browser only, which makes it very inconvenient to find and fix bugs.
Toolbar: Toolbar. A toolbar that is shown at the bottom of the web-application during the development phase enables the programmer to access additional tools from within the web. Of course, all these tools have been written in Seaside itself.
Halos: When enabling the halos, every component gets surrounded by a thin grey line and a header giving the class name of the component and a set of buttons to run tools and to change the viewing mode.
System Browser: opens an editor on the current component and lets the developer modify its class and all the methods from within the web, while the application is still running in the background. When closing the browser-view the application immediately runs with the new code without having to restart the session.
Inspector: opens a view on the component, so that the developer can browse the internal structure of this object. It presents the names of the instance variables and the current values, whereas the user is able to dive into the referenced objects by clicking on the links.
Library Browser: opens an editor that lets a UI designer tweak the associated CSS. This makes it very convenient to try out different layouts directly in the web-browser without leaving the running application.
Source View: provides a pretty-printed and syntax-highlighted XHTML view onto the source code of the current component. Like this the developer is able to observe the generation of XHTML while still being able to interact with the application by clicking on its links.
Resources
- http://onsmalltalk.com/top-posts
- Design principles in Smalltalk
- Smalltalk 101 - good list of resources
See also
- Seaside - a multiple control-flow web application framework - PDF doc about Seaside by Stéphane Ducasse, Adrian Lienhard and Lukas Renggli
- Seaside for Java - these guys rock! they hate Java and take the piss out of it just like we do :-)
- DabbleDB - DabbleDB is a very impressive online rdbms-like app written in Squeak
- DabbleDB - Creator of DabbleDB on persistence in smalltalk, Seaside



