Adobe Flex - Discussão geral

bogos

Power Member
Boas,

gostaria de iniciar aqui um tópico dedicado ao Adobe Flex visto já existirem umas quantas pessoas aqui no fórum que conhecem o produto.

Sou o manager do Adobe User Group em Portugal e gostaria de saber se usam o produto e em que âmbitos ou se não for o caso, porquê? Pontos fortes/fracos?
 
Bom tópico!

Eu ando interessado há já vários meses, mas ainda não tive oportunidade de experimentar, em grande parte porque a empresa onde estou inserido, ainda tem muitas aplicações "legacy" (mesmo legacy....software interno com mais de 10 anos).

Uma coisa que ainda não percebi muito bem, o Flex depende de outras linguagens Server-side, correcto?
Então qual a verdadeira vantagem de utilizar uma framework sem essas capacidades? É só por ser um SWF?

desculpa lá qualquer engano meu, mas flex está muito verdinho aqui por estas bandas ;)

cumps
 
O simples facto de fazeres 1x e funcionar de igual forma em qualquer browser e qualquer sistema é uma grande vantagem.
 
Última edição:
mas isso tu também consegues com um Perl, ou um ASP ;)

edit:
a única vantagem que me chama atenção no flex (também o que conheço é muuito pouco...), é o reduzir de HTML/CSS no código do core da aplicação.
Vá vendam-me o vosso peixe :p
 
desculpa lá, um site em asp corre tão bem aqui no meu estaminé como na linuxlandia (css-hacking).

só isso? a mim pouco me importa o server, desde que os 8cores não peguem fogo... :p

Então imaginemos, uma app toda pipi, para capturar dados de uma base de dados, precisa que o ServerSideScript lhe retorne um XML (presumo) e depois a RIA vai manipular os dados?

Já agora, em termos de IDE, debugging, e essas cenas todas jeitosas para os programadores, como anda o Flex?
 
Eu uso quase diariamente. A minha empresa desenvolve exclusivamente em flex. Temos desde gestores de produção a gestores de cargas, passando por catálogos, temos outros projectos e outras áreas a explorar, mas por agora é totalmente impossível, infelizmente.

Para mim o ponto forte do flex acaba por ser ser a sua flexibilidade, é simplesmente brutal o que se consegue fazer, quer de raiz quer adaptado.
Agora com o air, que infelizmente ainda não tive tempo para começar a brincar a sério com o mesmo, mas que vou ter de começar muito em breve a trabalhar sobre ele, ainda mais horizontes se conseguem cavalgar.

A nível de dados nada a assinalar. Vou dar o meu caso pessoal, que utilizo quase sempre FluorineFx e não podia estar mais contente quer com a velocidade, quer com a fiabilidade. O flex recebe os dados "a papinha" e depois faz o que bem entender deles. Para mim esta distribuição de funções é importante, custa-me estar a meter o trabalho todo em cima do servidor (nem gosto disso sequer) quando o cliente tem a maquina a "pastar" sem nada estar a fazer..

A nível de IDE, debugging, e essas cenas todas jeitosas para os programadores, a minha opinião é muito positiva, o debugging é muito bom, o IDE é simples, pratico e rápido de se utilizar.

A maior vantagem de todas?! Ser uma RIA.
 
Última edição:
O Flex é o presentation tier da tua aplicação, podes usar o que quizeres como back-end, java, .net, CF, PHP, Ruby, Python ...

Algumas das vantagens do Flex :
Remoting <> Webservices e REST - visto usar AMF e este ser um formato binário compacto, a nível de consumo de largura de banda, consome muito menos o que irá tornar a aplicação mais rápida a obter os dados.
Permite conversão de DTOs directamente server-side para client side e vice versa, portanto podes ter uma classe Java mapeada para uma classe AS3 e obteres conversão automática sempre que o teu back-end envie uma instância dessa classe.

Há quem diga que o peso de uma aplicação Flex é enorme visto gerar swf grandes. Isto é parcialmente verdade visto poderes recorrer a vários métodos para reduzir o tamanho do swf. Podes usar o cache do flash player que irá guardar uma cópia do core do framework ( por versão ) e que será partilhado por todas as aplicações web que usem a mesma versão.
Assim o tamanho decresce práticamente de quase 400 k. Podem de seguida recorrer também a runtime shared libraries ou mesmo a modules, que são swfs separados um pouco como se faz muito hoje em dia em flash...

Guardo o resto para mais lá para a frente :)
 
