For the next version of the Reports Module, version 5.0 (which, confusingly, is only the second major release of the module), we are introducing a new Data Sources Framework. This framework is similar to the Visualizer Framework introduced in the 4.x line, but it works in the other direction. While Visualizers are responsible for drawing UI for a Report given its results and some settings, a Data Source is responsible for generating the report results based on its settings.
This framework greatly increases the flexibility of the Reports Module. Before 5.0, the Reports module could only work with the current DotNetNuke database, although some hacks allowed users to work with other Servers and Databases. In 5.0, instead of being constrained to the DotNetNuke database specified in your site's web.config file, users can select from a number of different data sources:
In this blog post, I'll give a quick summary overview of all the data sources, and then in future posts I'll go into more detail on the Data Sources as well as discuss the architecture of the system and how third-party developers can create their own Data Source components.
- DotNetNuke Data Source - This Data Source provides the same functionality as the previous version of the module (it is almost literally copied and pasted ). It provides a simple way to run a query against the same database that DotNetNuke is running under
- Microsoft SQL Server Data Source - This Data Source allows users to access ANY Microsoft SQL Server database, as long as it is accessible from the Web Server. Users can either manually enter a Connection String or enter data into structured fields such as Server and Database and a Connection String will be generated for you
- Generic ADO.Net Data Source - This Data Source allows users to use any installed ADO.Net Data Provider on the Web Server to query a database. This includes: ODBC, OleDB, and SQL Server (including the Compact Edition), but ADO.Net providers are also available for Oracle, MySQL, and other Database Systems. However, since the Data Source knows nothing of the specific Database System, users must manually write and enter a connection string to use this Data Source. Hopefully, specific Data Sources will be created for all major Database Systems, but until then this allows users to use ANY ADO.Net Data Source right away.
- User Defined Table Module Data Source - This Data Source allows users to perform simple retrieval and filtering of records from a User Defined Table Module. This Data Source does not have a full-featured query system but it does allow users to select the columns they wish to retrieve, filter out rows based on criteria, and sort the retrieved records.
Some of these Data Sources, like the DotNetNuke Data Source should be fairly familiar but I will go over the new ones in more detail in future blog posts. The current plan is to release Reports v5.0 "When It's Ready" (as usual), but I think we're getting close to a matter of weeks before the module is ready to enter the release process. Still, no promises, keep checking here for more details!