代码之家  ›  专栏  ›  技术社区  ›  roman m

在Web应用程序中是否有使用Web服务(WCF)的方法?

  •  1
  • roman m  · 技术社区  · 14 年前

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

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

    请不要给我关于网络服务的复制/粘贴课程,我只想找一个 WCF有益于Web应用的具体实例 不是 其他使用服务的应用程序。

    快速澄清: 我所说的“Web应用程序”是指某种独立的CRM。它做了很多工作,但它不与任何外部应用程序/db对话,也不需要为其他应用程序打开服务点来消费。

    3 回复  |  直到 14 年前
        1
  •  1
  •   spender    14 年前

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

        2
  •  1
  •   Murph    14 年前

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

    如果你说的是一个单一的Web应用程序,那么除了提供Ajax数据之外,正如你已经提到的,我正在努力想一个通用的原因,为什么你想将Web服务(对于WCF来说更是如此)仅仅是一个公开的API,如果你在应用程序中,它肯定是(在各种意义上)直接进入API,而不需要额外的包装和解包调用和数据的开销——这是非常多余的。

    另一方面,如果“应用程序”是指将解决方案提供给一组(甚至是多组)最终用户的“东西”的集合,那么当然是……在某些情况下,组件通过服务进行通信的灵活性肯定大于开销问题。如果有一个假设,一个应用程序(或者至少可能)稍后会成为多个连接在一起的应用程序,那么它就会变灰——但是如果你不这样做的话。 现在 那你只是在给自己造成你不需要的痛苦,所以不需要麻烦。如果你需要拆分它,那么作为一个独立的练习来处理,当你需要拆分它的时候。

        3
  •  1
  •   Oleg    14 年前

    我的实践中有一个具体的例子:在一个网站上,我们使用活跃的表,这些表是针对 jqGrid jquery插件。网格的包含将按Ajax加载。因此,网站的大多数页面都非常简单,并且具有清晰的XHTML代码。带有数据库接口的业务逻辑在WCF服务内部。在WCF服务内部,我们还从组织的其他信息存储中获取数据。同样地,如果以后需要从我们的项目中获得输入,那么WCF服务将是完美的。

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