Question

Je travaille sur un projet qui a un site Web dans Rails et une interface graphique C # qui utilisent les mêmes bases de données et des modèles de données. Je voudrais partager les modèles (actifs) entre les deux parties. Toutes les idées sur la façon dont cela est possible?

Était-ce utile?

La solution

IronRuby est exactement pour cela.

Vous devez exécuter Ruby on Rails avec IronRuby (vous pouvez le faire via IIS aussi) et ensuite vous pouvez appeler vos ensembles de C # comme ils étaient les bibliothèques Ruby.

Quelques ressources pour vous aider à démarrer:

  • http://IronRuby.net - site officiel avec une documentation (pas complète mais vous trouverez quelques bonnes infos il)
  • http://www.IronShay.com - mon blog avec plusieurs messages sur IronRuby. Vous pouvez également me contacter via son formulaire de contact si vous avez besoin de plus directions
  • http://www.ruby-forum.com/forum/34 -. la liste forum IronRuby / mailing, réponses aux questions par les membres de la communauté IronRuby et les membres de l'équipe et

Autres conseils

La réponse courte est que vous ne pouvez pas sans les redéfinir sur le C # IUG. Vous pouvez exposer les contrôleurs comme WSDL / SOAP au lieu des choses reposant, alors vous pouvez avoir visual studio générer les procurations pour vous. C # est vraiment mauvais à des choses dynamiques vous ne pouvez pas simplement prendre les modèles de rubis et de les réutiliser en C #, car ils doivent être compilés.

Vous pouvez bien sûr écrire votre propre outil de génération de proxy pour les ressources « reposant » des rails, mais à la fin de la journée, vous devrez dupliquer le code de modèle en quelque sorte.

Comme shay dit que vous pouvez utiliser IronRuby pour combler l'écart, mais cela dépend-vous souhaitez réutiliser les classes ActiveRecord ou utilisez-vous le site Web comme point d'obtenir les données? Lorsque vous souhaitez réutiliser les modèles activerecord alors IronRuby est le moyen d'aller parler à votre base de données (mais pour obtenir une bonne intégration avec C # vous devez créer de solides emballages dactylographiés autour des modèles, donc je ne vois pas vraiment le point) .

La première chose qui vient à l'esprit pour moi serait d'exposer web RESTful services de l'application Rails, et consomment ces services dans votre C # application cliente. Je ne sais pas d'une façon d'éviter les doubles emplois si vous voulez POCO est dans votre application C # - peut-être écrire un modèle CodeSmith ou T4 qui lit schema.rb et génère de POCO

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top