Skip to main content Skip to footer

Does ComponentOne Report Viewer Work on Windows Azure?

The short answer is both yes and no. We can use SQL Azure as the data source, hosting the viewer in ASP.NET, Win Forms or WPF applications with very little issue. However, the ASP.NET Ajax viewer does not work on Azure at this time. We are scheduling the work to provide complete support for Azure, and I'll update this post when there is progress.

[update 2010-10-09]

I'm using an internal build of our reporting controls. The viewer works fine on Azure now, we need to update some of the other rendering options. The Azure updates won't be in our upcoming 2010 v3 release, but we should have them rounded out shortly after that is unleashed on the world.

[/update]

[update 2011-01-05]

The updates were in our 2010 v3 release, and I've been recreating my talks with this version. I haven't found any issues with the report viewer on Azure, so use it in good health!

[/update]

Using SQL Azure as Reporting Data Source

After you set up your SQL Azure database, you can generate a connection string by clicking the Connection Strings button at the bottom of the database list. Here, I've taken the AdventureWorks Sample for Azure and uploaded it to SQL Azure.

image

We need to slightly modify the ADO.NET connection string, so it looks like this:

Provider=SQLNCLI10.1;Persist Security Info=False;User ID=@;Initial Catalog=AdventureWorksLTAZ2008R2;Data Source=tcp:.database.windows.net;pwd=

Once you enter the connection string, you you'll see this warning:

image

Don't panic, this is an Azure limitation, and we're working on a way around it. SQL Azure doesn't support system stored procedures found in SQL 2005/2008, but if you click OK you'll still see all the usual tables, views and stored procedures.

image

If you want to use a SQL Statement, don't use "Select *". Instead, you need to list the columns you want returned to the report. Again, this is a SQL Azure limitation-we can't peek into tables on SQL Azure like we can on SQL 2005/2008.

From this point, you can design a report as normal. The report viewer can be hosted in any standard ASP.NET Ajax, WPF or Win Forms application (remember to open the Azure firewall if reports are being run from multiple locations).

ASP.NET Ajax ReportViewer and Azure

This is where the wheels fall off for us, and it's because of the innovative WebPaper technology we use. If you've used Crystal Reports or SSRS in the past, and seen a tremendous difference between the HTML output and the PDF output, you know how bad this can look. Our WebPaper technology ensures pixel-perfect reports, exactly as designed, whether rendering in HTML or PDF. We do this by rendering HTML reports as interactive graphics, using graphics libraries not supported on Azure. The issue isn't with the viewer, pr se, but in the C1Report and C1PrintDocument DLLs which run behind the scenes.

We're scheduling the work to update the libraries not supported by Azure. I'm not sure if this will make it into our upcoming 2010v3 release or a service release afterwards--I'll provide more information as development progresses.

The viewer now works great! I've demonstrated it at Philly Code Camp and Pittsburgh Code Camp. Like I mention in the update above, we have some work to do on other rendering methods (like RenderToStream), but all the cool work in 2010 v3 needs to be completed first.

If reports on Azure are important to you, let me know and I'll bring you into the loop for some beta testing as we get to that point. Thanks!

MESCIUS inc.

comments powered by Disqus