On Fri, 8 Feb 2008, James Pic wrote:

> We are done with a final draft, document attached.
> I'll post an implementation document first draft tomorrow morning.

Great work! I've some comments though :)

> I/O abstraction
> ----------------
> 
> Modern applications often require to deal with different input and output
> protocols and formats (for example HTTP-GET, HTTP-POST, SOAP for the input 
> part
> and HTML, PDF, ReST-webservices for the output part). Therefore, protocols
> input and output formats should be abstracted into dedicated objects, which 
> are
> not specific to a certain protocoll or format.

[snip]
 
> A benefic side-effect relates to controller-testing: Creating input and output
> mocks and fixtures allows straight-forward TDD.
> 
> Summary
> ^^^^^^^
> 
> - Controllers should not know about the input and output environment but work
>   on abstract objects only.
> 
> Layers
> ------
> 
> The MvcTools component should distinguish certain layers to allow users to
> easily adjust and replace certain functionality. Therefore, the following
> requirements have been specified.
> 
> Controllers process and respond to events, typically user actions, and
> may invoke changes on the model. In our case, controllers run an action using 
> a
> single argument: An input-object. A controller returns an output-object, after
> being run.
> 

I am just wondering about this... HTTP-GET should not be allowed to 
invoke changes on the model - it violates the HTTP standard. Therefore, 
you do need to transfer which protocol is used to the controllers.

> Error-handling
> --------------

[snip]

> Those errors cannot be handled by the controller, because they happen
> outside of it. A configurable default controller will be called for all
> error messages, so the application developer may decide to send
> messages, show or log the occured error. An error during the execution
> of this default controller will cause a "501 - Internal Server Error".

Make sure to follow HTTP standards here. This diagram is excellent for 
it: http://thoughtpad.net/alan-dean/http-headers-status.html

> TieIns for this default controller using the EventLog and / or Mail
> component for error logging would be useful.

Perhaps "Execution" would be beneficial as well.

Otherwise, it looks good!

regards,
Derick
-- 
Components mailing list
Components@lists.ez.no
http://lists.ez.no/mailman/listinfo/components

Reply via email to