Engage restructing proposal

Antranig Basman Antranig.Basman at colorado.edu
Sat Oct 10 01:24:08 UTC 2009

Do you mean, you will invite comments soon, or that you invite comments 
that will occur soon? :P
Running the risk of jumping the gun if the former:
i) I assume that engage-client is also nested inside src/webapp as well...
otherwise I guess we would not easily be able to composite it inside
ii) I object to the somewhat arbitrary distinction between "components"
and "services" which obscures the generally harmonious bent to the 
framework :P
I guess there will in time be more to what I hope we will not call a 
"service" than a single .js file, since these will have their own 
configuration/manifest supplied in some JSON structure.
iii) whilst "mapping" doesn't actually contain any mapping, it does 
contain a lot of useful JSON to XML benchmarking - I am guessing by 
"remove from SVN altogether" you just mean "do not promote from 
incubator along with the rest of Engage"?
iv) concerned about having engage client-specific framework, I've looked 
over it a bit, but don't see anything particular about most of it that 
insists it lives on the client, although it does touch some tags. But 
this does touch a quite interesting issue that we should ponder, even if 
we don't do anything about it -

Right now - all of the code we have on the server, has visibility of all 
of the code we write on the client - even that large part of it relating 
to DOM manipulation, DOM events, etc. that is useless. Whilst in some 
sense this is not correct, I guess we justify this by noting that the 
costs of loading superfluous code on the server (once per server 
startup) are much lower than loading it on the client (once per page 
serve). All the same, it is not great, and we should give at least some 
thought to the concept of a "core framework" which consists just of 
those definitions which make sense both on the client and the server. In 
terms of infusion, this is not too hard, since it consists largely of 
Fluid.js and the Renderer, plus or minus a few bits and pieces. So, I 
think we should make efforts to ensure that as we "go forward", engage 
code is designed with this in mind too - that is, parts of the code 
which are "model-directed" and interact with markup only through the 
renderer, and parts of code which get involved with grubby details of 
DOM manipulation.

a.cheetham at utoronto.ca wrote:
> I was asked to bring my Engage-newbie eyes to help with the tasks of 
> restructuring the file hierarchy. Many thanks to Yura and Colin for 
> helping me to understand how Engage works, and for answering all of my 
> questions.
> With a bit of brainstorming, Colin and I have come up with the following 
> proposed structure. We invite comments, questions, suggestions. Soon.
>   /infusion
>   /engage-client
>     |- /framework
>     |- /components
>          |- /ArtifactView
>               |- / <subfolders as current for all components>
>          |- /Browse
>          |- /Cabinet
>          |- /NavigationList
>          |- /Description
>          |- /ScreenNavigator
>          |- /Tags
>     |- /infusionTesting
>     |- /integration_demo
>     |- /mobileFSS_demo
>   /engage-server/src/webapp
>     |- /kettle
>          |- /js
>          |- <config files>
>     |- /application
>          |- /js
>               |- EngageApp.js
>          |- <config files>
>     |- /services
>          |- /artifactView
>               |- /js
>                    |- artifactView.js
>          |- /browse
>               |- /js
>                    |- browse.js
>          |- /kettleDemo
>               |- <as existing>
>     |- /WEB-INF
>   ** remove /mapping from SVN altogether

More information about the fluid-work mailing list