# Glossary of Terms

**Assembly**
 An assembly is a file that is automatically generated by the compiler upon successful compilation of every . NET application. It can be either a Dynamic Link Library or an executable file. It is generated only once for an application and upon each subsequent compilation the assembly gets updated.

**Device**
A base class, defined in the PepperDash.Core library (`PepperDash.Core.Device`).  It can represent a physical device, or a virtual device or behaviour.  Generally, most new classes defined in the Essentials ecosystem should derive from Device.

**DeviceManager**
A static class (`PepperDash.Core.Essentials.DeviceManager`) that contains an unordered collection of Devices.  Devices are added/registered to the DeviceManager and later can be retrieved as references by Key.

**Essentials Application**
A Crestron SIMPL# Pro application that is made up of the Essentials Framework and any optionally any number of Essentials Plugins

**Essentials Framework**
The collection of core libraries that make up the framework

**Essentials Plugins**
SIMPL# Pro libraries that reference the Essentials Framework and are loaded at runtime to add or extend functionality

**IKeyed**
An important interface defined in PepperDash.Core that requires a string property named Key, whose value must be unique.

**PepperDash.Core**
A SIMPL# utility library referenced by Essentials Framework.
