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.
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.
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.