[quote=Lucas Emanuel]Eu li o Blog do Milfont, onde é aprensetado seguinte modelo: http://www.milfont.org/tech/2008/09/08/mvc-model-3-e-camadas/
Gosto muito da idéia. E gostaria de começar a aplicá-lo.
Lendo ele, tive algumas dúvidas:
1 - Utilizando Template JS, quando há necessidade de realizar uma espécie de ou <c:forEach>, como faz?
2 - Os objetos Java, por exemplo, será “linkado” para view, sempre através de JSON, ou um tipo DWR?
3 - Creio que nesse modelo, precisaremos escrever bastante JS. Isso pode dificultar a manutenção, ou pesar demais o cliente (nesse caso penso que não…mas).
4 - É possível criar aplicações de grande porte com este modelo?
5 - Existe alguma restrição ou coisa que este modelo não faz e que o tradicional (mvc 2) faz?
Grato!
[/quote]
1 - Utilizando Template JS, quando há necessidade de realizar uma espécie de <include> ou <c:forEach>, como faz?
Algumas engines de template possuem fluxos e condicionais, outras são mais simples. Olha o mustache https://github.com/janl/mustache.js/ é bem simples usando só {{#foo}} {{bob}} {{/foo}}, o Ext usa uma tag , cada qual tem sua sintaxe, mas em regra a sintxe é simples.
2 - Os objetos Java, por exemplo, será "linkado" para view, sempre através de JSON, ou um tipo DWR?
O ideal é fazer a troca de dados via json usando uma arquitetura mais restful possível para esse modelo, em java o DWR facilita essa troca porque ele faz um bom parser e encapsula isso. Voce acessa suas classes java direto no js de forma transparente. Devo salientar que o DWR é um projeto antigo e já há algum tempo sem evolução, eu prefiro uma arquitetura restful.
3 - Creio que nesse modelo, precisaremos escrever bastante JS. Isso pode dificultar a manutenção, ou pesar demais o cliente (nesse caso penso que não..mas).
Com certeza vai escrever muito mais js do que de outros modelos, mas os frameworks js estão aí para facilitar o trabalho, jQuery para encapsular o DOM, Extjs ou YUI para fornecer componentes visuais, etc…
O importante é aprender js de verdade, como é a OO da linguagem, entender o comportamento funcional, etc. Recomendo os livros do Nicholas Zakas.
Alguns livros são ótimos sobre essa questão de pesar no cliente [com certeza existem más e boas praticas] recomendo o High Performance Javascript [do Zakas], dei a dica dos livros de js que recomendo http://www.milfont.org/tech/2010/10/25/recomendacao-de-livros-sobre-javascript/
4 - É possível criar aplicações de grande porte com este modelo?
Tenho alguns cases de grandes apps, inclusive ERP nesse modelo, acredito até que a tendencia para todas as webapps é view na camada física do cliente. Twitter está aí e o Gmail há anos para provar o que digo.
5 - Você encontrou alguma restrição ou coisa que este modelo não faz e que o tradicional (mvc 2) faz?
Restrição maior é entender o paradigma de separar a renderização da view, aprender como é o OO prototype-based do js, entender closures, etc… o resto faz igual, senão melhor.