podes ser mais especifico? flexibilidade é muito vago... ser uma RIA a mim também não me diz grande coisa... ;)

'Pera lá: FluorineFx não é para interligar com o .Net?

Já agora AIR/Flex: afinal quais são as diferenças (se é que há) no deployment? Ou seja, uma Flex é um SWF, certo? Uma app AIR, não é também um SWF, mas que corre sobre SO (sem ter como intermediário o Browser)?

edit: Ou seja, o Flex permite eliminar os HTML's e afins, correcto? A parte de conexão de dados é feita por uma outra linguagem de servidor.
Não querem dar um exemplo simples de um "Hello World"? ;)

Por exemplo, se quiser construir uma app robusta, imaginemos, um software de facturação com parte de contabilidade integrada neste, o Flex permite construir este genero de app, que normalmente, são n EXE's, muitas DLL's, mais umas quantas RunTimes de VC++ que são necessárias? Ou seja, não ficaria um SWF com uns 10MB/20MB (fora os serverside-scripts)?
 
Última edição:
Não só tens debugging como tens profiling também no Flex Builder, o que permite analisar o teu código, onde ele está a falhar, inclusivamente veres onde tens objectos que não estão a ser eliminados da memória, coisa que muita gente não faz e depois culpam o Flash :P

O Flex Builder é baseado em Eclipse, pode ser como standalone como plugin numa instância de Eclipse já existente.
Existem no entanto outras soluções como o Flash Develop mas que não tenho experiência com elas.
 
podes ser mais especifico? flexibilidade é muito vago... ser uma RIA a mim também não me diz grande coisa... ;)

'Pera lá: FluorineFx não é para interligar com o .Net?

Já agora AIR/Flex: afinal quais são as diferenças (se é que há) no deployment? Ou seja, uma Flex é um SWF, certo? Uma app AIR, não é também um SWF, mas que corre sobre SO (sem ter como intermediário o Browser)?

Flex corre dentro do browser contido numa sandbox do flash player, já uma aplicação, esta corre... no AIR como aplicação desktop e logo a sandbox associada é ligeiramente diferente.

As aplicações AIR não precisam de ser criadas baseadas em aplicações Flex, podem muito bem criar um site totalmente em HTML e converte-lo para aplicação AIR e tirar partido das suas APIs.

Outra vantagem, é que no AIR, o DOM do HTML passa a ser considerado um displayObject como no Flash, logo pode ser manipulado como qualquer outro objecto dentro de um flash como por exemplo, aplicar efeitos.
 
O João Fernandes já disse tudo. Outro exemplo é os limites de acesso que tens à maquina em que a aplicação está a correr. Um simples exemplo é que se tiveres de aceder e manipular ficheiros que estejam no pc que estás a utilizar, o air consegue fazer isso sem ter de enviar o ficheiro para o servidor.

FluorineFx "é .net" sim senhora :P é uma opção, depende do cliente, depende do ambiente empresarial que estejas a trabalhar, eu gosto :P

Com flexibidade quero dizer a criação e alteração rápida de componentes do flex, sim eu sei que é a mesma treta em todas as linguagens, mas experimenta e vê por ti ;)
 
A maior diferença entre o flex e o air é os limites de acesso que tens à maquina em que a aplicação está a correr. Existem mais diferenças naturamente, mas para mim esta é a principal.
Um simples exemplo é que se tiveres de aceder e manipular ficheiros que estejam no pc que estás a utilizar, o air consegue fazer isso sem ter de enviar o ficheiro para o servidor.

FluorineFx é .net sim senhora :P é uma opção, depende do cliente, depende do ambiente empresarial que estejas a trabalhar, eu gosto :P

Com flexibidade quero dizer a criação e alteração rapida de componentes do flex, sim eu sei que é a mesma treta em todas as linguagens, mas experimenta e vê por ti ;)

Esse exemplo deixará de ser argumento com o lançamento do Flash Player 10, que está brevemente a sair :)

Pessoalmente eu uso CF como back-end mas recorro também a LCDS para providenciar Real-time data nas aplicações... coisa que não é possível com HTML, podes simular algo semelhante mas sempre através de polling... com Flex podes fazer data-push do servidor para o cliente :)
 
Muito bom tópico bogos. Como estou a pensar dedicar-me um pouco ao development vou ficar atento a ver o que se aprende por aqui.:p Bela iniciativa.

Cumps,
michael c

PS: Vai ser dificil convencer o Armadillo.:)
 
E pontos fracos, quais acham são os maiores do Flex?

Desculpem-me o interrogatório... é que ando muito interessado em eliminar o HTML da minha vida :-D

