A Competitive Analysis
Reporting Services consists of three main components: The Report Designer lets developers build reports within the Visual Studio .NET IDE. The Report Server processes the reports and renders them across the network/internet. The Report Manager manages reports and deployment subscriptions.
Crystal Reports has many product offerings. The primary ones that correlate to Reporting Services are: A .NET embedded reporting component for developers(CR Dev edition and in the integration in VS.Net) as well as a stand-alone report designer for business users(CR Pro and Dev has the stand-alone designer). Crystal Reports Server processes reports and renders them across the network/internet. It also provides management and subscription based deployment. Crystal Reports was purchased by Business Objects over a year ago and it was quickly integrated into the products line. In the new XI release all of the Crystal products are now compatible with the Business Objects products, which is a nice bonus for customers.
The thing to note when discussing Crystal Reports is the fact that there are so many versions available and people are still using versions that were released over five years ago. It's important to realize that the current Crystal Reports XI release (version 11) is a far superior product to previous editions. Numerous bugs have been fixed and new rendering optimizations have been added. This paper specifically addresses the report designer and .NET developer capabilities of Crystal Reports XI Developer edition. There is some feature crossover with Crystal Reports .NET 2003, but since that product is two years old and is based on a limited edition of Crystal Reports 9 it has become dated. Upgrading to the XI Developer edition costs around $400 for existing .NET users.
Both Crystal Reports and SSRS save report files in different formats and each has different goals. Crystal Reports has been in the market for over ten years and it uses a proprietary format that has been continuously modified with each new release. The goal is to maintain compatibility with different versions as well as sharing reports across the entire Crystal Reports product line. SSRS is a new tool and uses XML to store the report definition. The XML schema is called the Report Definition Language, or RDL for short.
Since the RDL file is text based, anyone could open the file with Notepad, examine it and make changes to it. The benefit of RDL is that it opens the door for third-parties to write tools that work with the RDL file. Some examples of what might come out over the next year are a report documenter and possibly competitive stand-alone tools for creating reports. The down side is that unless you have specific file permissions set, the report can be modified by anyone which can be a security and data integrity risk. Suddenly two people could have the same report with different numbers.
RDL also allows you to do dynamic report customization to a report within an application. A potential pitfall here is that this requires a thorough understanding of the RDL specification. Making changes to the report during runtimes requires parsing and modifying XML files. There is a steep learning curve and it requires advanced programming skills. In fact, Microsoft recently posted a tutorial on how to modify part of the RDL during runtime. The tutorial was almost 50 pages long and required writing hundreds of lines of custom code.
Crystal Reports uses a binary format for saving reports. Report objects are accessible through their APIs. There are different APIs based upon the product you use and each one gives a different level of customization over the report. Existing third-party tools exist for doing other tasks such as documenting reports and performing batch processes.