【问题标题】:WCF vs ASPX webmethods vs ASMX webmethodsWCF vs ASPX webmethods vs ASMX webmethods
【发布时间】:2011-05-19 16:36:40
【问题描述】:

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

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

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

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

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

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

另外,假设使用 ASP.NET MVC2,我也许能够为这些网络方法获得干净的 url。

问题

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

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

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

【问题讨论】:

    标签: asp.net wcf web-services asmx ashx


    【解决方案1】:

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

    【讨论】:

    • 关于您断言 ASMX 已被弃用的说法,您有可以引用的实际资源吗?
    • .NET 3.5 的 wsdl.exe 工具的文档链接:(msdn.microsoft.com/en-us/library/7h3ystb6(VS.90).aspx)。请注意文本“此主题特定于旧技术。现在应该使用 Windows Communication Foundation (WCF) 创建 XML Web 服务和 XML Web 服务客户端。”。
    【解决方案2】:

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

    【讨论】:

    【解决方案3】:

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

    【讨论】:

    • -1 您的信息已过期。除其他外,WCF 自 2006 年以来就已推出。您还可以轻松安排不生成与远程更改无关的 INotifyPropertyChanged。
    • 无论如何你都不应该通过 WCF 传递域模型。
    猜你喜欢
    • 2017-05-10
    • 1970-01-01
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多