Crystal Clarity for BusinessObjects and Visual Studio .NET

Did you ever read Sherlock Holmes when you were a kid?

…or maybe CSI:Miami is more your style.

Sometimes as I work with software I find a mystery.  A mystery so unusual that I have to go searching for the answer.  At the beginning, I always assume that I know what the outcome will be, but on more than one occasion I’ve been hit by a twist at the end.

Today, my mystery surrounds Visual Studio .NET and the SDKs from BusinessObjects.

The Mystery

One of the ideas I have been promoting for a very, very long time was the idea that organizations should offload all their reporting to an Enterprise Reporting environment like BusinessObjects Enterprise and allow their .NET developers to do the real work of building complex, custom applications.  This is the best way to allow your .NET applications to scale and do what they are good at (building applications), while your reporting environment can scale and do what it’s good at (delivering insightful, actionable reports).

Earlier this week however, my customer intrigued me with a question:

“When we moved to the new release of Visual Studio, we found ourselves running into compatibility issues with the BusinessObjects XIr2 SDK.  Will we have the same compatibility issues with Visual Studio and  XI 3.1?”

My Surprise

As I dug a little deeper I discovered that this customer has significantly curtailed their use of the BusinessObjects SDKs because they wanted to use Visual Studio 2008 and BusinessObjects XIr2 didn’t support Visual Studio 2008.  They moved to Visual Studio 2008 but were only using opendocument to link to new report (instead of using the embedded Crystal Report Viewer) and they had built a custom Web Service to enable scheduling of reports (instead of using the Platform SDK).

Although I am not a developer, I was somewhat surprised at this problem.  I hadn’t done any SDK work since using the COM SDK in Visual Basic 6.  Even then I was just building a few examples.  Nothing big.  All a developer needed to do was point the Studio to the appropriate BusinessObjects Enterprise DLLs and he was off and running.  So what’s the problem?  I needed to investigate.

Was there really an incompatibility or had they missed something?

The Investigation

I started checking the forums and sending out emails to the top tier folks to see what they could tell me and the answer I got back was a complete twist from what I had expected.

First of all, there is a big difference between leveraging Crystal Reports embedded within a .NET application to provide reporting and using our .NET SDK to help provide a scalable, enterprise class reporting for your .NET applications.  I explain the difference in significant detail here:
http://www.trustedbi.com/2008/09/26/crystal-reports-embedded/

Embedded Crystal Reports

For embedded reporting, customers typically would get a free version of Crystal Reports embedded within the Studio IDE.  This version would have a lot of functionality, but the developer could always get even more features, if he paid more $money and purchased the standalone version of Crystal Reports.

NOTE:  These stand-alone versions allowed users to create .rpt files
outside of Visual Studio.  It also meant that less technical users
could build reports for the .NET applications.

It’s important to understand whether or not you are using the ’embedded’ version of Crystal Reports.  If you are doing all your report design from within Visual Studio only, then you are using the embedded report designer.  By definition the embedded report designer is always compatible with the version of Visual Studio it was shipped with.

Starting with Visual Studio 2010, Crystal Reports is no longer included “in the box”, however it is still available as a free download.  Crystal Reports for Visual Studio 2010 supports Visual Studio 2010 only and Microsoft framework 2.0 and higher- Link to PAR

For the best, most up-to-date information about Crystal Reports for Visual Studio 2010 go to:
http://www.sdn.sap.com/irj/sdn/crystalreports-dotnet

So to be clear, in order to get support for Visual Studio 2010, you need to download Crystal Reports for Visual Studio 2010.  This is the embedded version of Crystal Reports which works with Visual Studio 2010.

Stand-alone Crystal Reports

So now what about those customers who decided to purchase the stand-alone version of Crystal Reports.  What versions of Visual Studio is their Crystal Reports compatible with?

The stand-alone version definitely provides you more functionality.  It allows someone else to create a standalone .rpt file.  The developer can then include the report in his Visual Studio project.  However, not every version of Crystal Reports is compatible with every version of Visual Studio.  You need to make sure that these stand-alone versions are going to be compatible with the report rendering engine that is embedded within Visual Studio.  This rendering engine is what converts the .rpt file to .html during runtime.

Each version of Crystal Reports has an associated supported platforms document or PAR/PAM.

Standalong CR Designer Microsoft Suite .NET Framework PAR/PAM
Crystal Reports XIr2 SP6 Visual Studio 2002, 2003, 2005 Framework 1.0, 1.1, 2.0, 3.0 Link to PAR
Crystal Reports 2008 SP3 Visual Studio 2003, 2005, 2008 Framework 1.1, 2.0, 3.0, 3.5 Link to PAR

Here is another great matrix you should reference:
https://wiki.sdn.sap.com/wiki/display/BOBJ/Which+Crystal+Reports+assembly+versions+are+supported+in+which+versions+of+Visual+Studio+.NET

NOTE: Crystal Reports 2011 is currently in ramp up and does not yet support
Visual Studio 2010 or the 4.0 Framework.

Crystal Reports & BusinessObjects Enterprise

So this brings me to the situation my customer was asking about.

