就堆栈溢出问题而言,这个问题的问题在于它基本上是主观的。结果,我很确定它会被关闭 - 但无论如何我都会坚持我的 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 来实现。
您选择哪一个完全由您决定。