0

我正在开发一个项目,该项目在 Rails 中有一个网站和一个使用相同数据库和数据模型的 C# GUI。我想在两个部分之间共享(活动)模型。关于这怎么可能的任何想法?

4

3 回答 3

2

IronRuby 正是为此而生。

您将需要使用 IronRuby 运行 Ruby on Rails(您也可以通过 IIS 执行此操作),然后您可以调用您的 C# 程序集,就像它们是 Ruby 库一样。

一些帮助您入门的资源:

  • http://IronRuby.net - 有一些文档的官方网站(不完整,但你会在那里找到一些很好的信息)
  • http://www.IronShay.com - 我的博客有几篇关于 IronRuby 的文章。如果您需要更多路线,您也可以通过其联系表与我联系
  • http://www.ruby-forum.com/forum/34 - IronRuby 论坛/邮件列表,IronRuby 社区成员和团队成员也回答了问题。
于 2009-12-04T07:29:36.550 回答
1

简短的回答是,您必须在 C# gui 上重新定义它们。您可以将控制器公开为 WSDL/SOAP 而不是其他的东西,然后您可以让 Visual Studio 为您生成代理。C# 在动态方面真的很糟糕,所以你不能只使用 ruby​​ 模型并在 C# 中重用它们,因为它们需要编译。

您当然可以为 rails 的“restful”资源编写自己的代理生成工具,但最终您必须以某种方式复制模型代码。

就像 shay 说的那样,您可以使用 IronRuby 来弥补差距,但这取决于您是要重用 ActiveRecord 类还是使用网站作为获取数据的点?当您想重用 activerecord 模型时,IronRuby 是与您的数据库对话的方式(但要与 C# 良好集成,您必须围绕模型创建强类型包装器,所以我真的不明白这一点) .

于 2009-12-04T10:47:56.223 回答
0

我首先想到的是从 Rails 应用程序公开RESTful Web 服务,并在 C# 客户端应用程序中使用这些服务。如果你想在你的 C# 应用程序中使用 POCO,我不知道有什么方法可以避免重复 - 也许编写一个读取 schema.rb 并生成 POCO 的 CodeSmith 或 T4 模板。

于 2009-12-03T22:07:04.890 回答