【问题标题】:Is there a way to use a web service (WCF) WITHIN a web application?有没有办法在 Web 应用程序中使用 Web 服务 (WCF)?
【发布时间】:2011-03-28 07:16:06
【问题描述】:

是否有使用 WCFWITHIN 您的 Web 应用程序(ASP.NET/SQL Server)的商业案例?

我说的不是要被其他人使用的服务,而是要在网络应用程序中使用的服务。到目前为止,我想出的网络应用程序WITHIN的唯一用途是当我需要从客户端(通过 AJAX)调用数据库时。

请不要给我上有关 Web 服务的复制/粘贴课程,我正在寻找的只是一个WCF 使 Web 应用程序受益的具体示例,而 不是 使用服务的其他应用程序。

快速澄清:“网络应用程序”是指某种独立的 CRM。它做了很多,但它不与任何外部应用程序/数据库对话,并且不需要打开服务点供其他应用程序使用。

【问题讨论】:

  • 您是否正在寻找涉及应用层的可维护性/设计方面的好处,或者这些不是您正在谈论的要点?
  • @In Sane:可维护性、性能、可用​​性……这些点

标签: asp.net wcf web-services web-applications


【解决方案1】:

我们有一个从网络收集实时数据的 Windows 服务。因为数据是短暂的(它只在大约 3 分钟内真正有效),所以将其记录在数据库中是没有意义的。为了检索数据,Windows 服务提供了一个(TCP 传输)WCF 接口,该接口仅向网络服务器公开,我们的网络应用程序从该服务器请求数据。

【讨论】:

  • +1,这是一个很好的例子,正是我正在寻找的场景类型。谢谢。
  • 但这是两个应用程序 - Windows 服务应用程序和 Web 应用程序...?
【解决方案2】:

我认为这很大程度上取决于您如何定义“应用程序”。

如果您谈论的是单个 Web 应用程序,那么除了提供 ajax 数据之外,正如您已经指出的那样,我正在努力思考为什么您想要作为 Web 服务的一般原因(甚至更多所以对于 WCF 来说)只是一个公开的 API,如果你在应用程序中,肯定会更好(在各种意义上)直接使用 API,而不需要包装和解包调用和数据的额外开销——这几乎是多余的。

另一方面,如果您所说的“应用程序”是指为一组(甚至是不同组)最终用户提供解决方案的“东西”的集合,那么是的,当然......肯定有这样的情况让组件通过服务进行通信的灵活性超过了开销问题。如果假设单个应用程序将(或至少可能)稍后成为连接在一起的多个应用程序,那么它变灰的地方 - 但如果您现在不这样做,那么您只是在造成你自己的痛苦你不需要所以不应该打扰。如果您需要拆分它,请在需要拆分时将其作为一个独立的练习来处理。

【讨论】:

  • “应用程序”是指单个 Web 应用程序。一种独立的 CRM。
  • 在这种情况下,其他人可能不同意,您也可以 - 可能应该 - 直接访问您将用于定义 WCF 服务的接口,而不是直接访问服务并返回。我认为关键在于,您可以将应用程序拆分为多个不同的应用程序(出于所有常见的充分理由 - 关注点分离、逻辑层等),但将接口/API 调用为服务只会增加单个应用程序不需要的开销和复杂性
【解决方案3】:

我的实践中的一个具体示例:在一个网站上,我们使用主动表,这些表是根据 jQuery 的jqGrid 插件实现的。每个 ajax 都会加载网格的包含。所以网站的大部分页面都非常简单,并且有清晰的 XHTML 代码。具有数据库接口的业务逻辑位于 WCF 服务内部。在 WCF 服务内部,我们还从组织的其他信息存储中获取数据。同样,如果以后需要从我们的项目中获得输入,WCF 服务将是完美的。

因此,在我们的 Web 应用程序中使用 WCF WITHIN 有助于归档清晰的界面、清晰地将业务逻辑与 HTML 标记分离以及更好的可测试性(在 Visual Studio 中集成 utit 测试)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 2013-08-28
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    相关资源
    最近更新 更多