Programming the Reports Module

The Reports Module is designed to be very extensible in order to support many different Data Source and Data Visualization systems. There are two ways to extend the Reports Module: Develop a Data Source to allow users to retrieve data from other data stores, or develop a Visualizer to allow users to view data in different ways.

Architecture

Architecture Diagram

Figure 1 - Reports Module Architecture

The Reports Module Architecture is based on a pipeline architecture. Data Sources provide, upon the request of the Reports Module, a System.Data.DataView object containing the data retrieved from the Data Source. The module performs some intermediate processing, such as HTML Encoding and Decoding, and passess the DataView to the Visualizer which is responsible for display the data.

Data Sources and Visualizers are collectively called Extensions. An Extension is a component which plugs in to the Reports Module.

Settings Architecture

In order to perform their tasks, Extensions usually require some form of Configuration. For example, the DotNetNuke Data Source requires a Query to be executed against the DotNetNuke Database.