One more example . . .

Em Thu, 20 Nov 2008 14:59:05 -0300, Thiago H. de Paula Figueiredo <[EMAIL PROTECTED]> escreveu:

This is a common confusion: there is the controller in the MVC pattern and the controller in the 3-tier architecture, and both are different things. A controller in MVC, in Tapestry, would be a page class. The View would be the template. This MVC controller has only user interface code, not business rules code. A controller in a 3-tier architecture has business rules code and no user interface code. This way, for example, I can implement a Swing interface to my applications just rewriting pure user interface code. No business rules code is rewritten.

Once I made a Java Web frameworks comparison presentation (Struts 1, Struts 2, JSF, and Tapestry 5). In order to compare them I wrote a simple application (almost the same as the Ars Machina example project) in a 3-tier architecture, just like I described above. The DAO and business rules were implemented once, as a separate project. Then, for each framework, I built a Web interface, just importing the example core project. If I implemented the business rules in Tapestry page classes, for example, I would need to rewrite them when implementing the Struts 1 (argh!) version.

I love Tapestry (I even have some open-source projects wrote on the top of it) and I don't plan to replace it, but I really want to be able to replace the user interface or add a new one any time I want with very little effort. The targets here are mantainability, flexibility, separation of concerns, ..., and mental sanity. :)

--
Thiago H. de Paula Figueiredo
Independent Java consultant, developer, and instructor
http://www.arsmachina.com.br/thiago

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to