目的是创建一组人们可以重用的Web服务.这些服务主要与后端数据库交互,创建,检索和处理数据.
我们希望公开服务,以便人们可以使用它来创建数据mashup和其他应用程序.
最终用户是可以在我们的域内或域外的网页.对于域外的页面,我们计划发布可配置为retreive并显示数据的小部件.
一个要求 – 应用程序应该在其可以处理的用户数量方面具有极高的可扩展性.
我们的代码库是.net,我们正在研究ASPX webmethods(或ASHX),ASMX webmethods和WCF(开始阅读WCF).
在安全性/访问方面,我发现维护sessionid,会员资格在这三个方面都是可行的. WCF似乎有点复杂.当我们只能在aspx中使用web方法(略微调整)完成所有操作时,我无法立即看到asmx的值.
另外,假设使用ASP.NET MVC2,我也可以为这些web方法获得干净的URL.
问题
在性能和可扩展性方面哪一个最有效?
我应该选择WCF或ASMX的任何理由?
感谢您抽出时间阅读这篇文章,并为我刚接触.net的天真问题道歉.
编辑我有点明白WCF是要走的路.只是为了理解这些技术的发展,如果有人可以说明为什么aspx webmethod与asmx不同,当两者都能完成类似的事情(除了发现之外)之外,这将是一件好事.可以使aspx webmethods以其他格式(明文,json)返回数据.此外,我们似乎可以使用ashx构建restful服务.再次为天真的问题道歉.
解决方法
您应该使用WCF在.Net中开发Web服务. WCF具有高度可配置性,具有许多安全性,传输协议,序列化,扩展等选项.
Raw performance也明显更高.此外,还在积极开发WCF,并在3.5和4版本中添加了许多新功能.还有一些变体,如WCF数据服务和WCF RIA服务.
WCF 4.0还有更好的REST和JSON支持,您可以直接在ASP.Net / JQuery中使用它们.