Architecture for website reporting

I already mentioned this project, in this question, but the scale of the redesign was slightly delayed, i.e. I cannot reverse engineer all of this, so I would like to provide general advice on how to structure existing artifacts in an application as a step-by-step step in improving the design.

  • The site has two areas of functionality, viz reporting and service. This is the main function of the site, not data manipulation, but just presentation. The site includes a small number of maintenance pages that use standard GridViews and FormViews to support a small area of ​​data. This is why I decided to ditch the rich, complex DAL in favor of Enterprise DAAB data and simple valid datasets.

  • Each report is a sandboxed page that uses the results of a dynamic SQL query to explicitly display HTML table rows for the report. In order not to support one set of queries for both mySQL and MSSQL for each report, I will move all access to stored procedures, removing the connection with any DB engine through DAAB.

  • I am looking at reporting tools to separate the definition of the structure of the report from the presentation of the report. I would rather not define the structure of the report in classes like the telerik report does, but not have a look at other reporting tools yet.

  • All reports share a common filter page that is displayed when a report is selected from the menu, which is redirected to the selected report when the user is happy with the filter selection. Are there any guidelines for this very common scenario that I think you need to keep inventing?

I'm looking for general guidance on how to port this to a higher quality structured product, without actually restructuring the entire project. Simple stuff like splitting maintenance pages into report pages in subdirectories, etc.

I am not looking for others to do my work, and over time they have implemented many improvements of my own creation, but I would appreciate a general opinion on how other people would handle such a project.

0


source to share


2 answers


I'm going to go with a metadata management system in reports, with a simple system directory structure for each report, using DevExpress ASPxGridView. This grid is more than capable of meeting the reporting needs of this application.



I will implement support and administration as standard web forms with a common filter form for most reports dynamically configured based on report metadata. There will be no time to maintain reports, since adding a report requires adding a page. This is acceptable as maintenance will be infrequent.

0


source


For presenting reports based on a fact database, I would look into one of the tools that implements all the core functionality like BIRT (and I'm sure there are some .NET alternatives). You might think that a datasheet is good enough for a smart person to parse, but down the line someone will ask for graphs and PDFs.

The maintenance / administration pages can be a standard website - forms and backend, using whatever structure you feel comfortable with.



Architecture-wise, are you going to run reports against a live database or an archive database (or a restore / restore database)?

Are you creating aggregate data tables (fact tables) for reporting or execution against a more complex underlying schema?

+1


source







All Articles