Flex e Java - Dicas

Pessoal,

Alguem tá em algum projeto “grande” que utilize Flex e Java?
Sabem as limitações?
As possiveis integrações, com JSTL e Struts?
Validações Client-Side são possiveis?
O ambiente local ideal, se usam o Flex Builder 2 ou algum outro plugin?
Como construir os MXMLs de forma mais facil para reaproveitamento e etc (Tiles e/ou includes de MXML)?

Vi alguns tutoriais na internet mas nada que me dê sustentação!

O cliente quer em Flex + Struts para ser o projeto piloto! A ideia é migrar as outras aplicações para o Flex…

Vlw!

Caro rodrigoallemand,

Atualmente ando pesquisando sobre uso do Flex com Java. Basicamente você pode criar sua camada de apresentação usando Flex(criando seus mxml’s e suas classes de ActionScript) e interagir com o back-end de 3 formas:

  1. WebService
  2. HttpService
  3. RemoteObject

A 2ª alternativa permite que você use o serviço de Http para qualquer linguagem que dê suporte, portanto você pode usar jsp, struts, html, asp.net perfeitamente. Pro caso de Java, você pode inclusive trabalhar com Spring e Hibernate, fazendo algumas poucas configurações. Você não trabalha com jstl porque a camada de apresentação é de inteira responsabilidade do Flex.

A 3ª permite você executar chamadas diretas à classes java( essa abordagem é considerada a mais rápida).

Você pode ser mais específico quanto à limitações? Em linhas gerais, uma de suas preocupações principais é o tamanho do swf, já que precisa ser feito o download do mesmo pra então sua aplicação estar disponível. Existem abordagens em que você pode modularizar sua aplicação criando swf’s carregados somente quando são chamados, ou criando arquivos .swc(se não me falhe a memória) que podem ser usados como biblioteca.Outro problema seria quanto à detecção do Flash Player na máquina do usuário, mas o Flex Buider te auxiliar a criar um html wrapper do seu swf, com o javascript de detecção do mesmo.

O conceito de validações é um pouco diferente, por causa da natureza da aplicação. Quando você usa Flex, seus mxml’s e .as são compilados e geram um ou mais( a depender das opões arquiteturais de modularização que citei acima) swf’s. Quando você realiza a chamada pelo browser, ele faz o download do swf localmente, e, usualmente, você pode usar as próprias implementações de validação do flex pra tratar seus dados. Ainda sim, existe um objeto chamado ExternalContext(acho que é esse o nome), que permite que você faça chamadas javascript.

O Flex Builder é uma mão na roda pra desenvolver as interfaces, trabalhar com componentes e realizar testes também, ele pode ser usado como IDE separadamente, ou instalado como plugin no Eclipse. Você pode reusar componentes declarando sua localização via namespace no arquivo principal( o que contém a tag mx:application).

IMHO o Flex permite desenvolver uma aplicação de forma consistente(ao menos em um tamanho não muito grande de sistema), mas seria interessante você saber antes de se aventurar no Flex que tipo de requisitos suas aplicações vão demandar. Porque falo isso? Porque você não faz relatórios usando Jasper+IReports, você tem que usar o Flex Chart, que é uma opção paga ( o Flex SDK é open-source mas p Flex Chart não).

Desculpa a falta de referências aos link’s (estou sem acesso a eles aqui do trabalho), mas de cabeça existem esses que você pode explorar:

Flex Architecture
Adobe Labs - Flex
Flex com Java

Espero ter ajudado 8)

[]'s