【问题标题】:Architecture for Reporting Web Site报告网站架构
【发布时间】:2008-12-02 11:13:55
【问题描述】:

我之前在这个问题中提到过这个项目,但是重新设计的范围已经稍微收紧了,即我不能重新设计整个东西,所以我想要一些关于如何构建现有的一般性建议应用程序中的人工制品作为改进设计的增量步骤。

  1. 该网站有两个功能领域,即报告和维护。这是网站的主要功能,不是数据操作,而只是展示。该站点包含少量维护页面,这些页面使用标准 GridView 和 FormView 来维护一小部分数据。这就是为什么我决定不使用丰富、复杂的 DAL 来支持 Enterprise Library DAAB 和普通的 vanilla 数据集。

  2. 每个报表都是一个独立的页面,它使用动态 SQL 查询的结果来显式呈现报表的 HTML 表行。为了不为每个报告维护一组 mySQL 和 MSSQL 查询,我会将所有数据访问移至存储过程,通过 DAAB 消除与任一数据库引擎的耦合。

  3. 我正在研究报告工具,以将报告结构定义与报告表示分离。我不想像 Telerik 报告那样在类中定义报告结构,但还没有研究其他报告工具。

  4. 所有报告共享一个通用过滤器页面,该页面在从菜单中选择报告时显示,一旦用户对他们的过滤器选择感到满意,该页面将重定向到所选报告。对于我似乎必须不断重新发明的这种非常常见的情况,是否有任何可用的指导?

我正在寻找有关如何在不实际重组整个项目的情况下将其转变为结构更好的产品的一般建议。简单的事情,例如将维护页面与子目录中的报告页面分开等。

我不是在寻找其他人来做我的工作,并且会在适当的时候实施我自己所做的许多改进,但我希望能就其他人如何处理这样的项目提出一般性意见。

【问题讨论】:

    标签: asp.net architecture


    【解决方案1】:

    为了展示基于事实数据库的报告,我将研究已经实现所有核心功能的工具之一,例如 BIRT(我确信有一些 .NET 替代方案)。您可能认为一张数据表足以让聪明人解析,但实际上有人会要求提供图表和 PDF。

    维护/管理页面可以是标准网站 - 表单和后端,使用您熟悉的任何框架。

    从架构上讲,您是要针对实时数据库还是存档数据库(或故障转移/复制数据库)运行报告?

    您是在生成聚合数据表(事实表)以从中生成报告,还是针对更复杂的主架构运行?

    【讨论】:

    • 我现在正在实时运行主模式,但有些报告是针对数百万行的大型表。我可能在未来的版本中需要查看聚合表。
    • 使用存储过程的另一个好处 - 即使您将后端更改为使用聚合,也无需更改应用程序查询。
    【解决方案2】:

    我将使用 DevExpress ASPxGridView 使用报表元数据管理系统,为每页报表系统提供简单的目录结构。此网格完全能够满足此应用程序的报告需求。

    我将实施维护和管理作为标准 Web 表单,为大多数报告使用共享过滤器表单,根据报告元数据动态配置。报表不会有运行时维护,因为添加报表需要添加页面。这是可以接受的,因为维护不频繁。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多