1

背景

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

问题是……?

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

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

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

选项

我想创建几个操作方法重载,为不同的目的公开不同的 DTO。IE:

IList<ShipmentDetailsDTO> GetAllShipmentsAsDetailed(); 

IList<ShipmentListingItemDTO> GetAllShipmentsAsListingItems();

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

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

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

4

0 回答 0