【问题标题】:WCF vs. Web API for Windows 8 store apps适用于 Windows 8 商店应用的 WCF 与 Web API
【发布时间】:2014-02-27 06:50:11
【问题描述】:

我建议我们从 WCF 迁移到 Web API,因为它更容易实现并且很难被击落。以下是提出的反对意见:

  • WebAPI 专为 Rails 转换而设计
  • 我们不需要 REST 或第 3 方开源支持、带有 Microsoft 后端的 Windows 8 Store Apps。
  • net.tcp 上的 WCF 比 HTTP(S)+XML 或 JSON 更快且开销更少

最后的评论是“我想不出使用 Web API 优于 WCF 的单一优势。

有趣的是,我在一家基于 MS 技术的大型企业的上一份工作从 WCF 更改为 Web API,开发人员的工作效率飙升,许多错误消失了,我们从未遇到任何性能问题,但我不想这么说,我想用事实来回应他的观点。你会如何回应?

【问题讨论】:

  • 据我所知,除了 Microsoft 在 .NET 中没有其他的 net.tcp 实现。通过使用它,您可以大大缩小服务的客户范围。但这取决于您的特定用例。
  • 根据我的经验,它很容易实现。您根本不需要配置。只需部署在 Web 服务器上,您就可以开始使用了。随着 Web API 2.1 路由变得非常流畅和灵活。除了 HTTP 动词之外,您还可以添加 RCP/MVC 样式方法。还有更多,例如简单的依赖注入、免费缓存等。
  • 这个/这些产品会有android/ios/其他一些操作系统实现吗?
  • 我们的想法是这些应用程序将始终是 Windows 8 应用商店应用程序,它们都位于基于 XAML 的 Metro WinRT UI 上。没有 JavaScript,没有 JSON,不需要 REST。
  • 希望我们能尽快做一个网络应用程序,然后我可以使用 Web API 并用它在浏览器中将 JSON 提供给 JS 代码。

标签: c# wcf rest asp.net-web-api


【解决方案1】:

WCF or ASP.NET Web APIs? My two cents on the subject:

  • 如果您的目的是创建支持特殊场景的服务 – 单向消息传递、消息队列、双工通信 等等,那么你最好选择 WCF
  • 如果您想创建可以在可用时使用快速传输通道的服务,例如 TCP、命名管道,甚至可能是 UDP(在 WCF 中) 4.5),并且您还希望在所有其他传输不可用时支持 HTTP,那么您最好使用 WCF 并同时使用基于 SOAP 的 绑定和 WebHttp 绑定。
  • 如果您想通过 HTTP 创建可使用 HTTP 全部功能的面向资源的服务 - 为浏览器定义缓存控制, 使用 ETag 进行版本控制和并发,传递各种内容类型 例如图像、文档、HTML 页面等,使用 URI 模板来 在响应中包含任务 URI,那么新的 Web API 就是 您的最佳选择。

整篇文章值得一读。

【讨论】:

  • 我补充说,如果您做大量小型 CRUD 应用程序,那么 REST 很自然,如果您做大型复杂项目,那么 DDD/SOA/服务更适合。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多