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]