基于WCF的服务器结合查询和业务操作的建议

时间:2013-08-05 03:11:47

标签: asp.net asp.net-mvc wcf wcf-data-services

背景

我最近一直在杀死一些神经元。我想为UPS等包裹服务制作多层应用程序。简而言之,后端将是基于WCF的服务器,而消费者将是ASP.NET MVC应用程序。这个想法是后端将处理所有业务操作(如添加新货,编辑现有货物,运营商等),但将以消费者的形式或查询提供数据。

问题是......?

我的商业运营计划是消费者应该传递完成操作所需的所有信息(非常像模型,即添加货物,消费者会发送这些货物所需的所有信息。)现在,我的实际问题是数据查询。

消费者应用程序应该能够以任何方式显示后端提供的数据,而不受DTO的限制。例如,在列出货件时,我只想显示一个网格,其中包含名称,ID,发货日期等,而不是整个货运对象图。

消费者应用程序如何指定WCF端点所需的数据投影?

选项

我想过创建几个操作方法重载,为不同的目的暴露不同的DTO。即:

IList<ShipmentDetailsDTO> GetAllShipmentsAsDetailed(); 

IList<ShipmentListingItemDTO> GetAllShipmentsAsListingItems();

我放弃了这个想法,因为后端正在适应消费者应用程序的需求,这不是一个好习惯。后端应该与消费者无关。

另一种选择是将用于查询数据的WCF数据服务和用于业务操作的WCF常规服务相结合。这样,MVC应用程序可以像对常规LINQ查询一样针对WCF数据服务投影数据。听起来很优雅,但我想听听第二个意见。

有什么想法?如果你是我,你会怎么做?我需要一个优雅而实用的解决方案。

0 个答案:

没有答案