我有一个现有的 asp.net Web 应用程序,我正在重新设计以使用服务架构。我有一个 WCF 服务的开始,我可以毫无问题地调用和执行功能。就更新数据而言,这一切都是有道理的。例如,我有一个按钮,上面写着提交订单,它将数据发送到服务,该服务进行处理。
这是我的担忧:如果我有一个 ASP.NET 页面显示订单列表(查看订单页面),并且在顶部我有一堆订单类型的下拉列表,以及通过查询填充的其他搜索条件来自数据库的不同表(查找表等)。我希望最终将 Web 应用程序与 DB 完全分离,并使用数据契约在 BLL、SOA 和 Web 应用程序之间传递信息。话虽如此,如何减少加载“查看订单”页面所需的 WCF 调用次数?我需要进行 1 次调用来获取订单列表,并为每个下拉列表调用 1 次,等等,因为这些是由我的 BLL 中的各个函数填充的。
创建一个 Web 服务方法是否是一个好的架构,该方法返回一个专门的数据合约,其中包含您在 1 次中显示“查看订单”页面所需的一切?像这样的伪代码:
公共类 ViewOrderPageDTO { 公共 OrderDTO[] 订单 { 获取;放; } 公共 OrderTypesDTO[] OrderTypes { get; 放; } 公共 OrderStatusesDTO[] OrderStatuses { get; 放; } 公共 CustomerListDTO[] CustomerList { 获取;放; } }
还是在 page_load 事件中对 SOA 进行 5 次或 6 次甚至 15 次单独调用以获取加载页面所需的数据是更好的做法?因此,绕过需要专门的 wcf 方法或合并其他 DTO 的 DTO?
感谢您的意见和建议。