This article gives an overview of the Adobe Creative Suite extensibility technology, which provides a common infrastructure for development and deployment of extensions that work across a set of supported Adobe Creative Suite applications. You can develop extensions for versions CS5 and later.

Adobe Creative Suite extensions

An Adobe Creative Suite extension is a set of files that together extend the capabilities of one or more Adobe Creative Suite applications. Developers can use extensions to add services and to integrate new features across the applications in the suite. CS Extension Builder provides developers with a consistent platform in which to develop and deploy extensions across the suite. CS extensions run in much the same way in all Adobe Creative Suite products, providing you with a rich and uniform experience.

CS extensions use ActionScript to create cross-platform user interfaces. Extensions also have access to the host application's scripting interface, and can use these scripting APIs to interact with the application.

Tight integration with the suite products allows you to control extensions as if they were built in to the host applications. For example, you invoke extensions from the application's menu and, depending on the type of extension, you can dock, undock, and provide fly-out menus for them. You can add or remove extensions quickly and easily to customize Adobe Creative Suite applications to your needs.

The Kuler panel, developed by Adobe and available in some CS products, is an example of an CS extension. At one time, this was only available as a web-hosted application for generating color themes, but now the Kuler extension makes the online Kuler service accessible within the suite products and allows you to access the color themes available in the web-hosted version.

Kuler also integrates with the host application, allowing you to create themes that can be added, for example, to Photoshop as a swatch.

Adobe Creative Suite extensibility architecture

The Adobe Creative Suite extensibility architecture is designed to make it easy to develop and deploy extensions. This section describes the components and explains how they work together to run extensions.

  • Adobe Creative Suite applications that enable extensibility (such as Photoshop and Illustrator) link to the extensibility architecture through a native library. This library performs the standard tasks involved in listing, invoking, and communicating with services, and in requesting defined actions that are executed in the host.
  • The CS applications are made aware of the extensions (services or extended features) available to them by the CS Service Manager. This key component in the extensibility infrastructure runs on the client machine along with the products, and provides a common way to manage extensions across the suite.
  • The Service Manager communicates with Adobe Extension Manager to provide new content or updates to existing extensions. Once installed or updated, extension files are saved in a common location in the file system. CS applications can load extensions from this common location.

This diagrams shows the components and their relationships:

Anatomy of an extension

A deployed Adobe Creative Suite extension has these components.

File or Folder

Description

MyExtension.swf The Flash file that provides the interface to the extension. The SWF file is a compiled AIR or Flex application. It can embed the SDK ActionScript libraries that allow the extension to communicate with the host application and the extensibility infrastructure.
CSXS/manifest.xml The manifest, a configuration file that lists the host applications that can load the extension and the supported locales, so that the correct resources can be used. The development environment offers a UI for editing the configuration.
icon_*.jpg Optional icons used to represent the extension when docked. You can provide three different icons: one for the normal state, one for the rollover state, and one for the disabled state. Specify these as part of the configuration.
locale/*.* Optional folder containing localized string resources. A default localization file, messages.properties, stores key-value pairs that map UI strings to resources. Each specific locale folder contains a messages.properties file for that locale.

Extension management

The CS Service Manager is a program that runs in the background whenever extensions are invoked by Adobe Creative Suite products. This service determines what extensions should be loaded in an application, based on the information provided in each extension's manifest file. To specify or change this information, edit the project properties. Every time you install, uninstall, or update and extension, the CS5 Service Manager reloads the extension's manifest to reflect those changes. The next time you restart a CS5 application, the CS5 Service Manager notifies that application of the changes.

You can install your packaged and signed Adobe Creative Suite extension through the Extension Manager. The Extension Manager installs all extensions in a common location, the extensions/ folder under CS5ServiceManager or CS5.5ServiceManager, that all the Creative Suite applications can access. The exact location is specific to the platform and Creative Suite version:

  • In Windows: C:\Program Files\Common Files\Adobe\CS5[.5]ServiceManager\extensions\
  • In Mac OS X: /Library/Application Support/Adobe/CS5[.5]ServiceManager/extensions/

Within the extensions/ folder, extensions are organized by the assigned name (that is, the bundle identifier, not the display name that appears in the host application's Extensions menu). You can remove an extension through the Extension Manager's UI.

Where to go from here

This article gave an overview of the Creative Suite extensibility technology and detailed the core components of a CS extension. For further information about developing a CS extension or developing with CS Extension Builder 1.5 visit the Creative Suite Developer Center.