Not a developer? Go to MovableType.com

Documentation

Plugins vs. Components

The most frequent question developers have is “what is the difference between a component and plugin?” On a technical level there is actually very little difference, but conceptually there is a big difference.

The intent of a component is to define a set of semantics for the central Movable Type registry. In the process they also define the features and functionality that utilize the semantics they define. A plugin on the other hand adds features and functionality utilizing pre-existing registry semantics.

A perfect example of this differentiation is found in the extensible importing framework. The core “CMS Component” is what provides the blogging and publishing system of Movable Type. Without the CMS component there is little relevance to any import functionality because the CMS component defines the core data model for the system that data would be imported into. Therefore the import framework is not “core.” The import framework is a set of APIs provided by the CMS component.

Other components within the system define their own internal and external APIs to be utilized by developers, bloggers and readers.

Back

2 Comments

Jay Allen

Jay Allen on December 4, 2007, 1:39 p.m. Reply

So in general, most developers will be creating “plugins” and not components meaning that their work modifies or extends the componenents shipped with the app.

However, if you want to create completely new functionality which goes beyond extending the bundled components, you’ll be creating a component instead.

Does that sound about right?

Jay Allen

Jay Allen on December 4, 2007, 2:02 p.m. Reply

Furthermore, would it be accurate to say that a component is, in MT 3 parlance, an “app” or is that too limiting? Can components be comprised of a number of MT3-style apps?