【发布时间】:2015-04-20 05:53:20
【问题描述】:
我有一个 WCF 服务,它允许我使用 DTO 发出请求并使用 DTO 回复 WPF 应用程序。例如,我为产品传递了一个过滤器对象,该对象具有一些我想要过滤的属性和一些用于分页的附加功能,(服务器将处理过滤器对象并获取数据)一个例子就是这样。
public async Task<ObservableCollection<ProductListItem>> GetProductList(ProductFilter filter, int startIndex, int pageSize, string sortBy)
我想知道除了 WCF 之外是否还有其他技术允许这样的操作,从我的初步研究来看,WebAPI 使用的 GET、POST、PUT 动词和路由规则可能完全不同。
p>ServiceStack 看起来可以做到这一点,我可以在幻灯片 37 上看到 https://servicestack.net/features
它说。
List<Product> productOver2Bucks = client.Get(new FindProducts{PriceGreaterThan = 2})
这看起来很接近,但可能仍然需要 Rest 动词,因为它使用 Get()。
我不知道这是否是 FUD,但我一直在阅读,有人认为基于 WCF 的肥皂是一种遗留技术,而 JSON 是未来的方式。那么是否有一种替代技术可以与我上面的方法签名一起使用?我可以从 Windows 通用应用程序等平台调用。
【问题讨论】:
-
RESTful API 肯定更具互操作性、更轻巧、更简单,通常是更合适的选择,但我几乎不会认为 SOAP 是遗留的。由于 SOAP 与传输无关并支持 WS-* 规范,因此在使用 SOAP 时有大量可用选项。使用 SOAP 时,您对安全性、可靠性、事务等方面的选择要大得多。 Plus 客户端可以通过支持的 WSDL 自动生成代理。
-
在研究了一段时间后,似乎将soap消息封装成WCF中的C#方法是一件独特的事情。大多数其他框架,如 ServiceStack 和 Nancy 使用 HTTP Post 和 Get 以及路由,这是完全不同的,但我现在理解它并且我认为它非常方便。将两者都放在您的工具箱中仍然很好。
标签: json wcf servicestack dto