3

在过去的几年里,我看到了许多 Web API 的兴起——服务通过普通的 HTTP 而不是通过更正式的服务合同(如 SOAP 或 WS*)公开。Microsoft 刚刚推出了一个名为“ASP.NET Web API”的新框架,它可以轻松构建覆盖广泛客户端的 HTTP 服务。Event 如果我是 .net 粉丝,它是另一个通信框架(在 asmx、wcf、ria 之后)。现在,作为一名快乐的架构师,我必须对技术做出决定。

Asp.net Web Api 真的是新架构的好选择吗?请记住 Linq2Sql,我不想投资“一次性”api。

WCF 中的 WebBindings 还有用吗?

4

2 回答 2

5

就堆栈溢出问题而言,这个问题的问题在于它基本上是主观的。结果,我很确定它会被关闭 - 但无论如何我都会坚持我的 2 便士(实际上更像是 2 英镑),如果它被关闭,那就这样吧。

首先 Linq2Sql 不是“一次性的”——它仍然存在并且不会消失。它没有被开发——这完全是另一回事。

无论如何 - Asp.Net Web API 是 REST Web 服务支持的一种形式化形式,由在 Asp.Net MVC 上工作的同一团队的许多人提供,并使用非常相似的方法来处理可扩展性、流水线、横切关注点(例如身份验证、日志记录、验证)等。是否使用它完全取决于您是否打算开发 RESTful Web 服务。如果您是,并且您在.Net 4+ 上,那么在我看来,您会生气不这样做。

Web API 的整体架构非常好,您可以毫不费力地扩展其中的大部分内容。特别是,他们处理内容协商的方式非常好,例如,支持 JSON 请求但仅仅因为客户端发送Content-Type:application/json和返回 XML 响应就变得微不足道了Accepts:application/xml

作为一种服务器技术,它也非常非常快;部分原因是它完全是异步的(增加了可扩展性),还因为从请求进入到您的代码被调用之间的堆栈非常浅。

不仅如此,您还可以在 IIS 和任何 .Net 应用程序中托管它 - 这增加了您的托管选项,但也使其成为公共网络(即非互联网)环境中网络内通信的候选者。

但是,如果您想编写 SOAP 或 WS-HTTP 服务,那么,不,Web API 不适合您——您会坚持使用 WCF。

简而言之 - 您需要将 Asp.Net Web API 纯粹视为在 .Net 上运行的服务器和客户端技术,而不是协议或 Web 架构。它使您能够构建 RESTful Web 服务——您也可以在 MVC、WebForms(如果您真的想要的话)、.ashx 处理程序中或者通过编写您自己的 HttpListener 来实现。

您选择哪一个完全由您决定。

于 2012-09-11T14:10:13.393 回答
-1

我们可以将 ASP.NET Web API 称为 WCF Web API 的替代者。它将支持更多面向平台的服务。

于 2012-09-11T14:03:32.910 回答