【问题标题】:WCF: Why WCF for a Windows Forms application?WCF:为什么将 WCF 用于 Windows 窗体应用程序?
【发布时间】:2011-05-20 04:40:38
【问题描述】:

我想使用 WPF 和 MVVM 在 C# 中开发一个简单的 Windows 窗体应用程序,该应用程序将连接到安装在不同机器上的 SQL 服务器。所以我读到过,即使对于这样一个简单的结构,一些开发人员也会使用 WCF 并使他们的应用程序面向服务。我完全理解 SOA 是使用 WebApps 和 SilverLight 的方式,但我不明白为什么对于 Winform 和 SQL Server 这样的简单情况,有人会使用 WCF。如果有人能给我几个很好的理由为什么在我的 WinForm 应用程序中使用 WCF(考虑到 SQL Server 将与客户端在同一个网络中),我将不胜感激?

谢谢, 阿里斯

【问题讨论】:

  • 没有理由。只需通过连接字符串连接到服务器即可。

标签: wcf windows


【解决方案1】:

如果你不需要它,不要使用它:)

但您应该考虑是否有计划更改应用程序 - 例如,将其转换为 Web 应用程序或 Silverlight。在这种情况下,拥有进行数据库访问的服务将使转换更容易。就个人而言,我认为这通常过于工程化,但如果您预见到在不久的将来会发生这样的变化,这对您的应用程序可能是有意义的。

【讨论】:

  • 我同意,这就是我所做的。此项目不会转换为 Web 应用,因此没有理由添加服务。
【解决方案2】:

你必须使用 WCF 吗?没有。

不过,在我看来,没有太多理由不为此类工作创建 WCF 服务。

为您的不同层使用 WCF 服务而不是类库是一个很好的方法。使用 WCF,您可以控制组件的托管方式(IIS 和 http 一直到使用命名管道的进程内)以及它们所在的位置。

WCF 不会增加太多开销,作为回报,您会获得很多好处。

重点不一定是担心 SOA,而更多的是要提前考虑灵活性和更好的重用性。

【讨论】:

    【解决方案3】:

    除了习惯,我想不出一个特别令人信服的理由。当您对 99% 的项目采用相同的方式时,如果它没有主动违反您的要求,那么对另外 1% 的项目采用相同的方式通常同样容易。

    我能想到的唯一其他原因是,如果您正在编写一些可能在外部或作为网络应用程序时真正有用的东西。在该实例中使用 WCF 将允许任何可以连接到主机(Web 浏览器、外部应用程序或其他)的客户端连接到您的库,而无需事后进行修改。

    如果您(相对)确定这将只是在您自己组织的员工桌面上运行的 Windows 应用程序,我认为没有理由在这种情况下使用 WCF。

    【讨论】:

      【解决方案4】:

      底线是您在网络上,因此 WCF 或任何 Web 服务都有意义。

      您的网络调用都将是异步的(或者应该是异步的!)。使用 WCF 很容易做到这一点。没有那么多直接连接。

      如今连 WinForm 应用程序都已连接。

      【讨论】:

        【解决方案5】:

        我个人不相信为所有事物创建服务,而只是为了创建服务。当您知道您有该服务的消费者时,请创建一个服务。不要只是说,“好吧,有一天我们可能会从另一个应用程序中使用它”,并称其为服务的借口。

        服务应该有计划。服务合同应该是他们的消费者所要求的。没有消费者,没有合同,所以没有服务。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多