SQL 2005 Reporting Services And Visual Studio 2008 Incompatibility

Sometimes it's hard to keep up with all the 2005 this and 2008 that from Microsoft. I'm frequently amazed that Microsoft's product management can not only keep it all straight, but can also coordinate releases and dependencies across product lines, especially when those dependencies don't even fall within the same division or product area. But as fate would have it, today I had the misfortune of encountering one of those lesser known "oh ya, it's not well known but it's not compatible when you do that" situations.

The incompatibility happens when building reports with Visual Studio 2008 and then deploying those report definitions (RDL files) onto SQL 2005 Reporting Services. Database reports created with VS 2008 work great with SQL 2008 Reporting Services, but are incompatible with SQL 2005 Reporting Services. Only report designs created in VS 2000 and VS 2005 are compatible with SQL 2005 Reporting Services. If you try to deploy a VS 2008 designed report onto SQL 2005 Reporting Services, you get something like this nice little error message:

Error 2 The report definition is not valid. Details: The report definition has an invalid target namespace'http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition' which cannot be upgraded.

I learned this after creating a number of reports using VS 2008, and then attempting to deploy them on server running SQL 2005 Reporting Services. This same server also supports another application that only runs on SQL Server 2005 and hasn't yet been tested with or upgraded to SQL Server 2008. That upgrade probably won't happen for some time. All my previous development, testing and deployments had been on servers running 2008 Reporting Services, which is why I hadn't encountered the problem earlier.

After doing some Google searches, it quickly became apparent I'm not the only person on the planet to encounter this problem. Matter offact, this issue was raised (and not resolved, nor a workaround provided) back in September 2008 when SQL Server 2008 was transitioning from beta bits to officially released product. Other Microsoft users began using VS 2008 to create and maintain report designs, all the while not knowing they would only work on SQL 2008 Reporting Services. Visual Studio 2008 would also kindly upgrade existing 2005 reporting projects to the new 2008 format without customers realizing this was a one way move and they'd lose compatibility with 2005 Reporting Services. Most customers learned the hard way (after the report designs were already created or upgraded).

The problem, or bug report, was reported to Microsoft late last summer and then subsequently closed in October 2008. Here's the response from Chris B. of the SQL Server Reporting Services team:

"The behavior you are seeing is by design. You cannot publish a report defined in the SSRS 2008 RDL schema to a SSRS 2005 report server. Once you upgrade a report project from VS 2005 to 2008, it converts all of your reports to 2008. If you wish to be able to publish reports to a SSRS 2005 server, you need to use with VS 2000 or VS 2005."

I think what he basically is saying is that Microsoft chose not to build in any backwards compatibility, or a compatibility mode option, between the releases as they frequently do with other products, such as the Office products.

Teo Lachev, MVP and MSDN forum moderator, explained Microsoft's reasons for not maintaining compatibility this way:

"The reality is that there were so many changes and enhancements we desired to make to the product or needed to, that backwards compatability of the design environments was not realistic. Many of the changes were driven by our customers.  There were large changes in our report design controls themselves, then the 'wiring' process to BIDS because we wanted to upgrade to VS2008 at the same time, RDL itself was enhanced to support great new features, and then of course the server components had to change to support the new RDL as well as the many other improvements done on the server to enhance performance and processing.

It would not be a trivial effort to just make everything work back AND forth between 2005 and 2008 design environments.  The handling of the two RDL versions alone would add a lot of extra code to design tools.  It was decided it was not realistic and if a decision had to made our customers as a whole, would prefer to see more of the enhancements and improvements make it into the 2008 proudct..."

I'm guessing the costs and productivity hit customers have experienced aren't trivial either. So what are customers' options? Here's a form post response by Jian Kang, a Microsoft online support representative, suggesting a SQL Server upgrade is the best option:

"As far as I know, it's not naturally supported to downgrade SSRS 2008 projects to SSRS 2005.

I would suggest you upgrade the report server to SSRS 2008 if possible. Or if there are few reports in the project, we can develop the whole project in SSRS 2005 and use SQL Server 2008 databases as the data source."

Not everyone can easily upgrade their database server. Beyond the software costs involved, the application may not be ready for a database upgrade to SQL Server 2008. Or customers may be in a situation where they need to support reports on both 2005 and 2008 Reporting Services. That's a very likely scenario for vendors using SQL Server in their products, and I would imagine, is a frequent situation in many IT shops.

So in my case, the options at this point are: 1) upgrade the existing server to SQL Server 2008 (which isn't actually an option at this time due to the constraint of the other application using the same database server), 2) deploy the reports on another server that is already running SQL Server 2008, 3) set up a new server on SQL Server 2008, or 4) go back and recreate all of the reports in Visual Studio 2005 (or 2000).

3 out of 4 of those options have positive revenue outcomes for Microsoft, and the fourth option is a big productivity loss for customers. For the benefits gained via the new capabilities in the RDL schema change, seems like the customer takes a productivity hit and/or gets to pay for a database server upgrade, no matter what option is chosen.

Like this? Here are some of Mitchell's recent posts. Mitchell's Book Recommendations: Also visit Mitchell's other blogs and podcasts:

Visit Microsoft Subnet for more news, blogs, opinion from around the Web. Sign up for the bi-weekly Microsoft newsletter. (Click on News/Microsoft News Alert.)

Join the Network World communities on Facebook and LinkedIn to comment on topics that are top of mind.

Copyright © 2009 IDG Communications, Inc.