Flex/ Flex 3 Open-Source/ Flex MVC

Aplicações modulares, sim ou não?

Está em andamento um debate bastante maduro na lista Flex-Brasil, sobre o uso de aplicações Flex com o uso de Módulos, e como ela se iniciou com um post antigo meu, gostaria de corrigir algumas coisas e re-passar aqui o que falei na lista.

O post é ultrapassado, não vale mais a pena tê-lo como referência já que me referia ao Flex SDK 3.0.184 que foi o primeiro release do SDK e ao Flash Player 9.0.26 que por questões técnicas visto ao fato de usar Module o time do Flash Player atualizou para a versão 9.0.115 que já elimina o problema.

O fato é que o Flex 3.0.2 em seu último nightly build se mostrou capaz de aguentar e suportar bem o uso de Modulos em aplicações que faz uso da técnica.

O MASAPI não usa muito esse argumento ja que não sofreu muita alteração e torna-se desnecessário para esse uso, ja que a falha em sí era do SDK e da versão do Flash Player 9.0.26

Hoje a Adobe lançou o Flash Player 10, fiz todos os testes nele no que diz a respeito de novidades, e todas funcionaram perfeitamente, só alguns picos de memória no Flash Player para o Firefox mais no sentido de uso do 3D e pixel blender juntos.

Voltando ao assunto dos Modules; Eu tentarei escrever como usar de formar racional tomando todos esses cuidados tanto no Flash Player 9.0.115 quanto no novíssimo Flash Player 10.0

Existe algum tipo de receita para criar algo fenomenal em aplicações de grande porte?

Existe sim, o bom censo. Se você tem o seu time de usabilidade, um arqueteto de plantão, use e abuse deste profissional, porém na realidade brasileira é dificil ter ja que muitos aqui são desenvolvedores autonomos ou pertencem a pequenas empresas.

Para solucionar todos esses aspectos de modularizar uma aplicação é preciso estudar qual o principal objetivo de sua ferramenta, o que ela faz de comum e que tipos de classes são mais usadas na aplicação, tendo só isso você ja anda ai meio caminho para fazer a coisa certa.

A dica que foi citada acima sobre fazer o split geral da aplicação rodando-as separadamente é uma alternativa que funciona, porém não aconselho, devido ao fato de tirar o brilho do Flex que é justamente a usabilidade do cliente final, esse tipo de comportamento é tipico de quem veio do Java e criou ou cria muito applets, na atual conjuntura do Flex e Flash Player não é necessario esse tipo de comportamento.

Para facilitar melhor o que eu posso dar como conselho, eu separei uma lista de perguntas que você pode acrescentar a esse tópico, eis que são:

1. Minha aplicação é pequena, eu posso usar Modulos?

R: Não é necessário, ja que ela não depende muito dessa função, porém se ela for pequena e ser usada por até 1mil usuários diários, você precisa usar o Profile do Flex para tentar reduzir o tamanho máximo que puder, Usar Framework cache para eliminar o mal uso de sua banda e por final usar RSL, essa gama de soluções podem trazer um bom censo final à sua aplicação, tendo ela um funcionamento redondo e eliminando ai as arestas de reclamações pelo usuário final.

2. Minha aplicação é de médio porte, O que devo usar?

R: Quando se fala em tamanho de aplicação, tem gente que estufa o peito e diz, minha aplicação tem 200 telas, 500 formulários e faz n operações. Lembre-se que o número de telas não conta na hora de medir o tamanho da aplicação, mais sim o número de operações que essa aplicação se resolve. Por exemplo eu já vi em uma empresa que fomos fazer consultoria usarem 10 telas para fazer 3 operações,isso é uso desnecessário de telas. Sempre que for desenvolver uma app que ela seja de caráter de no mínimo umas 100 operações, ela ja tem esse sobrenome de “médio”, procure enxugar ao máximo o número de telas para resolver essas operações, quanto menos telas, e mais objetividade que elas apresentam, melhor é a experiência do usuário com a sua aplicação.

Procure usar os mesmos recursos da primeira pergunta, e adicione a receita Módulos, LinkReport para reduzir, e enxugue ao máximo o uso de telas, remova as desnecessárias. Com isso você ganha mais.

3. Tenho uma aplicação de médio porte que usa um número N de telas e Módulos, como posso administra-las melhor?

R: Começe a usar um framework MVC, ele será seu melhor amigo nessa situação, embora muita gente se esqueve ao usar MVC, trantando assim ao grosso modo de usar apenas o padrão do flex para desenvolver a aplicação. De fato funciona, mais se alguém da equepe mudar de emprego, ou ter morte, você terá dores fortes de cabeça ao tentar advinhar o código ninja que ele fez para você. É sempre bom você seguir padrões de convenção(http://opensource.adobe.com/wiki/display/flexsdk/Coding+Conventions) junto com sua equepe, quando falo de equepe eu me refiro no mínimo até 2 pessoas. Procure adotar os novos padrões do Flex, assim é menos prejuízo de tempo. Use as técnicas aplicadas no 1 e 2, elas te ajudaram a decidir melhor, juntamente com um framework MVC.

4. Minha aplicação é de grande porte e missão crítica o que posso fazer para melhora-lá?

R: Toda aplicação seja ela pequena ou grande, deve-se preocupar com questões de segurança, você sabe que o SWF é de formato aberto, então qualquer um pode descompilar seu swf mesmo vindo do Flex. Então nunca coloque algo que vá comprometer sua aplicação final. Sempre pense da seguinte forma:

* Nunca use dados importantes ou tente manipula-los diretamente do lado cliente
* Use uma camada de layer profissional com AMF3, pode ser em Java,C++,PHP,ColdFusion
* Trafegue ao máximo dados de importância encriptando-os em casos de operações bancárias
* Use o protocolo rtmp.
* Use as dicas do 1,2,3 para sua aplicação em adição ao fato de um boa arquetetura
* Procure reduzir o tamanho final do SWF principal ou carrega-lo em cache.
* Grande parte da regra de negócio da sua aplicação é melhor ficar no lado servidor
* Use sempre MVC

Em fim, tem um mar de infinidade de informações que te ajudam à melhorar a maneira como você cria as suas aplicações, sempre tente melhora-las mas nunca tire o foco da ferramenta em sí que é funcionar.
As dicas acima são parte de um documento nosso, então são casos hipotéticos e em alguns casos não é nossa opinião final sobre uma determinada coisa, já que são n fatores que definem essas regras.

Sim, aplicações modulares são aplicáveis, dependendo de cada caso como mostrado acima.

Design Patterns/ Dicas/ Flex/ Flex MVC

9 frameworks MVC que você pode usar em seu aplicativo Flex

Metodologias de desenvolvimento estão surgindo feito a grande bolha da internet, até parece a explosão das lan houses em todo canto tem um.

Aque vai uma lista de 10 frameworks MVC que você deve considerar na hora de desenvolver seu aplicativo com multiplas camadas de interface e assim facilitar o fluxo de eventos e traduções de dados.

Estamos criando a segunda parte da série “Planejando uma aplicação RIA de sucesso“. E um dos tópicos que abordamos é MVC e Flex.

Cairngorm Рfa̤a o download
PureMVC Рfa̤a o download
Model-Glue: Flex Рfa̤a o download
Foundry (download) Рfa̤a o download
Guasax Flex Framework Рfa̤a o download
ARP Рfa̤a o download
Flest Framework Рfa̤a o download
easyMVC Рfa̤a o download

[Atualizado 17/06/2008]
Mate Flex Framework Рfa̤a o download