MVC Model 3 e camadas

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.

Typically chemist’s shop can sale to you with discreet treatments for various soundness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a so complicated matter. Matters, like “coupons for viagra“, are coupled numerous types of health problems. If you need to take formula medications, ask your dispenser to check your testosterone levels before. Sometimes the treatment options may include erectile disfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile dysfunction drugs like Viagra without a prescription is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

Podem me mandar a geladeirinha…

Sério, blog é uma mídia muito especial, os visitantes não são apenas “consumidores” e eu não sou apenas um produtor de informações, somos “prosumidores“. Evidente que o blog é meu, então sou senhor absoluto desse reino, decido o que vive e o que morre aqui. Um Daimyo digital.

Como sou benevolente, permito que meus visitantes comentem e fomentem uma mídia social com base na colaboração, web 2, bla bla bla, lambda lambda lambda…

Ultimamente a “blogosfera” anda se achando outra coisa, a alma do blog é a parcialidade, diferente do jornal de papel ou do jornal nacional, tomamos partido. Emitimos [e porque não?] e omitimos opiniões sem nos preocupar com a moral e os bons costumes.

A ultima frescura [atraso de minha parte] é que blogs não devem aceitar “produtos” para “resenhar”, vulgo jabá.

<blink> QUERO AVISAR AOS “ANUNCIANTES” QUE ACEITO PRESENTINHOS PARA “RESENHA”. </blink>

Jabá não existe nesse nosso “ramo”, pelo simples fato que as pessoas que me visitam sabem quando eu estou recebendo um chequinho [ainda não recebi, mas espero muito] para falar de um produto tão a ver com meu blog como uma geladeirinha da coca-cola. Eventualmente [quase sempre] cai um paraquedista aqui, non-sense, que não deve entender nada do que estou falando. Esse visitante eu quero que se exploda, não estou nem aí para ele.

Já que não querem receber, eu recebo!

Foda que nenhum anunciante descobriu meu blog [PR4 é classe D ou E na blogosfera] e não me mandou nenhum “produto” para “resenhar”.

Engraçado são os “jornalistas” questionando a ética dos blogs… hahahahahaha!

Nós somos imorais, anti-éticos, falamos porra e caralho em horário nobre [ou seja, todo momento] e estamos nos lixando para ética do “jornalismo”.

Esse movimento é anarquista, vocês traíram o movimento, véios! Quero que a ética do “jornalismo” se PHODA! Com “p” e “h” para representar algo velho, que se parece com o jornalismo.

Já imaginou o Bonnner falando para a Ótima Bernardes:

“- Caraaaaaaaaalho, que porra é essa aí na Geórgia, Ótima?”

“- Sei que porra é essa não, Bonnner. Os Russos fuderam de carga e corda com os putos da Geórgia. Se os fuleros dos estaduzunidos se meterem vai dar merda!”

Essa é nossa diferença para o jornalismo, nós podemos falar assim, eles não!

Eles representam o velho, dicotomia burguesia x proletariado, bons costumes, etc e tal.

Nós somos o novo, jabá perde o sentido para alguém que pode falar putaqueopariu em seu próprio veículo de informação.

E só para não esquecerem:

<blink> QUERO AVISAR AOS “ANUNCIANTES” QUE ACEITO PRESENTINHOS PARA “RESENHA”. </blink>

Typically chemist’s shop can sale to you with discreet treatments for various health problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a very complicated matter. Matters, like “coupons for viagra“, are connected numerous types of health problems. If you need to take prescription medications, ask your pharmacist to check your testosterone levels before. Sometimes the treatment options may include erectile disfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile dysfunction drugs like Viagra without a recipe is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

Java Magazine 60: Artigo sobre Frameworks Ajax

Caros, saiu na edição 60 [última edição até a data desse post] uma matéria minha sobre ExtJS.

A matéria é “Introdução ao Framework ExtJS” com subtítulo “Usando ExtJS como Framework Ajax em aplicações web”.

A idéia desse artigo é ensinar aspectos básicos que um Framework Ajax de propósito geral deve fornecer, exemplos de implementação no ExtJS. Além disso mostrar como está fundamentado o próprio ExtJS.

Esse artigo segue a trilha Ajax que estou escrevendo da qual iniciou na edição 54 com MVC Model 3 (ou 2+1 como também é conhecido) e vai continuar com uma matéria sobre “JavaScript Orientado a Objetos” que sairá na coluna QuickUpdate em alguma das próximas edições.

Estou escrevendo agora um artigo sobre ExtJS avançado, com estensão de componentes, integração com outros Frameworks como o DWRProxy que criei, FormPanel especializado se beneficiando da orientação a objetos do Javascript e de funções que a complementam implementadas pelo ExtJS.

Saiu nessa mesma edição matérias de outros cearenses como o Igo Coelho, mais informações no site do CEJUG.

Typically chemist’s shop can sale to you with discreet treatments for various soundness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a very complicated matter. Matters, like “coupons for viagra“, are coupled numerous types of health problems. If you need to take formula medications, ask your pharmacist to check your testosterone levels before. Sometimes the treatment options may include erectile dysfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile disfunction drugs like Viagra without a recipe is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.