First off, sorry about the long delay between posts…another semester of university started and I’ve been really busy getting school work done. I may be looking for some help in the next month or so, if anyone is interested in working on the Reports Module with me (I’m going it alone right now).
The main goal of the new Data Sources framework is to be able to support data from any number of varying sources. These sources may be standard relational Databases or they may be other data stores such as Active Directory, Excel, CRM Systems, etc.
In order to be as flexible as possible, the Reports module includes a “Generic ADO.Net Data Source” which allows you to query any data source for which there is an ADO.Net Data Provider.
The .Net Framework includes pre-installed data providers for: OLE DB, ODBC, Microsoft SQL Server (though the Sql Server Data Source is more appropriate in this case), and Oracle. Plus, ADO.Net providers are available for many other data stores such as PostgreSQL, Firebird, and MySQL. Using this Data Source, users can query any of these providers in a generic way.
Eventually, the Reports module will be able to support many of these Data Sources directly, for example it would be fairly straightforward for a third-party developer to create a PostgreSQL Data Source for the Reports module that is customized to work with that particular DBMS. However, until these Data Sources are developed, this generic system allows users to access those data sources right now.
The downside is that since the Data Source knows nothing about the individual data stores, it cannot provide the same advanced features as the custom Data Sources. For example, the Microsoft SQL Server Data Source allows you to create a Connection String by entering data into structured fields like Server, Database, User Name, Password, etc. However, the Generic ADO.Net Provider requires you to create and enter the connection string manually. This is the price that is paid for a generic system, but sites like http://www.connectionstrings.com can make it a bit easier.
Next up is the "User Defined Table Module" Data Source, hopefully I'll get that post up in less time than it took me to get this one up :)