1

我有一个 Windows 桌面应用程序(使用 .NET 2.0 框架使用 C# 开发),我想连接到 Rails Web 应用程序。理想情况下,该方案将按如下方式工作:

用户运行 Windows 桌面应用程序并生成一些结果。然后,桌面应用程序将结果上传到数据库,Rails Web 应用程序可以对其进行操作并做一些有趣的事情(例如,制作漂亮的图表)。

我在 .NET 方面的经验有限,但我在 RoR 方面有相当深厚的背景。我目前对使用哪种类型的数据库以及如何使两个应用程序操作同一个数据库感到困惑。有什么建议么?

4

3 回答 3

2
  1. 您可以使用任何可用的数据库。.NET或 ROR 不会限制您的选择。

  2. 您可以让 rails 应用程序轮询数据库以获取所述数据(不太好)。或者,您可以开发一个 Web 服务并让桌面应用程序调用它来触发数据操作。

轨道上的 Web 服务。

如何在 C# winforms 中使用 web 服务

有关在 C# winforms 中使用 Web 服务的更多信息

于 2013-02-28T00:58:30.717 回答
0

数据库可以是 .NET 和 RoR 都可以与之通信的任何您想要的东西。我不是 RoR 专家,但 .NET 可以与您想要的任何数据库对话。

应用程序之间的通信是通过数据库进行的。您通过 C# 应用程序插入/操作数据,然后读取数据并使用 RoR 应用程序对其进行处理。两个应用程序之间真的不应该有直接的(应用程序到应用程序)通信。

于 2013-02-28T00:50:21.967 回答
0

“我目前对使用哪种类型的数据库感到困惑”

说出你的毒药!:) 您可以通过 .NET 和 Ruby/RoR 与地球上几乎所有的数据库进行对话,包括:

  • 关系数据库,如 SQL Server、DB2、Oracle、MySql、ProgreSQL 等。
  • 文档数据库,如 MongoDB、CouchDB、RavenDB 等。
  • 其他 NOSQL 键值存储包括 Cassandra、Dynamo、Riak、Redis、Memcache、Azure Table Storage 等。

选择一个满足您需求的产品并继续努力。

“如何允许两个应用程序之间的通信”

我不太清楚你的意思是什么,但我假设你的意思是,在上传数据后,你的应用程序应该打开一个网页,显示一个漂亮的数据图表?如果是这样,这是微不足道的,并且不需要在您的 .NET 应用程序和您的 RoR 站点之间直接集成,除了您的 .NET 应用程序产生一个 Web 浏览器的实例并要求它打开给定的网页:

var process = new Process();
process.StartInfo.FileName = "iexplore";
process.StartInfo.Arguments = @"http:\\myreportgenerator.com?customerid=1234";
process.Start();

如果您希望您的 .NET 应用程序能够要求您的 RoR 站点执行特定操作,请考虑将 REST Web 服务 API 添加到您的 RoR 站点

更进一步,您实际上可以从 .NET 应用程序中删除所有 DB 代码,只需让它通过 REST(JSON/XML over HTTP)调用请求数据并将数据发送到您的 RoR 站点,在内部执行所有 DB IO。

于 2013-02-28T01:06:15.723 回答