我有一个包含以下项目的视觉工作室解决方案:
- 用户界面
- 数据访问
- 业务逻辑
- 业务对象
我现在有一堆代码可以生成通过电子邮件发送或保存为 csv 文件的报告。
这些 ReportGenerators 类接收业务对象并输出文件或字符串。
你会把它们放在哪个项目中?我倾向于答案,但想看看其他人的想法?
我有一个包含以下项目的视觉工作室解决方案:
我现在有一堆代码可以生成通过电子邮件发送或保存为 csv 文件的报告。
这些 ReportGenerators 类接收业务对象并输出文件或字符串。
你会把它们放在哪个项目中?我倾向于答案,但想看看其他人的想法?
我会创建一个单独的报告项目。它不属于 UI(我假设它们在后台运行)——它实际上是一个“报告逻辑”层。
如果您考虑如何支持报告,您可能需要后端服务,但将来您可能还希望通过 Web 服务公开数据。如果您需要为用户提供前端报告工具,您可以像普通 UI -> 逻辑 -> 数据访问架构一样插入报告逻辑。
此外,如果您将报告代码分离出来,那么您将来可以自由地将其提取到专用的报告层。
同意 manwood 的帖子 - 您应该将它们构建为报告(如有必要,在报告后面放置一个 sproc),原因如下:
您可以运行报表并通过 ReportViewer 控件显示它们。这很简单。
您(更重要的是支持该应用程序的其他人)可以使用更多报告扩展该应用程序,而无需发布该应用程序的另一个版本。如果您不想被绑定到支持应用程序,这是一个非常有用的功能。
您也可以通过报告服务发布报告。
您可以通过 Reporting Services 框架获得报告服务(Excel、csv、pdf 等)的所有数据导出选项。