访问远程数据库 – 最佳实践

我想创建一个C#.NET WPF应用程序,它与我的外部Linux服务器通信。 在我的服务器上运行MySQL数据库。

访问数据库(select,DML)的最佳方法是什么,而无需通过ADO.NET直接访问它?

我曾想过一个webservice,但我不知道如何在Linux服务器上使用C#创建和访问web服务。 我还需要一个安全的连接(https)。

我希望你能告诉我最佳实践。

Web服务是解耦应用程序的客户端和服务器部分的好方法,为访问数据库提供增强的安全性等。

您在Linux服务器上使用MySQL,因此如果您想将.NET用于服务器的Web服务,则需要使用Mono http://www.mono-project.com/ 。 另外,请看一下WCF,因为它提供了许多您需要构建的Web服务function。 如果我没记错的话,甚至可以从现有的ADO.NET数据层自动生成整个Web服务。

但是,如果你习惯在服务器端使用不同的框架/语言,那么如果你不想自己动手,那么有很多选择。 搜索“restful mysql”,你会获得一些线索,例如:

使用REST公开MySQL数据库/表

http://phprestsql.sourceforge.net/

http://restsql.org

当然,安全在这里非常重要。 HTTPS将加密您的通信,但您还需要实施可靠的身份validation。

Client application in C# <-> Server application in Java <-> MySQL database

我做对了吗? 如果是这样,也许你可以做的最简单的事情是一个简单的servlet ,它在url上获取存储过程名称和参数,调用MySQL,并将结果序列化回客户端应用程序(例如,用XML)。

允许以这种方式调用存储过程作为公共前缀,以便您可以轻松过滤掉潜在的恶意调用,或使用MySQL安全性来执行此操作。