[Seaside] Seaside vs. Aida

stephane ducasse stephane.ducasse at free.fr
Sun Mar 30 20:14:24 UTC 2008


ok I see
but could you show the code of the multicounter example that nicolas  
mentioned.
because I could not see how you got the 4 counters in a row.
Stef
On Mar 30, 2008, at 9:33 PM, Janko Mivšek wrote:

> Hi Stef,
>
> Let me first rename topic to Seaside vs. Aida, because that's more  
> appropriate to the Lucas blog post anyway. He pointed to other  
> "traditional" frameworks, not Aida :)
>
> stephane ducasse wrote:
>
>> Now I think that there is room for seaside and aida side by side.  
>> It would be nice if both frameworks would mention their own limits.
> > It seems that in Aida you cannot easily embed multiple times the
>> same component on a page.
>
> Ok, let me start explaining Aida's component model more broadly,  
> because it seems that is one of major misunderstandings when  
> comparing both frameworks. Reason seems to be simply in naming and  
> nothing more.
>
> In Aida we have a WebElement which start covering primitive elements  
> like images, links or text, and ends up to the whole web page.  
> WebElement can namely be a composite of sub elements down to  
> primitive ones. We have therefore a consistent component model from  
> a web page down to primitive elements.
>
> Just recently we started using a name "component" and introduce a  
> class WebComponent (which is currently just an empty subclass of  
> WebElement) to  more clearly separate components from mere elements.  
> But where elements end and components begin, that's now a question.
>
> Components are supposed to be a standalone, reusable, heavy  
> ajaxified parts of web page, but that's already every web element in  
> Aida! Introduction of WebComponent class is therefore currently more  
> conceptual than practical, but we hope it will evolve in  
> practicality through the time.
>
> Let me allow to make a short comparison with a Seaside component  
> model. Here a web page is a root component and you can have also  
> subcomponents (children). So far so good, we are the same.
>
> First difference is how those components (say web pages) are  
> connected and how user navigates among them, another difference is  
> how both component models continue building a web page down to a  
> primitive elements. Let we look at later for now.
>
> In Seaside you start painting a component, using a hierarchy of  
> blocks. In Aida you continue building with smaller and smaller  
> WebElements. Aida therefore continue using consistently the same  
> component model down to the lowest level of web pages: basic text,  
> images etc.
>
> One of the consequences of this consistency is how long are methods  
> in Aida. You'll see that almost all are short, inside 10 line  
> recommendation. I think this shows well the strengths of Aida  
> component model. Other is maybe that users find Aida easy to use.  
> Maybe.
>
> Let me finish with a component model example. That's how it looks a  
> page creation method for squeak.org demo http:// 
> squeaksite.aidaweb.si :
>
> pageElement
>  | e t |
>  e := WebElement newId: #container.
>  self headerElementTo: e.
>  t := WebElement new.
>  t table width: 1; cellSpacing: 0; cellPadding: 0.
>  t cell valign: #top. t cell table cellSpacing: 0; cellPadding: 0.
>  t cell cell add: self menuElement. t cell newRow.
>  t cell cell add: self linksElement. t cell newRow.
>  t cell cell add: self sideLogosElement.
>  t newCell valign: #top;
> 	add: self bodyElement. "contents"
>  t newCell valign: #top. t cell table cellSpacing: 0; cellPadding: 0.
>  t cell cell add: self downloadsElement. t cell newRow.
>  t cell cell add: self newsElement. t cell newRow.
>  e add: t.
>  ^e
>
> ...then header element:
>
> headerElementTo: e
>  e add: self headerLinksElement.
>  e add: self headerTitleElement.
>  e add: self headerActionsElement.
>  e add: self headerSessionElement.
>
> ... and finally login part in up right corner:
>
> headerLoginElement
>  | e |
>  e := WebElement newDiv.
>  self session isLoggedIn
>    ifTrue:
>        [e addText: self app session user nameSurname, ' | '.
>         e addLinkTo: self site admin text: 'Logout' view: #logout]
>    ifFalse:
>        [e addLinkTo: self site admin text: 'Login' view: #login].
>  ^e
>
>
> Best regards
> Janko
>
>
>
>
> -- 
> Janko Mivšek
> AIDA/Web
> Smalltalk Web Application Server
> http://www.aidaweb.si
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>



More information about the seaside mailing list