19 Mar

SSRS Client Library

Below is a simple implementation of a client library for SQL Server Reporting Services.

This is mostly intended for educational purposes, although I will be extending it regularly (as a pre-requisite for another project am working on).

SSRS Client Library Implementation

The SSRS Client Library is a mash-up of a communication layer to the SSRS Web-Service as well as the beginning of an implementation of RDL builders classes, the intend of the RDL builders is to facilitate building RDL files that can be uploaded to SSRS. Ideal if you are trying to convert from one reporting format to an RDL based one, or perform global changes across all deployed reports in an SSRS instance.

SSRS Web-Service 2010 Implementation

The SSRS library is based on Visual Studio’s generated WSDL proxy class (through the WSDL.EXE tool), which was run against SSRS Web Service 2010 API, which ships with SQL Server 2008 R2 and upwards. The 2010 SSRS Webservice was actually a sneaky released, and I thought the 2005 implementation was still the latest release until recently.

Report RDL File Builders Implementation

I have generated a partial class from SQL Server Reporting Service RDL schema, this class is essentially a deserialized-to-object representation of the XSD (XML Schema) file, which is used to generate RDL files, this is easily done using Visual Studio Tools (through the XSD.EXE tool). I have also started building some helper methods that aid the building of the partial class, which can then be serialized into XML and uploaded onto the server (through the same library).

The actual implementation is based on an SSRS web-service tutorial that can be found at MSDN.

Download SSRS Client Library

The SSRS Client Library has been tested on SQL Server 2008 R2, should work fine for anything above this version (so 2012), but probably wouldn’t work for anything below R2, unless the WSDL proxy class is regenerated on the 2005 SSRS Web-Service.

If you have any bugs to report, or want to contribute to the code, please use the comment section below.