views:

79

answers:

1

Hello, I am currently designing a .NET application using NHibernate as its DAL. I want the application to be as DB agnostic as possible and NHibernate certainly helps me achieve this. However, I know my application will need to have reporting capabilities and was wondering if there is an existing framework or set of best practices for creating a DB agnostic DAL on the reporting side. Right now I am not married to a particular reporting tool/layer but am veering towards free/open source/already licensed (read: SSRS) tools. Thanks

A: 

DevXpress Reporting (www.devexpress.com/Products/NET/Reporting/) is a DB agnostic tool but it is not free. It works with typed collections and strongly typed datasets, I never tried it with NHibernate, but I suppose it should work

It is not free for developers but is is free for end users (end users even can run report designer and change layout , grouping, sorting etc. in run-time)

SSRS can be considered as database agnostic (it can take data for reports from any of databases that can be connected with ADO.NET, a list of databases can be found here) , and it supports ODBC.

However SSRS will not be able to use the objects/collections created by NHibernate. So actually you will have 2 different relation-mapping schema (one in NHibernate when you map DB to C# classes and the 2nd in SSRS when you map DB to report datasources and report columns)

Also SSRS requires MS SQL DB to store report definitions and run reporting services, so if your customer has Oracle, he will require also to install MS SQL Server that will connect to Oracle. So there will be no license costs for you (as you said you already have it) but there will be license costs for your customers.

In the past we evaluated several free opensource .NET reporting tools, but the conclusion was - it worth to spend 350$ for devxpress reporting w/o source code rather then struggle with limitations and bugs :)

Bogdan_Ch