不暴露业务逻辑的API

时间:2012-01-25 16:15:44

标签: c# .net wcf

我需要编写一个将数据带到报告工具的WCF服务。 报告工具以懒惰的方式呈现数据,直到用户没有点击它没有显示数据。

我无法一次性发送所有内容,因为可能有几兆位的数据,因此我需要分批发送。

问题在于我不想为每个报告创建大量的Web功能,因为BL的这一部分将在报告工具中。​​

是否有可能以某种方式使每个报告在其自己的网络会话中运行,并且每当它询问下一部分数据时,我将能够将其发回并在同一会话中完成所有内容?

您可以更好地解决我的问题。

1 个答案:

答案 0 :(得分:2)

有许多技术可以提供帮助。我会看一下WCF Data Services,它允许你进行灵活的查询(IQuerable)和关联遍历,它应该处理你的延迟加载问题,而不必创建一整套单独的WCF调用。

另请参阅SQl Server Reporting Services,这是一个可能会吸引您的更一般的报告解决方案。

这些技术中的任何一种都可以帮助您避免BL泄漏到报告工具中。可能有很多类似的非MS解决方案做类似的事情,但我已经列出了上面的两个,因为你正在使用WCF,所以你可能更熟悉MS堆栈(但也许这是我的愚蠢假设......如果不是这样,他们会让你开始寻找什么!)