@michael: não vai nada :p

edit: não arranjam aí um diagrama a mostrar o funcionamento genérico do Flex?

Thx ;)
 
E pontos fracos, quais acham são os maiores do Flex?

Desculpem-me o interrogatório... é que ando muito interessado em eliminar o HTML da minha vida :-D

@michael: não vai nada :p

Pontos fracos? neste momento direi o workflow entre programador e designer, este ponto será colmatado com o novo produto deles chamado Thermo e do novo framework (Flex4 + nova arquitectura) que irá permitir uma integração sem falhas entre estes dois pontos.

Apesar da interacção ser possível entre os 2 pontos, é algo que tem de realmente ser corrigido.
 
João eu sei ;) Mas como ainda só anda em beta não referi isso, mas uma coisa é certa, o flash 10 vai abalar ainda mais isto tudo :) tem/irá ter funcionalidades fantásticas.

A nível estático o facto de passar a ser possivel manipular facilmente o eixo dos Z vai ser um mimo :D

Armadillo: http://livedocs.adobe.com/flex/3/html/index.html tens aí muita info para leres. O diagrama que pedes digo eu que já o vi algures por esses lados ;)
 
Última edição:
Resumindo:
Linguagem: Actionscript (v >2.0)
IDE: Eclipse e derivados
DataConnector = Externo (ASP, PHP, Perl, outras ServerSide)
HTML = 0 (huuuuhuu!!!)

Já agora, existe alguma integração com o Coldfusion?

edit: isto não é só EyeCandy e Hype? Manipular no eixo dos ZZ, isso não é preciso para nada num Software de uma empresa comum :s
 
Já agora, aproveito o tópico para esclarecer algumas dúvidas.:p Aos mais experientes com esta tecnologia, se eu quiser realmente começar a aprender, por onde devo começar? Na plataforma lynda.com existem vários cursos sobre FLEX. Foi assim que aprendi quase tudo do pouco que sei.:p Mas atendendo a que eu quero dedicar-me realmente mais a esta área de developing (no âmbito web) por onde devo começar? Recomendem tudo o que quiserem.

Não me interessa partir de imediato para as tecnologias se eu não tenho conceitos/conhecimentos base. Por isso fiquem à vontade para recomendar manuais se quiserem. Os únicos conhecimentos que tenho são a nível de actionscript, mas pouco, nada de muito elaborado. Estava a pensar aprender HTML+CSS para começar, depois partiria para algo dinâmico do género PHP ou ASP (penso que em termos de mercado de trabalho será melhor aprender PHP). Só depois passaria ao Flex (Daqui a uns 10 anos depois de aprender o que já mencionei.:p).

Mas a questão essencial é: como começar? Por onde? Sinto realmente falta dessa componente do developing e iria ser muito vantajoso para mim aprender. Peço a vossa ajuda nesse aspecto. Estou realmente determinado e só preciso de alguma orientação.:D Obrigado desde já.

Cumps,
michael c
 
E pontos fracos, quais acham são os maiores do Flex?

Desculpem-me o interrogatório... é que ando muito interessado em eliminar o HTML da minha vida :-D

@michael: não vai nada :p

edit: não arranjam aí um diagrama a mostrar o funcionamento genérico do Flex?

Thx ;)


Depende do que pretendes visualizar... existem tantas formas de representar mas fica aqui o seguinte resumo

Flex SDK + compiler (Grátis http://opensource.adobe.com)
Permite criar aplicações baseadas em Flex ( o framework ) e compilar sem pagar 0.01€ à Adobe
Flex Builder ( pago mas facultativo)
Editor baseado em Eclipse para desenvolver aplicações Flex

O Flex destingue-se do Flash pelo facto que a criação de interfaces faz-se através de mxml( a linguagem declarativa baseada em XML) e ActionScript 3 o que se torna mais fácil para programadores se adaptarem.

O Flex é subdividido em diversos blocos, managers, componentes visuais, validadores, formatters etc
Para aceder a dados existem 3 formas principais, REST, WebServices e Remoting.
Enquanto que os 2 primeiros circulam por um canal HTTP o remoting (assim como Messaging ) podem circular por um canal HTTP ( em formato AMFX ) ou por um canal RTMP (AMF)

Todas as chamadas remotas no Flex são Assincronas enquanto que no AIR existe a possibilidade de trabalhar de ambas as maneiras, sincronas e assincronas.

Poderia continuar mas não sei que aspectos concretos procuras saber...
 
Back
Topo