What if we are a customer who has implemented BusinessObjects Enterprise XI and all the reports are stored within the BusinessObjects Repository?  What support do we have from a Microsoft Visual Studio perspective?

In this situation I initially was unable to get the same clarity I did in the previous two scenarios.  There is no reference to Visual Studio within the BusinessObjects SDK PAR documentation that I could find.  In addition, if you are only using the BusinessObjects Enterprise SDK, then surely Visual Studio would be upward compatible.

As I checked the BOB forums, I did find that some folks had run into problems.

Word of Wisdom:  Do not upgrade to a new version of Visual Studio until you are sure that the compatible SDKs are available from SAP.

Let me say that again.  You should ASSUME that Crystal Reports is NOT compatible with new versions of Visual Studio.  This is due to the fact that there are Crystal Reports controls which are part of the Visual Studio IDE.  Therefore be very careful and always read the PAR.  Repeat:  Always read the PAR.

So, it’s pretty clear when it comes to Crystal Reports, but what about the BusinessObjects Enterprise SDKs alone?

You will notice that there is no mention of Visual Studio in the BusinessObjects Enterprise PAR documents.  This is because there are no embedded BusinessObjects Enterprise components in the Visual Studio IDE as there are for Crystal Reports.  Because of this looser form of integration between .NET and the Enterprise SDK, it is possible to support more variations of .NET and Framework versions.

NOTE:  Know that when you install the BusinessObjects Enterprise SDK for .NET,
the installer installs a new Crystal Viewer SDK.

For BOE XI 3.1 Platform PAR, it shows that .NET Framework 3.5 is supported, and not 4.0.   NOTE that it is shipped with the Visual Studio 2008 redistributable package, therefore use Visual Studio 2008.  Also in BOE XI 3.1, the SDK is installed in a common directory.  By default the directory is:
C:/Program Files/Business Objects/common/

Do know that it’s possible that when you upgrade to a new version of BusinessObjects, there may be issues with trying to connect to a older environment.  It shouldn’t be a problem, since there are other applications such as the Import Wizard, which are able to connect to an older CMS as well as the current environment, but that wasn’t the case for this user:  XI 3.0, .NET SDK and Visual Studio 2008….GRRR!

Although BusinessObjects BusinessIntelligence v4.0 is still in ramp up, early indications are that it too will ship with the Visual Studio 2008 redistributable package.

Compile Time vs. Run Time

After several conversations with technical support, I also found that there were some important differentiations to make between Compile Time and Run Time development and which .NET framework is supported.  Let me summarize how these scenarios are supported so there is no confusion.

BO Version Compile Time Framework Run Time Framework
BusinessObjects XI 3.1 VS 2005 or VS 2008 

Supports .NET 1.1 Framework ONLY.

Anything else may result in compiler errors

Framework 1.0, 1.1, 2.0, 3.0, 3.5
BusinessObjects v4.0 VS 2005 or VS 2008 or VS2010 

Supports .NET 2.0 Framework or higher.

Does NOT support .NET 1.1

Framework 1.1, 2.0, 3.0, 3.5

Supporting Escalations

I strongly recommend you call technical support and get clarification about your combination of products and whether or not they are supported.  If you have a problem and it appears to be a bug, engineering will only support it if it can be reproduced on a supported configuration.  Make sure you ask support whether or not you are on a supported platform.

NOTE:  You will also find that your bug will need to be reproduced
in either C# or Visual Basic .NET to be addressed by technical support.

My Advice

At the end of the day, check and double-check the PAR.  You can find them on SDN here or on the Support Portal here.

Clearly if you are going to use the Crystal Reports Viewer embedded within Visual Studio, then you need to check compatibility with your version of Visual Studio and of the .NET Framework.  Be very careful.

If on the other hand, you are only using the BusinessObjects Enterprise Platform SDK, then you are much safer ground.  In other words, if you chose NOT use the Crystal Reports Viewer embedded within your Visual Studio application and only opendocument, you can avoid the most significant incompatibilities between BusinessObjects/Crystal Reports and Visual Studio.

Before You Upgrade

Do not upgrade one part of your infrastructure unless you are sure that this does not include impacts in other places.  Do not upgrade versions of operating systems, databases, development platforms, etc. without fully considering the repercussions across your entire environment.

Sometimes you can get away with an unsupported configuration and not have any problems.  SAP is working hard to keep up with all the changes being made by our technology partners, but do understand that if you are want to use the latest and greatest development solutions from Microsoft, you may need to upgrade your entire BusinessObjects environment as well.

If your BusinessObjects environment is 3 years old, the chances are your Microsoft development environment will need to be 3 years old as well.

«Good BI»

There has always been confusion related to .NET framework for compile time and runtime.

I did not go through the whole thread though, let me summarize it below on what I understood. Feel free to query further.

XI3.1

o supports .NET 1.1 framework COMPILE time only

o A customer using anything else for compile time will result in compile errors.

o In VS version 2005/2008 ( supported for XI3.1), one has to select compile using 1.1 only.

o Above created project can be run in any .NET framework till 3.5 ( runtime support)

XI4.0

o Supports .NET FW 2.0 and above ( till 3.5) COMPILE time

o Does not support .NET FW 1.1