Asp.net WCF vs ASPX webmethods vs ASMX webmethods

Asp.net WCF vs ASPX webmethods vs ASMX webmethods,asp.net,wcf,web-services,asmx,ashx,Asp.net,Wcf,Web Services,Asmx,Ashx,其目的是创建一组人们可以重用的web服务。这些服务主要与后端数据库交互,创建、检索和处理数据 我们希望公开服务,以便人们可以使用这些服务创建数据mashup和其他应用程序 最终用户是可以在我们的域内或域外的网页。对于域之外的页面,我们计划发布配置为检索和显示数据的小部件 一个要求是,应用程序应该在其可以处理的用户数量方面具有极强的可伸缩性 我们的代码库是.net,我们正在研究ASPX webmethods(或ASHX)、ASMXWebMethods和WCF(开始阅读WCF) 在安全性/访问方面,

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

我们希望公开服务,以便人们可以使用这些服务创建数据mashup和其他应用程序

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

一个要求是,应用程序应该在其可以处理的用户数量方面具有极强的可伸缩性

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

在安全性/访问方面,我发现维护sessionid、成员身份在所有三种情况下都是可行的。WCF的设置似乎有点复杂。我无法立即看到asmx的价值,因为我们可以在aspx中使用webmethod(稍加调整)完成所有工作

另外,假设使用ASP.NET MVC2,我也可以为这些webmethods获取干净的URL

问题

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

谢谢你花时间阅读这篇文章,并为这些天真的问题道歉,因为我是.net的新手


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

ASMX被认为是不受欢迎的技术,并被WCF取代。因此,如果您要开始需要公开可重用服务的新开发,那么WCF是一个不错的选择。

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

我不一定不同意前面的答案。但是,从另一个角度来看,WFC很难配置。它需要在配置文件中包含绑定、端点、数据包大小、大量易混淆的参数等,并且报告了许多序列化/反序列化问题。此外,WCF是一项相对较新的技术(因此仍然存在所需的bug和补丁)。 客户机生成的[Reference.cs]文件可能有不需要的接口,WSDL中公开的每个公共属性客户机类都是使用LINQ to SQL或实体框架使用的相同观察者模式(OnChanged、OnChanged等)生成的,因此与传统的SOAP Web客户机方式不同,这会给客户机代码添加大量fat。
我的建议是,如果您不通过TCP使用远程处理,或者如果您不需要远程更改的双向通知机制(所有这些都是WCF非常酷的功能),您就不需要使用它。

我一直在想,使用WCF有什么意义,您的回答让我改变了主意。很高兴看到Jquery获得了如此多的支持。Jquery支持将得到更大的改进。您已经可以获得WCF Web API预发布版本。ASMX页面也提供JSON支持。您是否有可以引用的关于ASMX已被弃用的断言的实际资源?链接到.NET 3.5的wsdl.exe工具的文档:()。请注意文本“这个主题是针对遗留技术的。XMLWebServices和XMLWeb服务客户端现在应该使用Windows通信基金会(WCF)创建。”- 1,您的信息已经过时。除其他外,WCF自2006年以来就已退出。您还可以轻松安排不生成INotifyPropertyChanged,这与远程更改无关。无论如何,您不应该通过WCF传递域模型。