Before I go over the architecture of the sample application, I want to go over the differences between Visual Studio 2005 Crystal .NET and Visual Studio 2003 Crystal .NET. This comparison does not include standalone Crystal 9 or 10.
The biggest difference is the Crystal Viewer. Many complaints on the mailing list center around printing with the viewer server control contained in Crystal .NET in VS 2002 and VS 2003 . Since the ASP.NET control is server based, any application using that control for printing has to print using server based printers. This led to most ASP.NET applications using Crystal to add a lot of code to output to PDF in the browser. This usually involved coding output to the browser and streaming the file to a memory stream. The article "Automagically Display Crystal Parameters: Part III" provides code examples on how to accomplish this.
In VS 2005, the Viewer allows client side printing out of the box. Drop the Viewer on a web page, bind it to an existing report, and run the project. A simple report will display in the viewer ad allow you to export it to pdf and excel. This is so much cleaner than the VS 2003 version.
Another stellar improvement to the Viewer is the ability to preview your report in the designer. In the previous .NET version, to preview the report look and feel you had to either use a standalone version of Crystal, or run your application to view it. Now, there is a way to preview that is similar to the standalone versions of Crystal. This is quite helpful.
Another difference is that this version is based on the Crystal 10 engine which includes a more efficient data retrieving engine. Also, it includes the ability to attach to ADO.NET datasets and classes. I will attempt to attach to the ObjectDataSource in a future part of the series.
The ObjectDataSource is a quick and easy way to attach to your data layer using an Object Oriented pattern (or close to it) to access the data. I will be exploring it's use with Crystal in a future article.