C# – ASP.NET reporting, what, how and when to use RDLC

asp.netcrdlrdlcreporting-services

I am new to reporting in asp.net and can't get the things work up good for me.
Basically, I made a demo of what was told here. Everything worked fine and it generated report on my local system. But, did not worked on the web server.

Now, I've got a confusion here: There are 2 modes of a reporting in asp.net [VS 2010 – .NET 4.0], Local Mode and Server Mode. Local Mode has RDLC extension and Server mode has RDL as extension for the report design file, and it requires Sql Server reporting for support, for which on the other hand RDLC is made on the Client Machine [it may look to be a dumb question but, is it my machine or my pc and not the web server, means I cannot deploy and use it on the web server].

The base of the confusion is that I had uploaded the same demo project on my web hosting and ran it. The report Viewer control was showing perfectly and every thing was looking fine, but the actual report that was to be rendered was absent from below of the Report Viewer Toolbar. But, at the same time, I was able to download the PDF, XLS, and DOC format of the report completely fine, with the actual rows and columns generated, which shows that the report was being generated (A bar graph was also included in the design of rdlc, and it generated as well). I guess this was because the web-server did not had Report Viewer libraries installed on it, and did not know how to render the RDLC file.

So, here are the actual questions:

Am I correct in the thinking that a report can be generated on the webserver when you have RDLC as the report file format?Or should I use the RDL instead?

If I deploy my application with RDLC (Local Report), of-course on the web server, will it work fine? Is it possible to install or get the report viewer installed on the web server

And when should I use an RDLC and RDL and when not. A previous question When to use RDLC over RDL reports?., but I am looking for a simpler explanation in my scenario.

Best Answer

RDLC


  1. Its client side reporting, Reports are shipped with the applications like windows app or web app.
  2. Limited functionality in terms of formats in which the Report could be exported.
  3. Report's data processing and rendering consumes address space of application in which Reports are hosted, it could be windows or web. This could cause performance issues if you pull huge reports often.
  4. This does not require any separate SQL instance or licence.

RDL


  1. This is server side reporting, reports are processed at dedicated server process called SQL Reporting Services' service and output is fed to applications or end users.
  2. Server reporting is designed to perform and scale.
  3. Runs as a separate process/service and requires SQL License.
  4. Provides export to multiple formats not available in RDLC
  5. Server reporting is extensible product. You can include your own data processing, security or delivery extensions.
  6. It supports automated email delivery and file delivery of reports using Subscriptions out of the box.

Summary


  1. Consider client side reporting (rdlc) if you are going to use simple and smaller reports not very often.
  2. Consider (rdl) if you want to setup dedicated and central service to cater your Reporting requirements for various application users. This could be extended, monitored, optimized and scaled out on demand.