[Seaside] Seaside Thoughts and Questions

Daniel Drasin dan at drasin.org
Sat May 3 15:05:48 CEST 2003


Here are some email dialogs i had recently with Avi (who suggested
i post the threads).  I will post these as separately.
--------------
From: Daniel Drasin 
To: avi at beta4.com ; julian at beta4.com 
Sent: Saturday, April 26, 2003 5:03 PM
Subject: Seaside - love it!

Avi & Julian,
 
Been using seaside for a month or so and love it - wanted to let you
know.  (Writing a game engine and wanted to quickly put a web front end
on it.  It was quick and easy - a very nice change from request/response
hell).
 
At any rate, having mulled it over i had a couple of thoughts/questions
and thought you guys might know that answers.
- anyone done any work on porting seaside (or something like it) to
java?
- anyone thought about decoupling the application response from the UI
building?  (e.g. adding an extra layer of indirection [command pattern]
to encapsulate all UI interactions - see example below.).  This would
allow users to swap out different front ends (HTML, VB, Java, etc.). 
This becomes really powerfull now that the "request/response" paradigm
is converted into the standard control flow of client-server
applications
- now you can front end a single set of application logic (not just
business logic) with all the different client interfaces types (without
needed
extra logic on the client).
 -anyone done any work to implement a server monitor for seaside (keeps
track of users, their requests, etc. and presents them to through an
admin UI)?  I couldn't find any out there so i wrote a quick and dirty
one, but would love something better.
 
At any rate, this stuff is really unique and first rate.  I hope it
really catches on!
 
Cheers,
 
Dan
 
--------now---------------
renderContentOn: html
    html form:  [
       html heading: count.
       html submitButtonWithAction: [self increment] text: '++'.
       html space.
       html submitButtonWithAction: [self decrement] text: '--'
     ].
 
decrement
  count = 0
     ifFalse: [count := count - 1]
     ifTrue: [self call: (WADialog new message: 'Let''s stay away from
negatives.')]
--------now---------------
--------instead---------------
renderContentOnHTML: html
    html area:  [
       html heading: count.
       html addSubmitButtonNamed: 'PlusButton' text: '++'.
       html space.
       html addSubmitButtonNamed: 'MinusButton' text: '--'
     ].
 
addBindingToUI: aUI
        aUI bindActivationOf: 'PlusButton' to: [self increment].
        aUI bindActivationOf: 'MinusButton' to: [self decrement].
 
decrement
  count = 0
     ifFalse: [count := count - 1]
     ifTrue: [self call: WAXDialog forMesage: ''Let''s stay away from
negatives.' in: self]
--------instead---------------
Of course, WAXDialog would invoke the right kind of UI/dialog depending
on what kind of client was connecting.  And this may not be the
right way to structure it (once class for all UI creation, binding, etc.
- but that's consistent with the Seaside example...)
-- 
	Daniel Drasin				
	dan at drasin.org				8612 Long Meadow Ct.
	(410)-461-6168				Columbia, MD, 21045


More information about the Seaside mailing list