CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Peter's Gekko

public Blog MyNotepad : Imho { }

SQl server reporting services versions, Visual Studio versions and asp.net versions. Gotcha.

Reports are not my favorite part of an application. But to may an end user the reports are the most valuable parts of the system. They are a well presented and clear overview of hours, even days, of work behind the keyboard. So taking good care of the reports is important. A part of my personal dislike is caused by the tools. Crystal Reports was a sheer nightmare. MS Sql Reporting services (RS) is far better but is still a little pale compared to the rest of my toolset.

Visual Studio 2008 looks like the ultimate environment. In case you are working on an .net 2.0 project that's just a project setting. Net 1.x is a different story, I have a virtual machine to handle that. Alas for reporting services it's a different game. At the moment VS 2008 cannot create or import reporting projects. Period. But the situation is a little more complicated than waiting for the service pack. Let's investigate.

RS is part of an MS sql server installation. To the report consumers RS is just a web site. In a default install this web site is an asp.net application which runs in IIS on the sql server machine. The RS web app stores all report data in an own instance of sql server. That scenario is not acceptable for a lot of organizations. The RS web site will live in the DMZ but a database server should be far away behind a firewall. Thank goodness the data for the reports do not have to live in the same db server as RS. They can be anywhere, in any format. All the report needs is a connection string. As the RS database is only used by the web app on the same machine there are a lot of ways to hide the db server to the outer world. All interaction, including uploading reports, is done through the web site.

So setting up RS requires another sql server license. As far I have read al the docs it could be possible to set up RS in such a way that it will use a database on another server. But as configuring reporting services is tricky enough as it is I have skipped this option.

RS is a part of several sql server versions: sql 2000, sql 2005 and sql 2008. Installing sql 2000 will result in an asp.net 1.1 web application, installing 2005 will result in an asp.net 2.0 web application. I am not sure about 2008, that's well hidden in the docs. As moving to another version of a database server is a far bigger step than moving an application to another .NET version I don't have any hand on experience yet.

We experienced quite a gotcha when we upgraded a web application to asp.net 2.0. All went well until we arrived at the RS part. The server is an old reliable Windows 2000 server with sql 2000 RS. The main problem is that Windows 2000 cannot run two different asp.net versions (2.0 for the application 1.1. for RS 2000) in the same web site. That takes server 2003. So upgrading the app requires upgrading either the RS to 2005 or even the complete OS to 2003.

Another gotcha is in the report definitions. It takes Visual Studio to create and edit report definitions. The existing reports were all built using VS 2003 and worked good enough on RS 2000. (Given the many little quirks I talked about in other posts). VS 2008 does not accept a reports project, VS 2005 does. But when importing the project it converts the report definitions. After that RS 2000 no longer understands the reports. RS 2005 does.

Given all this we have several options

  • Dive into configuration hell
  • Stay with RS 2000. Which will require an upgrade of the server OS and we have to keep VS 2003 alive
  • Move to RS 2005. It is a big step to move to another DB server version. But as it is only on the web server that should be manageable. We have to keep VS 2005 alive. Or not move to 2008 yet.
  • Wait for RS 2008 and VS 2008 integration. Not an option, it should have been operational yesterday.

My main problem with RS is that it ties my application to stricter versions of it's infrastructure than I had believed. I've been too naive again and any advice is more than welcome.


Published Jun 18 2008, 11:48 AM by pvanooijen
Filed under:

Comments

James Counihan said:

SSRS (2k & 2005) requires an instance of SQL Server, but that instance doesn't have to be on the same box as IIS and the SSRS Web Service. It's not difficult to configure.. most problems have to do with what's called the 'double hop issue', where IIS, SSRS, the SSRS ReportServer database and the source data are all on separate boxes. Google the double hop and you'll find tips.

The other thing is that SSRS doesn't require a separate SQL Server instance (or license). It just installs two databases in a current SQL instance somewhere - ReportServer and ReportServerTempDB.

Haven't worked with 08 yet..

# June 18, 2008 11:41 AM

Thomas Williams said:

G'day Peter - sorry to hear about your pain! We upgraded to SQL 2005/Windows 2003 on a new server and had to migrate (I thought that was bad) in early 2007. Shame you can't wait for SQL 2008, that's what my plan is when it's all fully integrated.

Cheers, Thomas

# June 18, 2008 7:54 PM

Henk J Meulekamp said:

<i>The server is an old reliable Windows 2000 server with sql 2000 RS. The main problem is that Windows 2000 cannot run two different asp.net versions (2.0 for the application 1.1. for RS 2000) in the same web site.</i>

I may not understand the problems you are having here, but it is possible.. We are still using an old w2k server, with RS 2000 and ASP 2.0 sites on the same sites.

We also moved our report projects to 2005. When we need to deploy to clients who are still on 2000, you'll only have to remove two (sometimes 3) tags from the RDL and change the namespace decl in the header. It is not elegan, but it works and allows you to use the better 2005 reporting designer (datetime calendar support in client web UI).

Email me if you need details for this.. henk(at)meulekamp.netherlands

# June 20, 2008 4:26 AM

pvanooijen said:

Thanks everybody for your help.

Having both a full VS 2005 and VS 2008 installed on my machine is no big deal. They don't bite eacht other and Resharper 4.o will install in both.

@James The double hop is the configuration nightmare I had in mind. We're allready facing problems with that. I wasn't aware of the term "double hop" I'll do a fresh google on that and will recap when it brings insight

@Henk You can have ASP 2.0 and  and RS 2000 on on ew2k server. But it takes two different sites, with two different port numbers. Not nice, good starting point for configuration hell.

VS2005 converts the 200 reports on imprting. Without a glitch, no need to fiddel with the RDL internals by hand.

# June 22, 2008 4:10 PM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add
Check out Devlicio.us!

Our Sponsors

This Blog

Syndication

News