Semana passada dei aulas sobre Modulos na minha turma de Flex no curso da e-Genial, vou colocar aqui algumas considerações (nada muito diferente doq ja foi dito)
a) procure contextualizar seus modulos em sub-sitemas. Por exemplo: Seu sistema principal tem área de "Estoque" e "Financeiro". Entao, crie dois modulos para cada área, onde TUDO oq for relativo a Estoque fique dentro de seu respectivo modulo, assim como no financeiro, relatorios, etc. Obviamente q isso requer uma analise melhor do seu projeto como um todo. b) Se um modulo for "exclusivo" daquela app, entao utilize a otimizacao. c) Criar um modulo para cada operacao é um tiro no pé. Vc facilita a sua vida de programador (organizacao do codigo e tal) mas complica pro usuario ter q toda hora ficar carregando um swf a mais. Lembre-se q o ModuleLoader extends de SWFLoader, portanto carregar diferentes modulos para cada tela é totalmente desnecessário e muito mais pesado. d) Para fazer comunicação de dados entre Modulos => App use parenteApplication. Ja entre Modulos => App => OutroModulo dispare eventos e faça seus modulos implementar uma interface em comum que será o acessor da Application poder acessar o modulo destinatario. e) Nesse caso de comunicacao por eventos, use listeners com referencia fraca (weakReference=true). Também, sempre remova os listeners qnd puder. f) Nao reaproveitar ModuleLoaders (isso é interessante). Usar um moduleLoader para cada Module é mais performatico doq reaproveitar o mesmo moduleLoader para carregar varios Modules (isso tb é um misterio :S). Obviamente q nao se esqueça de destrui-lo depois q nao precisar mais do modulo. g) terminou de usar o module e matou o seu module loader, entao pede pro gc te dar uma força =D (faça a pesquisa q a gabi recomendou e veja as tecnicas para isso, incluindo a do LocalConnection q é um grande misterio =P) Obviamente q tudo isso ainda nao irá resolver totalmente a questao, mas ajuda bastante. Recomendo a leitura do e-mail deste email (repare na data: http://groups.google.com.br/group/flexdev/browse_thread/thread/d177cfe63c56c4ad?fwc=1&pli=1) e tb o link q ele sugere no proprio email. Outro documento importante sobre "Sub Applications" é esse, extremamente recomendado, onde é falado sobre o Marshal Plan: http://livedocs.adobe.com/flex/3/loading_applications.pdf Vamos ver agora no FP 10.1 final como isso será tratado. Me parece q vi (senao me engano foi no proprio bug jira da adobe) q isso será totalmente resolvido... tomara. Mas enfim, em dois grandes projetos q trabalhei com modulos, na boa, problemas de memoria era oq menos me preocupava. []s (Ps: Vi q esta desenvolvendo para a Totvs né? Recomendo vc conversar com a galera fera de Flex q fica em Joinville-SC - q ja trabalhavam na Datasul - eles podem te ajudar bastante. Procure pelo Arian, Diefrei e tem tb o Fabio Gol, mas esse ultimo acho q ja nao trabalha mais na Totvs. Tem muita gente boa la q pode te ajudar.) Em 10 de maio de 2010 12:56, miso <[email protected]> escreveu: > Olha Helio, não se desespere, jajaja... > > Minha humilde recomendação, e que não faça seus módulos dentro de um só > projecto, ainda mais se tem vários módulos. > Porque, francamente, não faz muito sentido no caso do flex, a distribuição de > peso e terrível, cai tudo sobre o aplicação principal e se perde o > conceito de distribuição de carga. > Posso apostar que sua aplicação principal está com um tamanho enorme e > seus módulos muito pequenos em comparação. > > A melhor jogada é: > - criar um projeto commons para as classes em comun > - agregar no build path do app principal o projeto commons como RSL > - fazer cada modulo em um projeto separado, só dele, e setar no build-path > como 'external' o seu projeto commons > - a o facer o release final do seu sistema, gerar um link report do seu app > principal introduzindo *-link-report=C:\report.xml *no compiler > - e por ultimo, em cada modulo, agregar no compiler * > -load-externs=report.xml**. *(depois de copiar o xml gerado, no root de > cada projeto). Isto irá prevenir que cada módulo recarga as classes que já > estão carregadas no aplicativo principal. > > como falou o @bruno, em módulos, cada caso e um caso... > > bom, tai... > > > -- > La alegría se multiplica, cuando la dividimos > > -- > Você recebeu esta mensagem porque está inscrito na lista "flexdev" > Para enviar uma mensagem, envie um e-mail para [email protected] > Para sair da lista, envie um email em branco para > [email protected] > Mais opções estão disponíveis em http://groups.google.com/group/flexdev > -- Mario Junior http://blog.mariojunior.com/ @mariojunior -- Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para [email protected] Para sair da lista, envie um email em branco para [email protected] Mais opções estão disponíveis em http://groups.google.com/group/flexdev
