Crystal Enterprise was designed from its inception to be extensible. Rather than provide a "black box" product, the folks at Business Objects made sure that they had a layer on top of the core Crystal Enterprise (CE) services that consisted of a Software Development Kit (SDK). A developer armed with a bit of Crystal Enterprise knowledge can customize the look, feel, and functionality of the product or simply create his own solution from scratch. This chapter provides an introduction to using the Crystal Enterprise SDK to extend the out-of-box product to meet new requirements and challenges.
Previous chapters introduced the core Crystal Enterprise services. These services, including the CMS, Page Server, and Job Server, each perform a set of reporting-related functions. Also, it has been illustrated how clicking through the Web Desktop and Crystal Management Console applications makes these services perform their jobs. Perhaps what hasn become apparent yet is that there is a layer between the CE services and the applications youve seen. This layer consists of the Crystal Enterprise SDK. Each and every feature that CE supports is available via its SDKthe SDK is the entry point for driving CE to do its job. When the Search button in Web Desktop is clicked, or the Add User button is clicked in the Crystal Management Console, those applications are making a call to the Crystal Enterprise SDK, which in turn talks to the various services to perform the requested operation.
For some people, using the Web Desktop application out of the box is sufficient. Others do some minor customization of Web Desktop to provide a familiar corporate look and feel by modifying some style sheets and/or image files. When users want to modify the behavior of the application, they turn to changing the actual code behind the application using the SDK.
Although customizing Web Desktop can be a productive way to meet a particular set of a projects requirements, sometimes the user interface and functionality of Web Desktop is overkill. In this case, it is often better simply to create a new application from scratch rather than modify the existing Web Desktop application. Also, a projects scope is often larger than simply reporting and thus there is a surrounding application that is being developed. In this case, whether Web Desktop meets the requirements or not, the developer probably starts from scratch because the reporting module needs to fit into the architecture, process flow, and look and feel of the surrounding application.
A key factor when integrating into surrounding applications is the development platform used for that application. The popular development platforms today are Crystal Server Pages (CSP), Active Server Pages (ASP), Java Server Pages (JSP) and Java servlets, and finally Microsofts .NET platform (ASPX). To meet the needs of an organization using any or all of these development technologies, the Crystal Enterprise SDK is provided in three flavors:
For the purpose of the SDK introduction, the next few sample code listings in this chapter are in ASP using the COM SDK. Near the end of the chapter the Java and .NET SDKs are visited to explain some concepts specific to those technologies.
Business Objects has announced the deprecation of CSP. This means that although applications using CSP still function, at some point in the future this functionality will be removed. The recommendation is that any new applications that are being developed use ASP instead of CSP. Because the same COM SDK is used in both ASP and CSP, the same functionality is available.