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