Ajaxificando

Embed Size (px)

Citation preview

Ajaxificando suas aplicaes

Christiano Milfonthttp://www.milfont.org

MVC Original

... a viso observa o comportamento do modelo para renderizar a interface ...

... o controlador responde a eventos e solicita modificaes no modelo ...

... o modelo gerencia a lgica de negcios e fornece API de acesso.

Migrao para web ...

MVC Model 2

... a viso no enxerga o comportamento do modelo ...

... o controlador assume parcialmente a renderizao da viso ...

... o modelo gerencia a lgica de negcios e fornece API de acesso.

Se aplica a WebWorks Mentawai SpringFlow JSF ...

Struts ...

LoginActionLoginFormLoginVOLoginBODBLoginDAO

Sem fronteiras entre as camadas lgicas...

MVC Model 3?

... a viso escuta respostas do modelo ...

... o controlador devolve responsbilidades da viso...

... o modelo gerencia a lgica de negcios e fornece API de acesso.

Back to the future...

Como funciona hoje...

Como ficaria...

Frameworks Ajax

Um Framework Ajax utiliza as tecnologias: CSS (camada de formatao da apresentao); XHTML (camada de estrutura da apresentancroo); XML (dados a serem manipulados) e JSON (outra especificao do formato dos dados); Javascript (camada de controle) por meio de DOM (modelo de rvore de objetos) e com o objeto XMLHttpRequest (que fornece conexes assnas). Extende essa tecnologias padres com componentes de eventos, efeitos, Drag'n'Drop, entre outros.

O benefcio de se usar um Framework Ajax o encapsulamento da complexidade de manipulao das tecnologias necessrias, fornecendo um s mecanismo Cross Browser que permita a utilizao do ajax com acessibilidade semelhante ao ambiente desktop, alm de facilitar o tratamento dos dados nas as camadas fsicas entre o lado cliente e o lado servidor.

Frameworks Ajax

Um Framework Ajax utiliza as tecnologias: CSS (camada de formatao da apresentao); XHTML (camada de estrutura da apresentao); XML (dados a serem manipulados) e JSON (outra especificao do formato dos dados); Javascript (camada de controle) por meio de DOM (modelo de rvore de objetos) e com o objeto XMLHttpRequest (que fornece conexes assncronas). Extende essa tecnologias padres com componentes de eventos, efeitos, Drag'n'Drop, entre outros.

O benefcio de se usar um Framework Ajax o encapsulamento da complexidade de manipulao das tecnologias necessrias, fornecendo um s mecanismo Cross Browser que permita a utilizao do ajax com acessibilidade semelhante ao ambiente desktop, alm de facilitar o tratamento dos dados nas as camadas fsicas entre o lado cliente e o lado servidor.

Frameworks Ajax

Tipos de Frameworks Ajax

Javascript Multipurpose: frameworks que fornecessem componentes sobre o conjunto de todas as tecnologias web no lado cliente e mecanismos de acesso ao lado servidor, como o encapsulamento do tratamento dos dados.

Javascript Remote: frameworks que so especialistas no encapsulamento do mecanismo de troca de objetos entre as camadas fsicas.

Javascript Specialized: frameworks que so especialistas em somente um determinado comportamento ou mecanismo do conjunto de tecnologias web, como por exemplo: especialistas em efeitos ou somente na extenso do javascript.

Javascript Multipurpose Frameworks...

Javascript Remoting Frameworks...

Javascript Specialised Frameworks...

Tipos de Frameworks Ajax

Mas como ajaxificar?

DWR

Anatomia do DWR

O DWR habilita a interao entre o Java no servidor e o Javascript no Browser, encapsulando a traduo dos objetos entre esses ambientes fsicos diferentes.

O DWR realiza a traduo dos objetos com base na especificao JSON (Javascript Object Notation).

JSON um formato leve de troca de dados baseado em um subconjunto da especificao Javascript mas independente de linguagens.

Anatomia do DWR

JSON (Javascript Object Notation)

http://www.json.org/

Anatomia do DWR

JSON

http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf

"An ECMAScript object is an unordered collection of properties each with zero or more attributes..."Standard ECMA-262 - 3r d Edition - December 1999

Anatomia do DWR

Tudo que precisa para integrar o DWR em seu projeto...

Acrescenta biblioteca dwr.jar ao projeto

Mapeamento dos seus POJOS no dwr.xml

Mapeamento do servlet no web.xml

Importa o Engine e interfaces nas pginas

Faz as chamadas aos objetos mapeados

Manipulao dos POJOS

... o resto voc encontra em http://www.handersonfrota.com.br

Fim! haaaaaaaaaaaa...