Hosts and Models

You can think of Coden as a bridge between a "host" application and Ephere's proprietary modeling framework. A "host" is a program which you want your plug-in to extend or be exposed to. Our modeling framework is a set of libraries that interpret managed code you write and understand how to use it as a plug-in in a whole array of such host applications. We do that hard work of making sure plug-ins you write once stay compatible in all supported host applications so you can concentrate on functionality rather than integration.

The Adapters

Each host application supported by Coden has a special adapter extension written for it. This adapter is usually a plug-in that the host can load. In turn the adapter is responsible for loading all Coden plug-ins and passing them opaquely to the host as its own native tools. As a result the host application does not distinguish Coden plug-ins from any other native plug-ins which it supports. Native GUI and plug-in structure is used for each host.

Ephere Modeling Framework

Whenever you write code that you intend to use as a Coden plug-in you need to follow certain guidelines to ensure that it is properly understood by our modeling library (the term "modeling" here relates to programming and is not to be confused with 3d modeling). We outline these guidelines in a separate document.

This can be achieved using different approaches, and you determine which method to use based on your preference. For example, one way uses a special "pluggable" attribute which you specify inside your code at a class, function, or assembly level. In such a case, if you want to expose just one function in your plug-in assembly as a plug-in (with the rest of the assembly containing code that complements that function) you would mark it as pluggable. Conversely, if you wanted each function in your assembly to be a separate plug-in you can mark the whole assembly as pluggable. Another approach allows you to define an external file responsible for specifying pluggable components in some existing plug-in assembly.

You can find more details about exposing your plug-ins to Coden in a separate document.

Our modeling framework scans and "picks up" all pluggable methods and classes. It then categorizes and adds them to its plug-in library. The plug-in library is accessed by a host adapter whenever the host loads and plug-ins that can be adapted to that particular host are processed. The rest of the plug-ins are ignored by the adapter but they can be used by another adapter that supports the plug-in type.