Just a shot at it...
Swazoo is a free web server and website framework written entirely in Smalltalk. It aims for HTTP/1.1 compliance and runs under several Smalltalk dialects. Using a composite resolution pattern, Swazoo makes it possible to build sites that simultaneously use a variety of web technologies (e.g. server-parsed "active" HTML, servelets, etc). The Swazoo development team hopes to create an entire web application framework built on this foundation. Related to that last line -- let's start some discussions about a web application framework. Janko probably has the most experience with this, so maybe we should start by asking him (please?) to explain how AIDA works. Ken |
Hi Ken, hi all,
Sorry, I'm late again ... So, what's AIDA/Web in current state: AIDA/Web is Web Application Server, that is, a web server with a framework for doing web based applications in Smalltalk way. Main idea back to 1996 was that we need a Smalltalk friendly way to produce another user interface for our domain models besides GUI: a web based presentation. But we didn't want to just put GUI like design on the web, we wanted to explore a full potential of it. On the other side, a strict separation of presentation from domain model was still a major goal and we do that in MVC spirit. So, goals behind AIDA/Web were/are in short: - web presentation of domain model in MVC spirit - full use of all web possibilities in web way, not GUI way - easy web programming in pure Smalltalk without knowing HTML - full use of web navigation (hypertext - url links), which is not present in GUI world - all usuall stuff like session control (cookies), security etc ... During all those years using AIDA/Web in production I found basic idea quite stable and usefull (no big changes in core AIDA for a while) and I really like to merge, refactor, extend AIDA slowly into Swazoo and I see CS4 an opportunity to start that. Guys, help me explain AIDA more with your questions please :) Cheers Janko Ken Treis wrote: > Just a shot at it... > > Swazoo is a free web server and website framework written entirely in > Smalltalk. It aims for HTTP/1.1 compliance and runs under several > Smalltalk dialects. Using a composite resolution pattern, Swazoo > makes it possible to build sites that simultaneously use a variety of > web technologies (e.g. server-parsed "active" HTML, servelets, etc). > The Swazoo development team hopes to create an entire web application > framework built on this foundation. > > Related to that last line -- let's start some discussions about a web > application framework. Janko probably has the most experience with > this, so maybe we should start by asking him (please?) to explain how > AIDA works. > > > Ken > > > _______________________________________________ > Swazoo-devel mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/swazoo-devel > |
Janko Mivsek wrote:
> Sorry, I'm late again ... Hey, you're talking to the guy who took about 3 months (or more) to get code published in the Cincom StORE. So you won't get any complaints from me. :) > So, what's AIDA/Web in current state: > > AIDA/Web is Web Application Server, that is, a web server with a > framework for doing web based applications in Smalltalk way. > > Main idea back to 1996 was that we need a Smalltalk friendly way to > produce another user interface for our domain models besides GUI: a > web based presentation. But we didn't want to just put GUI like design > on the web, we wanted to explore a full potential of it. On the other > side, a strict separation of presentation from domain model was still > a major goal and we do that in MVC spirit. Now that I've built a few sites using Swazoo, this is really intriguing to me. Maybe I ought to just grab the code and pour over it again. [other good intro text snipped] > - easy web programming in pure Smalltalk without knowing HTML Is this by your use of HTML objects (e.g. a "Table" class), or do you have something that's even higher-level than that? > - full use of web navigation (hypertext - url links), which is not > present in GUI world I also think it's important to acknowledge that web interfaces are fundamentally different from program GUIs. > - all usuall stuff like session control (cookies), security etc ... It seems to me like we could integrate this into Swazoo's composite resource pattern pretty easily. > During all those years using AIDA/Web in production I found basic idea > quite stable and usefull (no big changes in core AIDA for a while) and > I really like to merge, refactor, extend AIDA slowly into Swazoo and I > see CS4 an opportunity to start that. Cool deal. Maybe you can describe some of the core AIDA objects (i.e., where should I start if I want to understand how AIDA works?), and then I'll spend some time looking at AIDA and summarizing what I find for the list. This will be a good learning experience for me, and maybe others could benefit from it as well. Ken |
In reply to this post by Janko Mivšek
Hi Janko,
> During all those years using AIDA/Web in production I found basic idea > quite stable and usefull (no big changes in core AIDA for a while) and I > really like to merge, refactor, extend AIDA slowly into Swazoo and I see > CS4 an opportunity to start that. Great! > Guys, help me explain AIDA more with your questions please :) I remember seeing an online presentation you did on AIDA a year or so ago. |
Hi Steve
Steve Waring wrote: >I remember seeing an online presentation you did on AIDA a year or so ago. >>From memory it was part of a European Smalltalk conference. Do you have a >link to this? > Yes, it was Southampton ESUG conference. You can find a presentation here: http://www.esug.org/summerschools/2000_Southampton/aida/index.htm . Home for AIDA/Web is at http://www.eranova.si/aida (a bit old, i need to *refactor* the page a bit :) > >Is http://www.eranova.si/ still AIDA's home? I have not been able to connect >to it. > Hmm, it works for me, but M$ IIS is strange last days, need to migrate to Swazoo ASAP :)) Would you try it again, please report if still not ok. Cheers Janko |
Hi Janko,
> Yes, it was Southampton ESUG conference. You can find a presentation > here: http://www.esug.org/summerschools/2000_Southampton/aida/index.htm . Thanks! > Would you try it again, please report if still not ok. I am getting a 10061 connection refused socket error trying to connect to port 80 at www.eranova.si / 212.18.45.65 I'll email through a traceroute. Thanks, Steve www.dolphinharbor.org |
Steve, it should work now ...
Janko Steve Waring wrote: > >I am getting a 10061 connection refused socket error trying to connect to >port 80 at >www.eranova.si / 212.18.45.65 > >I'll email through a traceroute. > >Thanks, >Steve >www.dolphinharbor.org > > |
Hi Janko,
> Steve, it should work now ... Fixed! Thanks, Steve www.dolphinharbor.org |
In reply to this post by Ken Treis-4
>
> >> - easy web programming in pure Smalltalk without knowing HTML > > > Is this by your use of HTML objects (e.g. a "Table" class), or do you > have something that's even higher-level than that? Yes, web components. First, a HTML generation is done in two phases: first you make an object representation of a page (hierarchy of web elements) and then this object structure is streamed in HTML. To build a WebPage, you compose it from WebElements like WebText, WebImage, WebIputField etc. All those are subclasses of WebElement. WebElement is actually a composite object, therefore it can contain other WebElements. This is very handy because you can produce higher level parts of a page, so called web components. And they can be reused on other pages! A glimpse on web elements hierarchy: WebElement WebPage WebApplication YourApps ... WebText WebLink WebAnchor WebForm WebFormElement WebInputField WebTextArea WebButton WebCheckBox .... WebImage WebTable WebTableRow WebTableCell .... And here is one simple method to produce a logon page: logonPageFor: aSession | element | self clear. self name: nil; title: 'Logon'. element := WebElement new. element table width: 500. element cell addText: 'Username: '. element newCell add: (WebInputField new aspect: #username forObject: self). element newRow. element cell addText: 'Password: '. element newCell add: (WebInputField new type: #password; aspect: #password forObject: self). element newCell add: (WebButton new text: 'Logon'). self add: element. More questions please ;) Janko |
Free forum by Nabble | Edit this page |