我们最近一直在使用WCF数据服务(也就是Astoria)来暴露ODATA我正在阅读微软不再投资,他们更喜欢使用ASP.NET WebAPI作为暴露ODATA的机制。有没有人对使用ASP.NET WEB API和WCF数据服务进行任何比较?我们应该开始迁移到ASP.NET WebAPI而不是WCF数据服务吗?
答案 0 :(得分:1)
答案 1 :(得分:1)
我的简单建议是坚持使用REST API形式的最简单选项。您可以使用任何技术来构建REST;如果它遵循REST规范的一些标准定义。
您可以阅读我关于WEBAPI REST的指南:http://imcodebased.com/restful-webapi-best-practices/
您可以将MVC甚至WebApi2用于REST;但是,不要超越微软可能为您生产的东西。它可能会节省一些时间,例如OData(分页/过滤器),但你会发现微软将停止花钱进一步增强,甚至完全切断。然后你会在离开时回到绘图板。
所以你是对的,你应该离开OData。现在关于您是否转移到WEBAPI或WCF的问题,那么您需要问的问题是,您是否需要复杂性,或者您只想通过HTTP协议公开数据。
如果您只想支持HTTP协议,那么WebApi就是您的解决方案。你需要寻找WCF。
如果要将HTTP服务公开给广泛的客户端,请选择Web API。这些包括移动设备,iPhone和浏览器。
选择WCF的主要原因:
如果要创建支持单向消息传递,消息队列,双工通信等服务,可以选择WCF。
如果要创建使用快速传输通道的服务,可以选择WCF,例如TCP,UDP,命名管道等。
您可以在此处详细了解比较https://msdn.microsoft.com/en-us/library/jj823172(v=vs.110).aspx
但百万美元的问题是,谁是您对此API的受众?如果你想暴露,无论设备等等。那么我打赌你在谈论Http协议和WebApi是你最好的解决方案。
您可以从WebApi开始,然后您可以轻松转移到WCF;如果有的话,你需要支持任何其他平台/协议。