2011-07-20 4 views
0

Autant que je sache, les modules peuvent être utilisés pour diviser une application en différentes parties.Quel est le sens des modules Flex

Un gros avantage semble être de pouvoir charger le module après le démarrage de l'application, pour obtenir de meilleures performances au démarrage.

Personnellement, j'aimerais que les modules me permettent d'avoir une propre Sandbox de code pour le code du module. Ainsi, ni le code de l'application principale, ni le code du module ne doivent s'influencer mutuellement. Mais par exemple, les styles CSS des modules influencent l'application principale par un visa vers.

Ma question: 1. Que puis-je utiliser pour les modules à côté de Runtimeloading? 2. Existe-t-il des options pour exécuter du code dans un sandbox? Par exemple via le chargement de ressources swf?

+0

Voulez-vous dire "Quel est le point du module Flex"? – Taurayi

+0

Ce serait comme ça. Quel est le but des modules Flex, à côté de Runtime Loading? – Dukeatcoding

+0

duplication possible de [Flex: Quelle est la différence entre un "composant" MXML et un "module" MXML?] (Http://stackoverflow.com/questions/1008245/flex-whats-the-difference-between-an-mxml -component-and-an-mxml-module) – splash

Répondre

4
  1. Que puis-je utiliser des modules pour l'exécution à côté de chargement?

Vous pouvez diviser votre application en morceaux distincts - Par exemple, vous ne pouvez mettre à jour la partie de panier d'une application plutôt que l'ensemble de l'application. Cela vous permet de le faire sans déployer à nouveau l'ensemble de l'application. Cela force une bonne abstraction et signifie moins de tests de régression/bogues.

Un autre avantage est la sécurisation des fichiers swf eux-mêmes. J'ai écrit des applications finales où un utilisateur pourrait être en mesure d'accéder à l'écran des commandes, mais pas l'écran de gestion des utilisateurs. Parce que chacun est un modules, le client n'a même jamais l'occasion de voir (ou décompiler) le code swf de gestion des utilisateurs - parce que je peux valider le côté serveur de session de l'utilisateur quand ils essaient de charger un module. C'est une couche de protection supplémentaire.

Gestion de la mémoire: il ne s'agit pas seulement de charger l'application, mais aussi de gérer le chargement de toutes ces fonctionnalités en même temps. Si un utilisateur n'a besoin que d'un ou deux écrans, pourquoi charger les 98 autres écrans?

Portabilité et réutilisation de code. Vous pouvez utiliser le module "Order Viewer" à la fois dans une application destinée aux consommateurs et dans un outil dorsal. Ce ne sont certainement pas la même application, mais ils ont tous les deux besoin des fonctionnalités de base de la visionneuse d'ordre. Mieux encore, une application entièrement différente pourrait utiliser cette même fonctionnalité.

  1. Y at-il des options pour exécuter du code dans un propre bac à sable? Par exemple via Chargement des ressources swf?

Il y a des considérations spéciales pour la communication entre les modules, voici une bonne lecture pour vous:

http://livedocs.adobe.com/flex/3/html/help.html?content=modular_2.html

+0

Pour le sandbox, je voudrais ajouter que la propriété 'applicationDomain' de ModuleLoader fait exactement cela. –

+0

Thx 4 votre réponse Nate étend mon point de vue sur l'utilisation des modules. Et Jax thx pour l'applicationDomain, je l'ai totalement perdu de vue. Peut-être que cela résout mon problème – Dukeatcoding

1

Vous pouvez autoriser un module de traiter séparément avec ses styles en créant une nouvelle SystemManager pour sa flexModuleFactory, et vous pouvez le charger dans un domaine d'application distinct à des fins de sécurité.

Pas vraiment une réponse à la question que vous avez posée, mais elle répond aux problèmes sous-jacents que vous aviez.

Nous avons utilisé des modules lors de mon dernier travail pour nous permettre de développer et d'ajouter de nouvelles fonctionnalités à la volée - le chemin vers le module serait stocké dans une base de données et chargé au moment de l'exécution.

HTH;

Amy

+0

bonne idée avec les modules stockés dans la base de données, je pense que l'applicationDomain est vraiment l'aspect que j'ai totalement oublié jusqu'à présent – Dukeatcoding

Questions connexes