Model-View-Controller design

To minimize round trips to the server when users modify reports, the RAS SDK uses a Model-View-Controller architecture:
  • The Model layer has libraries that define the information used to construct a report. This layer also contains the visible elements of a report, such as text labels, charts, and formulas.
  • The View layer provides the means to create a user interface that displays a report based on data from the model layer.
  • The Controller layer is implemented by a library that defines classes called controllers, which let users modify reports.
Each controller is responsible for modifying the data defined by its corresponding model. For example, the ReportDefController controller is used to modify Areas, Sections, and ReportObjects defined by the ReportDefinition model. If no modification is required, the Areas, Sections and ReportObjects can be directly accessed through the ReportDefinition model. The view layer is the component that is available for the development of a user interface to view reports; it can be implemented by using the RowsetController controller, PrintOutputController controller or Viewers SDK.
All the models and controllers are encapsulated by the ReportClientDocument object model.