Add Business Intelligence to Your System
Recently I involved in designing a reporting system and hence have done fair bit of research on the available reporting mechanisms and frameworks. Although the requirement was to use .NET and Windows technologies, I thought of looking in to some other reporting platforms (in java and open source world) as well.
First thing I got in to my mind was 'Eclipse BIRT framework'. I remembered looking at the BIRT proposal and architecture about a year back. Also I remembered it had proposed a complete reporting life cycle management system. So I visited Eclipse site and saw that they have released the first stable version of the system and it seemed to be very promising. You can access Eclipse BIRT home page here and a very cool flash demo here. (java programmers must see this demo if Microsoft was able to surprisee you with their Visual Studio productivity features :D )
Eclipse BIRT architecture provided me with a very good understanding of the functionality of a report system. Then I thought of having a look at 'Jasper Reports'. Jasper also seems to be a rich reporting framework and I got a good understanding of reporting internals by looking at report samples and tutorials of Jasper reports.
So after looking in to couple of open source reporting frameworks then I was ready to get in to my real job, which is to explore .NET related reporting technologies. Visual Studio 2005 comes with two major reporting approaches. One approach is to use 'Crystal Reports' version shipped with Visual Studio. This is a limited version compared to 'Crystal Reports XI' but good enough for most of the reporting requirements. The 'CrystalReportViewer' component provides easy embedding of reports to web forms or win forms. Basically if you have a good 'Crystal Reports' experience and working knowledge on Visual Studio, you will be able to generate quality reports and embed them in to your web or windows application. One great this I noticed was that Crystal Reports engine is able to generate quality HTML reports having cross-browser support even in complex report navigation requirements (which ASP.NET 2.0 is failed to do in some cases).
The other approach is to use 'Microsoft Visual Studio 2005 Reporting' features with or without 'SQL Server Reporting Services'. In this approach Visual Studio provides a ÂReportViewerÂ component which can be used either in local-mode (no reporting server involved) or in remote-mode (with SQL Server Reporting Serviback-endning as a backend report server).
Local-mode is seems overlapping with the 'Visual Studio 2005 Crystal Reports' and good for simple reporting architectures. Local-mode provides you with more control over the data as you can bind datasets, custom objects in to your reports. If you want more complex/extensible system having report servers running you need to look in to 'SQL Server Reporting Services' and use 'ReportViewer' remote-mode. In this mode the data binding and report rendering is done within the report server and the report will be exposed as a web service consumable by 'ReportViewer' components embedded in web forms or win forms. Also SQL Server Reporting services can directly expose html reports with out a separate UI layer in place. Microsoft has done many improvements to their previous 'SQL Server 2000 Reporting Services' with their new releases of 'SQL Server 2005' and 'Visual Studio 2005'. Even though these technologies are not very matured as 'Crystal Reports', they seem to be very powerful and robust with the good industry impression they have on the 'SQL Server 200 Reporting Services'.
One thing I noticed after doing this research is that the reporting technologies have become much matured today with all sorts of user/developer friendly tools and complex/extensible architectural-styles. So it seems the true sense of the word 'Business Intelligence' is not so far from today...