Automating SSRS Report Deployment for CI
I am a big fan of automating as much as possible, especially when it comes to deployment and QA. One of the items I recently looked at automating is report deployment for SSRS.
The Standard Approach - Using rs.exe to Deploy Reports using Reporting Service Script(RSS)
SQL Server Reporting Services 2008 includes a command line utility for report deployment called rs.exe. Unfortunately, in order to use this tool, you have to pass in a Reporting Server Script(RSS) file consisting of VBScript. Writing Reporting Server Script(RSS) is not easy as you are writing it without intellisense and the documentation and examples are less than organized or complete.
While trying to find documentation on RSS Script files I discovered a 3rd party utility called RSS Scripter which generates the scripts for you. Unfortunately, this tool has not been updated to support SQL Server 2008 R2 and also works by deploying reports from a reporting server to another reporting server. I wanted a solution that could deploy reports that had not already been deployed and thus needed something that could deploy from the file system to a reporting server.
The Better Approach - Using the SOAP API
While researching how to automate deployment of SSRS reports, I stumbled upon a semi-hidden gem of SSRS. Apparently SSRS has a built in SOAP API published via ASMX web service that you can use for deployment and configuration.
SQL Server Reporting Services actually publishes several endpoints. Two of them, ReportingSerice2005.asmx and ReportingService2006.asmx are now deprecated in SQL Server 2008 R2. The service recommended for use with SQL Server 2008 R2 is located at http://
Using these services is the same as using any other WebService. I personally felt this approach was superior to the RSS approach for several reasons
- Better API documentation and examples
- Code can be written in C# using Intellisense with compile time checking rather than being written in VB Script with no intellisense
References
More writing
AI Model Regulation (Fable, GPT-5.6, OSS)
We used to celebrate new AI models, but lately releases are being delayed, restricted, or slow-rolled over national security concerns. Should AI be regulated, and if so, by whom?
Clustered Indexes and Performance
One of the most overlooked aspects of database design that I see from most application developers is the clustered index. Let us take a moment to discuss why this detail is so important, and to walk through some examples.
I'm BACK!
After a brief 8-year break, I decided to start blogging again! Here is what motivated me to start.
Getting Started with the Telerik MVC Extensions
A review of my experience using the Telerik MVC Extensions on several real world projects and instructions for integrating the Telerik MVC Extensions into your ASP.Net MVC project.
Codemash 2012 Recap & Pictures
Codemash Recap and Event Photos from Codemash 2012 including misc event photos, pictures of humorous Tweets on the large screen, a few presentations and the Pecha Kucha talks