Skip to main content

Architecture

The Spotfire architecture is conceptually divided. The Automation APIs control Spotfire, and the Extension APIs enable developers to add functionality.

Namespaces

The Spotfire namespaces define the Automation and Extension APIs. They are distributed over three top-level namespaces:

  • The Spotfire.Dxp.Application namespace groups the Spotfire functionality handling the application logic and visual parts, foremost the Document, but it also provides hooks for additional analytic capabilities.
  • The Spotfire.Dxp.Data namespace groups all classes holding and handling data structures, foremost the DataManager.
  • The Spotfire.Dxp.Framework namespace provides the building blocks of the Document, but is also contains classes for licensing, persisting and preferences.
See also:
  • Infrastructure
    The infrastructure comprises client runtime and programming concepts not directly related to the features of Spotfire. Particularly the Document Model Framework must be mastered.
  • Spotfire API Reference
    The detailed API documentation lists the APIs from the namespace perspective.

Automation API

The state and behavior of Spotfire is controlled via the Automation API. Virtually every action available to the end user can be automated, like opening a file, setting a filter range, applying a custom tool, and saving a file. Nevertheless, Spotfire is primarily automated when adding new functionality.

The AnalysisApplication class is the entry point to the class hierarchy:


See also concepts and classes:
  • Application
    The AnalysisApplication represents a running Spotfire instance. It has methods to open and save a document, and provides access to application level services and tools.
  • Document
    The Document orders runtime objects into an object graph. It provides access to all nodes in the application.
  • Data
    Data is represented as a set of tables in the DataManager. It is similar to a relational database, but is cached in memory and optimized for speed. Relations between tables are explicitly defined.
  • Filters
    Filters are used to select subsets of rows in tables. There is usually one filter per column. The Filter Panel uses a defined set of filters called a filtering scheme, but several filtering schemes may coexist.
  • Pages
    Pages contain visuals and panels. A visual displays a particular view of the data, while a panel manipulates the state of data.

Extension API

There is a well defined extension mechanism enabling you to add custom capabilities to Spotfire. The extension procedure is straightforward:

  1. Break down the problem and determine the appropriate extension points.
  2. Register an extension for each point.
  3. Implement the base classes tied to the respective extension points.
See also:
  • Developing on the Spotfire Platform
    A Spotfire extension is the smallest functional unit added to the platform. It is developed in Visual Studio® and is included in a Spotfire AddIn, enabling versioning, licensing, deployment and loading.
  • Spotfire SDK
    The SDK provides required Spotfire developer resources: the Spotfire Extension Project Template, development assemblies, example projects, and the Package Builder application wrapping the extensions for deployment.