2009-06-16 8 views
1

J'ai une application serveur Java et une application client Flex. Pour mon modèle de données, j'ai des objets typiques, comme User etc., qui sont fondamentalement les mêmes dans la base de données, le code Java côté serveur et le code AS côté client. I. e., Les champs publics de mes classes AS et Java sont nommés de manière identique, et ont les mêmes types et valeurs que les champs respectifs dans la table de base de données qui a le même nom que ces classes.Puis-je créer des classes Java côté serveur, un mappage OU et des classes AS côté client à partir d'une seule description de modèle?

Pour que les classes Java et les tables DB correspondent, je peux utiliser n'importe quel ORM. Y a-t-il des outils pour que les classes AS (et, idéalement, le code standard de Remoting correspondant) soient également générées à partir des classes Java? J'ai jeté un coup d'œil à BlazeDS, mais ça ne semblait pas avoir d'outils comme ça, au moins je n'ai rien trouvé à ce sujet.

Bien sûr, dans un monde parfait, je décrirais mes éléments de données une seule fois et je ferais en sorte que le DDL, le code Java et le code AS soient tous générés automatiquement. Un tel outil existe-t-il et est-il suffisamment utilisable?

Oh oui, et ce serait bien si le format source pourrait être des fichiers protobuf ...

Note: Cela semble être la même question que this one. Les réponses semblent indiquer qu'au moins il n'existe pas d'outil commun que «tout le monde utilise» ou qui a la réputation d'être de grande qualité.

Répondre

0

Les seuls outils que je connais sont pour générer AS classes de code serveur sont les assistants intégrés dans Flex Builder pour autogenerating les classes AS à distance de ColdFusion CFC pour une utilisation avec un ColdFusion service AMF basé. Ce qui peut être utile à retenir est qu'une fois que l'objet sérialisé a été reçu par Flex et qu'une instance de mx.utils.ObjectProxy a été créée pour cela (ceci concerne la classe RemoteObject et les services AMF, mais j'imagine qu'un L'extension du tampon de protocole suivrait le même modèle), le processus de conversion du proxy en une classe Actionscript n'est pas si compliqué. Tant que votre classe Actionscript a des propriétés ou des accesseurs dont les noms correspondent aux propriétés de l'objet sérialisé et un alias d'objet distant correspondant au type de l'objet sérialisé, vous pouvez convertir le proxy d'objet en classe distante sans avoir à le faire tout travail supplémentaire. Comme je l'ai dit, je ne suis pas au courant d'un outil qui fait ce que vous voulez, mais il ne serait pas trop difficile de créer un outil pour lire le type et les propriétés publiques de vos classes Java, ou extraire le même des métadonnées à partir de vos fichiers de tampon de protocole, et écrivez du code ActionScript à partir de cette métadonnée. Si vous ne trouvez pas de solution adaptée à vos besoins, vous pouvez envisager d'écrire une tâche Ant ou un script ou quelque chose pour le faire pour vous. C'est ce que je ferais de toute façon.