将C#桌面应用程序与Rails Web应用程序链接

时间:2013-02-28 00:46:37

标签: c# .net ruby-on-rails database web-applications

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

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

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

3 个答案:

答案 0 :(得分:2)

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

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

  3. Web services on rails.

    How to consume webservices in C# winforms

    More on consuming web services in C# winforms

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

  

“我目前正在绊倒使用哪种类型的数据库”

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

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

选择一个满足您需求的产品。

  

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

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

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

如果您希望您的.NET应用程序能够让您的RoR网站执行特定的操作,请考虑adding a REST web services API to your RoR site

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