2009-10-08 7 views
4

J'ai un système qui a des objets côté serveur Java et des objets client C#. Les objets peuvent être modifiés des deux côtés du système et ainsi avoir des règles métier qui leur sont attachées. La chose est actuellement les règles métier ne vivent que du côté serveur, et je veux vraiment éviter d'avoir à contacter le serveur chaque fois que je veux vérifier les objets. Donc, idéalement, je veux avoir des règles métier partagées qui peuvent être utilisées en C# et en Java, donc quand une modification est nécessaire, je ne l'applique qu'à un seul endroit (et évidemment je la déploie en 2).Règles métier partagées pour les objets C# et Java

Quelqu'un at-il des suggestions sur la façon dont je pourrais faire à ce sujet?

+1

j'aurais suggéré d'exposer les règles métier comme des services Web, mais cela voudrait dire contacter le serveur pour vérifier les objets métier, que vous voulez éviter. Je suis intéressé de voir s'il y a une bonne solution là-bas. – Jay

Répondre

5

Cela peut sembler terrible au début, mais vous pourriez en fait envisager de coder les règles de gestion en javascript.

Il existe des moteurs javascript disponibles sur les plates-formes Java et .NET. De cette façon, en hébergeant un moteur javascript (différent) à la fois sur le serveur (java) et le client (C#), ils peuvent tous deux exécuter le même javascript pour appliquer les règles métier. Pensez-y comme le langage de prédilection de votre entreprise. Ce n'est pas non plus un mauvais choix pour la tâche, car elle est laconique, flexible et bien connue.

J'ai déjà fait quelque chose de similaire pour mettre en place des règles de jeu flexibles dans un jeu java. Les moteurs Javascript sont étonnamment simples à mettre en place, et de nos jours, ils deviennent très rapides aussi.

+0

Une idée intéressante, je vais y jeter un coup d'oeil :) –

+0

Cela fait un moment, mais cela a beaucoup mieux fonctionné que l'IKVM :) –

+0

La mise en œuvre de ce dans Android en utilisant Rhino est également un bonus. –

2

Essayez d'utiliser IKVM

+0

Hé, c'est cool. –

+0

Cool, je vais y jeter un coup d'oeil :) –