7

目的是创建一组人们可以重用的 Web 服务。这些服务主要与创建、检索和处理数据的后端数据库交互。

我们希望公开服务,以便人们可以用来创建数据混搭和其他应用程序。

最终用户是可以在我们的域内或域外的网页。对于域外的页面,我们计划发布配置为检索和显示数据的小部件。

一项要求 - 应用程序在可以处理的用户数量方面应该具有极强的可扩展性。

我们的代码库是 .net,我们正在研究 ASPX webmethods(或 ASHX)、ASMX webmethods 和 WCF(开始阅读 WCF)。

在安全/访问方面,我发现维护 sessionid、成员资格在这三个方面都是可行的。WCF 的设置似乎有点复杂。当我们只使用 aspx 中的 web 方法(稍加调整)就可以完成所有工作时,我无法立即看到 asmx 的价值。

此外,假设使用 ASP.NET MVC2,我也许能够为这些 webmethods 获得干净的 url。

问题

哪一个在性能可扩展性方面最有效?为什么我应该选择 WCF 或 ASMX?

感谢您抽出时间阅读这篇文章,并为我是 .net 的新手而提出的幼稚问题道歉。

编辑我有点明白 WCF 是要走的路。只是为了了解技术的发展,如果有人可以阐明为什么 aspx webmethod 与 asmx 不同,而两者都可以完成类似的事情(除了发现),那将是一件好事。可以使 aspx webmethods 以其他格式(纯文本、json)返回数据。此外,我们似乎可以使用 ashx 构建 restful 服务。再次为幼稚的问题道歉。

4

3 回答 3

9

您应该使用 WCF 在 .Net 中开发 Web 服务。WCF 是高度可配置的,具有许多安全性、传输协议、序列化、扩展等选项。原始性能也显着提高。此外,WCF 正在积极开发中,并且在 3.5 和 4 版中添加了许多新功能。还有 WCF 数据服务和 WCF RIA 服务等变体。WCF 4.0还具有更好的 REST 和 JSON 支持,您可以直接在 ASP.Net / JQuery 中使用它们。

于 2010-12-03T11:05:33.703 回答
3

ASMX 被视为已弃用的技术并被 WCF 取代。因此,如果您要开始需要公开可重用服务的新开发,WCF 是您的最佳选择。

于 2010-12-03T10:56:38.287 回答
1

我不一定不同意以前的答案。但是,从不同的角度来看,WFC 的配置很棘手。它需要您的配置文件中的绑定、端点、数据包大小、许多令人困惑的参数等,并且报告了许多序列化/反序列化问题。此外,WCF 是一种相对较新的技术(因此仍然存在所需的错误和补丁)。客户端生成的 [Reference.cs] 文件可能具有不需要的接口,并且在 WSDL 中公开的每个公共属性客户端类都使用 LINQ to SQL 或实体框架使用的相同观察者模式(OnChanged、OnChanging 等)生成,因此这增加了与传统的 SOAP Web 客户端方式相反,客户端代码大量发胖。我的建议,如果您不使用 TCP 远程处理或不使用“

于 2012-02-20T14:22:41.430 回答