This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: VisualWAF - a Web Toolkit add-on
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.
VisualWAF is a Web Toolkit add-on created by the Heeg company. Andreas Toenne is giving the presentation. The Knowledge Base application described in the previous talk used this framework to create the web application quickly.
VisualWAF is a Web application framework that brings MVC style development to web development. Again, there's a live demo in this talk. Quick look at web apps - not like Smalltalk:
Transaction oriented
Stateless
Everything is text (HTML, etc)
primitive presentation options
No interaction between transactions
Bottom line - not very Smalltalk like. [ed: See Avi's blog>http://www.cincomsmalltalk.com/userblog/avi/blogView] for another Smalltalk reaction to web development - Seaside. I have a flight at 2:15 today, so I'll miss Avi talking about it later today].
What did Heeg want out of this - make web app development as much like stock GUI development as possible. Preserve the application concepts of GUIS in the web environment, all while allowing web designers to do their thing with CSS/HTML (etc).
View - service for providing a response
Visual elements as HTML
presenter of domain values as HTML
possible creator of web pages
Controller - service for the request
Interpreter of user interaction
Converter of HTML requests to Smalltalk objects/responses
Larger granularity than GUI-MVC
So now we run to the demo. You start by defining the "ApplicationModel". This allows the developer to define the website by writing a few methods in this class (in Web Toolkit, you edit a config file and/or use a tool to do this). The options that are normally controlled via the web toolkit configuration tool are instead specified in code. Sending #initialize to the class sets things up. There's also a way to specify tasks (mapped to requests). Once you define a task, you've got a simple property form in the browser to fill in. You then need to specify the domain model - again, it's a matter of specifying attributes of a page. Finally, you have a view class. You could specify the entire page here - you can also use a template (ssp page) that gets passed in.
When you specify attributes and actions in the editor, code generation creates the stub methods (for things like submit buttons). You then simply need to fill those methods in (the same way you do when building a GUI). It's a simple engine for building servlest/script pages - gives you a choice of specifying html in code, or using ssp pages. It's built on top of Web Toolkit, so it leverages what you already know. It's a Heeg product - available from them on a consulting or licensed basis