One of the exciting things about being a tools vendor is seeing what people build with your tools. Of course, when there are a combination of excellent tools out there, including Seaside and Magritte, the possibilities become even more interesting.
Gerhard Obermann, a Smalltalker with Nokia Siemens Networks in Vienna, Austria, is building a Service Desk application in Seaside to enhance a mature client/server system (built with Cincom Smalltalk and GemStone).
Gerhard has created “Scaffolding for GemStone” and I’m scheduled to give a demo of it at the end of the day on Thursday at Smalltalks 2008 in Buenos Aires. I’ve created a 7-1/2 minute screencast of what I plan to show since I think some of you won’t want to wait for the post conference videos (if any).
“Scaffolding” usually describes a simple “skeleton” user interface (UI) that is created quickly by tools in response to your domain model. What is interesting to me is how much of the complexity that remains in even the slickest of tools is related to the persistence model (generally an Object/Relational Mapping layer). Probably one of the most popular (or talked about) scaffolding frameworks is Rails, where the 15-minute demo involves repeated interactions with the SQL model. Demos of other tools simply wave their hands and present you with a relational schema already created and then go on to use nice tools to build the UI (it makes you wonder how complex the part is that you don’t see).
What Gerhard has done is used Magritte to model a domain, GemStone to save the objects, and Seaside to display them. In addition, Gerhard has created a web-based UI to interact with the Magritte data. Thus, after loading his package into GemStone, everything else is handled through a web browser. The tools build a basic “CRUD” user interface (that handles Create/Retrieve/Update/Delete for the domain data).Â
Take a look at the demo and leave us your comments! Better yet, load the code into your GLASS environment and contribute to the open source project…
6 comments
Comments feed for this article
November 13, 2008 at 5:52 pm
Scaffolding for GemStone « (gem)Stone Soup
[…] At Smalltalks 2008, James Foster gave a demo of “Scaffolding for GemStone”, a Seaside application written by Gerhard Obermann: What Gerhard has done is used Magritte to model a domain, GemStone to save the objects, and Seaside … […]
November 13, 2008 at 6:56 pm
jamieorc
Very slick! Makes me think of DabbleDB.
November 14, 2008 at 5:04 am
Stephan Eggermont
Very good presentation, James.
November 14, 2008 at 12:28 pm
Stephan Eggermont
Loaded and tried. Looks really nice. How do I add an attribute labeled ‘size’ (this conflicts) to a domain class? How do I enter the options for a single option field? It is a memo field, I tried separate lines, space and comma separated strings. I managed to create 14 instances of a domain object I cannot delete nor view…
Debugging such a meta-framework based application is interesting…
November 14, 2008 at 3:30 pm
Pete
Lovely!
A suggestions (perhaps more to Gerhard or Lukas) — would be great if, in addition to the domain model, the view definitions were web-editable and composable. Best work I have come across to do this is http://www.defmacro.org/ramblings/ui-dsl.html
November 4, 2009 at 6:18 pm
Bootstrapping GLASS 1.0-beta.0 « (gem)Stone Soup
[…] package. The Scaffolding packages are optional and representing the implementation of Scaffolding for GemStone. Even though this project consists of a single primary package, the fact that it depends upon […]