Replace Crystal Reports in Delphi by a service-based .NET implementation
Project duration: 8 months
Brief description
In a Delphi-based UI application for a laboratory analysis system, the report output based on the Crystal Reports tool is outdated, as its manufacturer is continuing development only of its .NET technology variant. The UI application is enabled to output reports with the latest .NET release of the report tool. Advantages: 1. existing RPT files can still be used, even after editing with modern tools; 2. easy update to future tool releases is possible; 3. openness for extensions; 4. development work is distributed to a larger group of people; 5. good testability due to modular architecture; 6. users do not notice any difference.
Supplement
The brainstorming leads to an architecture where the Delphi client communicates via REST interface with an application server and the latter communicates with a .NET command line application that encapsulates the Crystal Report specific parts. Delphi XE5 contains support for REST and JSON, so the implementation of the REST clients requires little new code. The REST server and the .NET command line application communicating with it get implemented by two PTA employees assigned to the customer. The necessary adaptations in the UI are implemented by customer employees in the XML-based UI definition language.
Subject description
The acronym REST stands for 'representational state transfer'. This software architecture is specially suited for HTTP-based interfaces. Within this framework, resources are selected by the URL, while data content is passed as JSON in the request or response body. The requested action follows from the HTTP verb, i.e. GET, POST, DELETE. Additional attributes may be appended as query parameters at the URL. The tool Crystal Report is particularly popular because it enables the definition of complex reports with a graphical design software. Switching to another report tool would have been disruptive and so is avoided, as extensive reworking is to be expected. Likewise, reprogramming of the Delphi application with .NET means can only be achieved at great expense of time and under possibly strong disruptive side effects.