.net桌面应用程序部署和数据库连接

时间:2013-09-03 06:02:46

标签: c# asp.net winforms database-connection desktop-application

其实我很困惑,真的需要建议。在过去,我开发了各种Web应用程序,我在web.config中提供连接字符串,然后在托管公司站点上部署数据库和Web文件。 现在我开始窗口桌面应用程序开发,但我不知道如何将桌面应用程序与服务器上的数据库连接,因为托管公司不允许远程访问数据库。 所以我尝试谷歌搜索,我知道我们可以使用wcf,但我真的需要建议什么应该是最好的开始方式,如果wcf是我怎么能这样做... 对于例如我们可以采用需要将员工姓名保存到桌面应用程序服务器上的数据库的方案。 ,还有一个问题!在服务器上为Web应用程序和桌面应用程序部署数据库是否相同?如果没有,那么我如何部署我的桌面应用数据库

4 个答案:

答案 0 :(得分:2)

在我看来,最好的方法是编写WCF服务并让该服务访问数据库。

因此,您的桌面应用程序通过Internet连接到您的WCF服务; WCF服务公开访问数据库的业务逻辑(在业务类中实现;如果要遵循最佳实践)。您的桌面应用程序不知道甚至有数据库,因此它没有要处理的连接字符串等。它只是连接到WCF服务,它隐藏了数据库的复杂性等。

让某人帮助或指导你,因为一开始WCF可能有点令人生畏。 MSDN有一个很好的教程:http://msdn.microsoft.com/en-us/library/ee354180.aspx

不要让你的第一个实现非常复杂。只需使用.NET 4或4.5,这样您就不需要大量的WCF配置(在.NET 3.5中,您需要大量的XML或代码来正确配置WCF;从4.0开始,这样做要容易得多)。

祝你好运!

答案 1 :(得分:2)

  

我不知道如何将桌面应用程序与服务器上的数据库连接

您需要实施SOA架构。

  

但我真的需要建议什么应该是最好的开始方式,如果wcf是如何做到这一点

嗯,WCF不是唯一的方法。你也可以这样做asmx webservices。但是WCF是最好的方式(在我看来)。你可能会发现最初很难控制它,但是一旦你这样做,你就会说这是值得的。

  

例如我们可以采用需要将员工姓名保存到桌面应用程序服务器上的数据库的方案

保存示例请求:桌面 - > BusinessRule - >服务电话 - >数据访问 - >保存在db

这是最简单,最直接的做法。

  

在服务器上为Web应用程序和桌面应用程序部署数据库是否相同

它是一样的。

答案 2 :(得分:1)

我知道这个问题已得到解答,但我认为表达在编码路线选择之前选择框架的重要性非常重要,尤其是如果您向外部提供产品客户端即可。对于为Web服务开发(例如WCF)提交封闭框架,您一定要三思而后行。如果您在开发过程中遇到任何框架问题或未来支持您的产品,您将立即受到严重妨碍您开发和维护产品能力的限制。更好地拥有对实际代码的直接访问权限,更重要的是能够提交更改以修复问题。

绝对要看看ServiceStackNancyFX作为简化Web服务实现的框架。

在进入WCF / WebAPI路线之前先看看 - 你不会后悔的。

答案 3 :(得分:1)

我也会选择WCF。虽然Web API中的入门门槛确实低得多,但WCF提供了更大的灵活性。

WCF让您可以自由选择交通工具:

  • 如果您不需要任何其他应用程序来访问您的服务 可以使用具有二进制格式的TCP连接,这可以是自定义的
  • 如果您需要其他应用程序来访问,您可以提供SOAP / JSON 基于HTTP连接到那些(但仍然可以保持快速TCP 你的应用程序的东西)

WCF让您可以灵活决定如何管理授权:

  • 您可以使用证书进行身份验证和加密,以使该流程对于最终用户来说相当安全且不可见。
  • 您可以在配置文件中使用基本HTTP身份验证和用户/密码。
  • 您可以允许匿名访问

需要一些时间来了解WCF,但在你弄清楚它之后它是一个非常强大的工具。