MVC Model 3 e camadas

{ September 8th, 2008 }


cmilfont

Autor: cmilfont

Recebo muitos emails com dúvidas sobre as camadas no que denominei de Model 3 no artigo da revista Java Magazine, edição 54. Esse Post é para esclarecer alguns pontos que ficaram obscuros no artigo.

Fiz um resumo da história do padrão MVC com base nesse artigo do Brian McCallister, e cometi o pecado inenarrável de misturar camadas e MVC na mesma descrição sem especificar claramente a diferença de um para o outro e separar na explicação onde entrava cada um dos conceitos na evolução até chegar no Model 3.

Não vou dar desculpas e a única coisa em minha defesa é que foi o primeiro artigo que, diga-se de passagem, passou por 8 revisões até chegar ao nível que a revista queria, tive que limar bastante e deixar a explicação fácil para iniciantes. Limei bastante, cortei muito e deixei uma parte confusa. Erro crucial que pago até hoje, porque muita gente entra em contato para entender melhor o que eu “quis” dizer.

MVC e Camadas

Sendo sucinto, deixando logo claro que MVC não tem a ver com camadas, são dois conceitos que se “completam” e se misturam frequentemente dependendo da situação. Tem uma excelente explicação sobre isso nesse artigo do Phillip “Shoes” Calçado. No Model 3 eu uso duas camadas físicas na implementação desse conceito, vamos a explicação.

O que é o Model 3

O Model 3 é conhecido nas listas de discussões de tecnologias WEB 2 como Model 2 + 1, alguém que não lembro propôs esse termo para o que estamos fazendo. Apelidei de Model 3 [2+1, criatividade heim!, sou foda nisso] para dizer que fui eu que criei o termo e fazer fama e sucesso, mas é mentira, isso já existe bastante tempo, inclusive não trouxe nenhuma tecnologia nova, apenas como organizar as coisas.

Significa que os Frameworks Model 2 são ajaxificados com Frameworks Javascript ou integrados com tecnologias RIA como XUL e Flex onde parte da responsabilidade de controle e toda a visão é transferida para o lado cliente, ou seja, a camada de apresentação [layer] inteira foge do lado servidor para a camada física [tier] cliente.

Onde entra as camadas e o MVC?

Observe na figura 1 que todo o processamento da camada de apresentação de uma aplicação usando um Framework Model 2 é realizado no lado servidor, em uma mesma camada física. No lado cliente só existe a exibição de uma página renderizada no formato HTML.
Model 2
Figura 1. Model 2.

Na figura 2 temos uma proposta de mudança para o processamento do Model 2, transferindo toda a apresentação para o lado cliente, com visão e parte do controle para uma tecnologia especialista nessa camada física.
Model 3
Figura 2. Separação em camadas do Model 3.

Há duas vantagens claras, melhor usabilidade por parte do usuário [quando bem construída a aplicação] e desafogamento do servidor em tarefas desnecessárias, como transformação em HTML.

Como construímos uma aplicação com Model 3?

Bem, uso DWR como cola entre as camadas físicas distintas, ele faz a transferência de entities de forma transparente na aplicação.

Para visão eu uso o ExtJS que assume toda a renderização na UI e, integrado ao DWR, coordena o controle da aplicação com uma usabilidade melhor do que a forma tradicional.

No lado servidor o Model segue Hibernate + Spring de forma tradicional usando o DWR como fachada entre o domínio e o controle com POJOS apenas.

Tanto na minha palestra quanto na do Handerson no último CCT, vi que muitos presentes não conhecem o DWR e pior, continuam usando Struts para desenvolvimento de novas aplicações. Nos próximos posts vou abordar mais profundamente esse aspecto do desenvolvimento WEB.

Posted in Ajax, Frameworks, Java Magazine, Melhores práticas, Model 3, RIA, Web Development, mercado, web2.0 ~ No Comments

Adicionar ao Rec6

III Natal Java Day

{ October 9th, 2007 }


cmilfont

Autor: cmilfont

Fui convidado e aceitei de bom grado a palestrar no III Natal Java Day, que ocorrerá no dia 17 de novembro de 2007.

Confira a grade de programação e faça sua inscrição, mesmo que você não seja do Nordeste, vale a pena visitar essas praias lindas. Fui em Natal no ano da graça do senhor de 1999, mas nesse milênio eu ainda não visitei essa cidade maravilhosa.

Vocês sabiam que eu passei na Federal de Natal mas acabei ficando em Fortal mesmo?

Minha palestra terá o tema: Ajaxificando suas aplicações, no horário 17:50h - 18:35h.

Estarei representando nosso estado, o Ceará, e o CEJUG.

Resumo da palestra:

“A plataforma Java para a WEB sempre foi reconhecida injustamente pela complexidade e overhead de abstrações desnecessárias para coisas simples, como operações CRUD. Conheceremos maneiras de evitar essa complexidade, aplicando usabilidade próxima ao desktop com frameworks Ajax, deixando o mais próximo possível do MVC original.”

Posted in Ajax, Frameworks, Model 3, Web Development, palestras, web2.0 ~ 5 Comments

Adicionar ao Rec6