1

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

4

4 回答 4

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 开始,这要容易得多)。

祝你好运!

于 2013-09-03T06:16:01.853 回答
2

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

您需要实现SOA架构。

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

好吧,WCF 不是唯一的方法。你也可以这样做 asmx webservices 。但是 WCF 是最好的方法(在我看来)。一开始你可能会发现很难掌握它,但一旦你掌握了,你会说这是值得的。

例如,我们可以采用需要将员工姓名从桌面应用程序保存到位于服务器上的数据库的情况

保存调用示例:桌面 --> 业务规则 --> 服务调用 --> 数据访问 --> 保存在数据库中

这是最简单、最直接的方法。

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

这是相同的。

于 2013-09-03T06:26:40.287 回答
1

我知道这个问题已经得到解答,但我认为在开始编码路线之前表达正确选择框架的重要性非常重要,尤其是在您向外部客户提供产品的情况下。您绝对应该三思而后行,为您的 Web 服务开发(例如 WCF)承诺使用封闭框架。如果您在产品开发或未来支持期间遇到任何框架问题,您将立即受到可能严重阻碍您开发和维护产品能力的约束。直接访问实际代码要好得多,更重要的是能够提交更改以解决问题。

绝对可以将ServiceStackNancyFX视为简化 Web 服务实现的框架。

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

于 2013-09-03T06:37:13.753 回答
1

我也会选择 WCF。尽管 Web API 的进入门槛确实要低得多,但 WCF 提供了更多的灵活性。

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

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

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

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

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

于 2013-09-03T06:37:43.067 回答