2012-10-26 124 views
4

在Visual Studio 2012中,当我想将网络服务添加到现有网站项目时,我至少在“添加新项目”对话框中有以下选择:ASP.NET网络服务技术的比较

  • 的Web API控制器类
  • 启用AJAX
  • WCF服务
  • WCF服务
  • WCF数据服务
  • WCF服务Silverlight启用
  • Web服务/ ASMX(这就是我一直在使用,直到今天)

(可能存在更多的选择,如可作为附件,扩展,NuGet软件包等)。

据我所知,“Web API”是最新的Web服务技术。这是否应该用于所有新的开发?

还是还有其他情况,应考虑其中一种技术?有没有比较这些技术或一些指导,何时使用哪些?

+0

一些类似的问题[here](http://stackoverflow.com/questions/5848069/wcf-web-api-vs-asp-net-mvc-json-web-services)和[here](http:/ /stackoverflow.com/questions/9451298/whats-the-difference-between-wcf-web-api-and-asp-net-web-api) – StuartLC

+0

这可能有助于了解您作为网络​​消费者定位的对象服务。尽管详细的回复应该列出目标受众。 –

+0

Web服务的消费者将是其他ASP.NET应用程序,JavaScript代码,.NET Windows应用程序,甚至可能是Java应用程序。它应该尽可能地“互操作”。 – M4N

回答

0

我没有真正的比较,但假设您没有遗留代码或其他特定要求,我会使用新的Web API。他们基本上取代了ASMX和WCF服务。 它们使用简单,工作方式与MVC App类似。

我们刚刚切换到它,并迄今如此好。

+0

更新了问题。我们有一个现有的网站项目(如果这就是你的意思是遗留代码)。如果需要,我认为可以将其转换为Web应用程序项目。 – M4N

+0

转换成Web应用程序很简单。我们也这样做了。或者你可以在一个独立的项目中运行你的web服务。 – Remy