Smalltalk Ajax Frameworks - Ajax Patterns

Smalltalk Ajax Frameworks

From Ajax Patterns

(Redirected from Smalltalk Frameworks)

Contents

Ajax/Javascript Programming and Usability in "Ajax Design Patterns" Book

Aida/Web

Aida/Web is a web server and framework for complex web applications in Smalltalk

AIDA/Web is a web server and framework for complex web applications with integrated Ajax support, rich collection of web components to build web pages programatically, MVC-like separation of presentation from domain, nice looking and bookmarkable url links, with integrated session and security management and many more.

AIDA/Web is known by its simplicity but still allows building most demanding web applications of many sorts. It has everything you need for a real web app, together with Ajax.

It is also a mature one, running web apps in production since 1996. It is used in many intranet business apps from Gas billing system for all gas in Slovenia to logistics management system called e-logis and recently a CMS like system for Quality and Business process management.

Everyone interested is encouraged to:

License: It's LGPL-ed code. So, you can use it commercially if you want to. You are encouraged to send back improvements you make to the software and any suggestions are also welcome.

Seaside

Seaside is a framework for developing sophisticated web applications in Smalltalk

Seaside provides a layered set of abstractions over HTTP and HTML that let you build highly interactive web applications quickly, reusably and maintainably. Seaside includes:

  • Programmatic HTML generation. A lot of markup is boilerplate: the same patterns of lists, links, forms and tables show up on page after page. Seaside has a rich API for generating HTML that lets you abstract these patterns into convenient methods rather than pasting the same sequence of tags into templates every time.
  • Callback-based request handling. Why should you have to come up with a unique name for every link and form input on your page, only to extract them from the URL and request fields later? Seaside automates this process by letting you associate blocks, not names, with inputs and links, so you can think about objects and methods instead of ids and strings.
  • Embedded components. Stop thinking a whole page at a time; Seaside lets you build your UI as a tree of individual, stateful component objects, each encapsulating a small part of a page. Often, these can be used over and over again, within and between applications - nearly every application, for example, needs a way to present a batched list of search results, or a table with sortable columns, and Seaside includes components for these out the box.
  • Modal session management. What if you could express a complex, multi-page workflow in a single method? Unlike servlet models which require a separate handler for each page or request, Seaside models an entire user session as a continuous piece of code, with natural, linear control flow. In Seaside, components can call and return to each other like subroutines; string a few of those calls together in a method, just as if you were using console I/O or opening modal dialog boxes, and you have a workflow. And yes, the back button will still work.
  • Support for CSS and Javascript, excellent web-based development tools and debugging support, a rich configuration and preferences framework, and more.


Seaside live update predates the coining of the Ajax term.

SeasideAsync is an Ajax framework built on top of the default rendering API.

Scriptaculous has a nice Smalltalk API that is automatically mapped to the Scriptaculous prototypes.

Geoff Grosenbach interviews Avi Bryant about Seaside and the philosophy behind different web frameworks in a Ruby on Rails podcast.

Seaside-Hosting is a free hosting service for non-commercial Seaside applications. This service provides a simple to use web interface with FTP access to set up and run your Seaside applications.

Seaside is currently developed and supported by Avi Bryant, with the help of the Seaside community. Commercial support is available.

Seaside is distributed under the MIT License.