Lalo Martins wrote:

> So.  How it works is basically... MVC.  There is a View Context class 
> called WebRequest.  (This is in libvos, in case someone wants to write 
> another implementation of hypervos, say, stand-alone, IIS, whatever; 

Why is this in libvos? It should be in a seperate library.

> (Now, on my original design, web pages would be "transient views", 
> meaning, there is a ViewImplementation that writes to the WebRequest, but 
> it never actually returns a View.  This feature has been lost on Peter's 
> implementation, but we plan to bring it back later on; just not a very 
> high priority.  For now, by not attaching the View to any site, the 
> ViewImplementation can make sure it's collected in the next gc cycle.)

How expensive is it to create a new View like this for every web request?

I see in that it calls createView() on the result of 
findCompatibleViews().  [What does findCompatibleViews do??], is it 
somewhere in that call that it writes the HTML (or whatever) output to 
the stream?  Where? I can't find that part.

> You can look at CoreSchema.xod or mvc.hh for the WebRequest API;

Also should be moved out of the core library (at some point).

> Additionally, more or less on a whim, WebRequest provides two different 
> APIs for "page assembly", to help you build a site (as opposed to a 
> webpage): Fragments and Portlets.

What is the purpose of each of these? Why use these indirections? Why 
not just link Vobjects in the normal way? -- the same way as hypervos 
currently does (or perhaps seperate out the children into a group). 
This lookup in Fragments to find other vobjects seems like trying hard 
to do something that VOS is meant to do much more directly...

Same for Portlets... you don't need any special infrastructure to 
implement the general idea of portlets.  If you have a Vobject that 
contains some web content, you just link it in to the page wherever you 

This is what I think the true strength of hypervos is, you don't need to 
work with some restrictive framework like Portlets.  You just link your 
content wherever in the Vobject tree you want.

vos-d mailing list

Reply via email to