7 votes

ColdFusion App aujourd'hui - Flex l'année prochaine. Quels sont les éléments à prendre en compte pour maximiser la réutilisation du niveau logique l'année prochaine ?

J'ai commencé à concevoir une application ColdFusion entièrement basée sur le web. Je n'utilise pas beaucoup de formulaires Flash ou AJAX.

La première version est une application web stricte. La version 2 sera une application frontale Flex.

Je veux concevoir et construire des choses de manière à ce que la couche Flex puisse utiliser la logique existante. Ce n'est pas grave si cela signifie que je dois faire du travail supplémentaire dans la version 1. J'aimerais renforcer le code logique une fois pour toutes et ne pas avoir à le remanier.

Quelles sont les choses qui méritent d'être prises en compte, conçues ou mises en œuvre maintenant et qui aideraient grandement à concevoir une application de cette manière ?

6voto

Ryan Guill Points 6115

Je suis d'accord avec Christian pour dire que la meilleure chose à faire est de mettre tout ce qui concerne la logique de la base de données ou toute autre logique de l'application dans des CFC, et plus spécifiquement, je suggérerais d'utiliser des webservices. La raison principale est que cela vous permettra éventuellement d'avoir votre code CFC, qui est toute la persistance et la logique de votre base de données sur un serveur différent de celui à partir duquel vous servez les applications flex, et permettra la réutilisation du code pour d'autres applications également. L'avantage d'écrire vos cfc en tant que webservices est que vous pouvez les utiliser comme webservices ou directement comme composants dans Flex en utilisant AMF (remote object). Bien sûr, l'étendue de ces avantages dépend de votre situation, mais il s'agit d'un bon plan à suivre.

Mais la principale suggestion est de considérer que votre application comporte une couche de présentation et une couche de logique et de persistance. Si vous prenez une décision, elle sera prise dans la couche logique. Si vous affichez un écran ou faites quoi que ce soit avec la présentation, cela se passe dans cette couche. En gardant ces choses séparées, vous pourrez plus facilement passer de la couche de présentation à la couche flexible par la suite.

Il peut également être utile de piéger les erreurs et de renvoyer les messages en tant que résultats (avec n'importe quel résultat, comme dans une structure) à partir de toutes les méthodes. Flex a la fâcheuse habitude de vous dire que quelque chose s'est mal passé, mais de ne pas transmettre les informations relatives à l'erreur. Cela vous aidera à déboguer et à gérer plus facilement les erreurs qui se produisent.

3voto

RaeLehman Points 919

Vérifier Présentation de Matt Woodward sur le sujet, c'est très instructif :

Et quelques généralités à ajouter aux réponses données par tous les autres :

  • Encapsulez votre interaction avec les données dans des CFC (généralement dans des services qui délèguent à des passerelles et à des DAO).
  • Dans la plupart des cas, vous voudrez créer des CFC de type "bean" pour représenter vos objets métier (utilisateurs, widgets, etc.), qui seront transférés dans Flex sous forme de classes ActionScript. Vous devrez leur ajouter des balises cfproperty pour les rendre sérialisables par ActionScript (sensibles à la casse et à l'ordre !), alors faites attention à cela lorsque vous les créez pour éviter d'avoir à vous en occuper plus tard, et utilisez l'un des outils de génération de code tels que l'outil Extensions Adobe CF pour Eclipse o Illudium PU36 pour le faire à votre place.
  • Créer un CFC de façade distant (ou un ensemble de CFC en fonction de la taille de l'application) qui délègue des méthodes à vos services - c'est là que vous définissez l'accès de vos méthodes à "distant" - généralement le seul endroit où vous voulez faire cela (vous aurez l'impression de faire beaucoup de délégations, mais cela vaut la peine d'avoir tous vos services distants centralisés).
  • Lorsque vous développez avec HTML, considérez vos CFC de façade distants comme votre API et rendez vos vues HTML aussi "muettes" que possible. Pensez-y de la manière suivante : toute logique que vous écrivez dans votre vue CF devra être reproduite dans votre vue Flex. Si vous construisez le projet en utilisant uniquement votre API distante, vous aurez une bonne idée de la manière dont Flex interagira avec l'application.
  • Vérifier Printemps froid Il offre de nombreuses fonctionnalités pour gérer tous les objets que vous allez créer !

Je ne prétends pas être un expert en architecture et je sais que j'ai utilisé beaucoup de jargon pour faire court, mais un peu de recherche sur les blogs des FC devrait permettre d'obtenir beaucoup d'informations sur les modèles de conception que j'ai mentionnés. Bonne chance !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X