Serializable Object Models in Crystal Reports

Four object models are available for Crystal Reports: two that ship with Crystal Reports and two that are available by upgrade.

This section explains which object models can be serialized for use with an out-of-process Session State server.

Note

For an introduction to out-of-process Session State, see Out-of-Process Session State.

Serialization and the CrystalReportViewer object model

The CrystalReportViewer object model is a limited object model that is included within the API of the CrystalReportViewer control. Due to the limited scope of this object model, it usually is not recommended in favor of the more powerful ReportDocument object model.

However, the CrystalReportViewer object model can be used on a Web farm or Web garden. That is because CrystalReportViewer is contained within a Web control, and Web control persistence is managed on the client side, with View State. View State persistence places the state of ASP.NET Web server controls into an encrypted string, and then includes that encrypted string as a hidden form field within the ASPX page during page reloads. The state information can be delivered to any ASP .NET worker process.

Note

This form of client persistence works only within page reloads. View State cannot persist information across pages. For more information on View State, see ViewState and Persistence of the CrystalReportViewer Object Model.

Serialization and the ReportDocument object model

The ReportDocument object model is a more powerful object model than CrystalReportViewer, and therefore it is usually the recommended object model to use in Crystal Reports.

Note

For information on the ReportDocument object model, see ReportDocument Object Model.

However, in Crystal Reports versions 9 and earlier, the ReportDocument class could not be serialized and therefore, by itself, could not be used with an out-of-process Session State server in a Web farm or Web garden scenario.

This limitation has been addressed in Crystal Reports 10 and up by bridging the ReportDocument object model to a serializable object model, ReportClientDocument.

The ReportClientDocument object model is accessible in several different ways. For details, see Report Application Server (RAS).

To use the ReportDocument object model in a Web farm or Web garden, you need the ASP.NET out-of-process Session State server to store the state of the serialized ReportDocument instance and an unmanaged RAS server to store the Crystal report .rpt file.

Note

You can serialize the ReportDocument object model only if you have installed the RAS server, and then set the ReportDocument.ReportAppServer and ReportDocument.EnterpriseSession properties to address that server.

Serialization and the ReportClientDocument object model

The ReportClientDocument object model can be serialized. The ReportClientDocument object model is accessible in several different ways. For details, see Report Application Server (RAS).

Note

For information on the ReportClientDocument object model, see ReportClientDocument Object Model (RAS).

The InfoObject object model

The InfoObject object model is part of the Crystal upgrade solution, Crystal Reports Server or BusinessObjects Enterprise. Crystal Reports Server and BusinessObjects Enterprise are multi-server enterprise solutions that are typically an alternative approach to an existing Web farm or Web garden. For more information, see Upgrade Options.

Continue to Configuring Crystal Reports for a Web Farm or Web Garden.

See Also