The elm client API for .NET provides implementations of the elm web API for .NET-based applications. There is also a COM Interop wrapper for the .NET API that can be used by legacy VB6 applications. The API is designed around a single abstraction, called a control manager, that simplifies the steps needed to add licensing to a client application. Three control manager implementations are supplied, one for desktop apps, one for server apps, and one for web apps with user licensing.
Each control manager offers these main features:
- Registers an instance and/or user of a product
- Validates that the current instance and/or user should have access to the product
- Manages client-side state, such as registration status and instance/user guids
- Supports grace periods that allow users to access the product when offline
- Detects whether the end-user is modifying the system clock in order to gain unauthorized access to the product
Additionally, the Desktop control manager offers component licensing capabilities that were introduced in version 3.1 of the elm web API and version 4.0 of the Client API, and offline checkout capability for concurrent-use product licenses and component tokens starting with version 3.2 of the elm web API and version 5.0 of the Client API.