[Webteam] Thinking out loud about Aida and Scribo

Chris Cunnington smalltalktelevision at gmail.com
Tue Jun 19 23:22:01 UTC 2012


Aida is a web framework. You create the domain first and then register that, which is unlike Seaside. 
Then you can choose views for it. The word "style" means more in Aida, as I think it informs the entire view. 
SqueakSite has some classes like SqueakSiteApp and SqueakSitePageApp, but I don't know that they do anything. 
SqueakSiteStyle does a lot. It manages the SqueakSite and SqueakSitePage instances, where the content is for the site. 
The content is in the instances, not the classes, which are just for presenting/formatting that data. 

Aida has a "frame" which is a banner with a link bar on the left side of the page. Or it can, like the SqueakSite, have two
menu bars - one on each side of the page. The content, then, can go in the middle of this upside down U. 
If you use Scribo, then the middle of the upside down U will be a Scribo interface for making a wiki, blog, or webpage. 
And extensive set of tools are provided for you to click, type, and link. You don't need to make the site programmatically 
at all. Scribo stores it all in the instances. 

So, using Scribo, it's a mystery why the instances look the way they do, as the user interface is so human friendly. I 
imagine using Aida, you have to add things programatically. On the Squeak site to change the content with Scribo 
is easy. To change a menu requires some coding in a Workspace, it seems
. 
Each link on a page is a key in a dictionary to a value object containing all the content. They are stored in the #pages 
instvar of the Site class. Your site is a subclass of that. 

The image is used for persistence, which means all those instances need to be pulled out of one image and into 
another either with an image segment or using SIXX to draw down the instances with XML. Aida iterates
over the instances with #allInstances, which is something I haven't seen in HTTPView2 or Seaside (which doesn't
have a default persistence solution). (ie AIDASite allInstances do: [:each | each wiki parent: each]. )

OK, that's everything I know about Aida. If there is anything materially wrong here, I hope somebody will point it out. 

Thanks,
Chris 


More information about the Webteam mailing list