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.