Content
The Telligent Evolution Platform includes several social services that make it simple for developers to add common functionality to their applications. This functionality is exposed as a set of core services for content. Telligent Evolution recognizes content as a minimal set of information needed to function with core services.
An overview
The Telligent Evolution Platform defines a generic content model. This model is used to inter-relate all content within an instance of Telligent Evolution. Content lives within Applications, which live within Containers:
The diagram below shows the relationship between Content, Applications, and Containers, as well as their supporting types with examples of each on the right.

Each content, application, or container instance, would represent a single instance of an entity: A single blog post, a single blog, or a single group.
The content type, application type, and container type identify content, applications, and containers (respectively) to Telligent Evolution by providing the necessary API for the platform to communicate with the custom applications entities.
IContent
The social services need a minimum set of data to function. All of these necessary properties are contained within the Telligent.Evolution.Extensibility.Content.Version1.IContent interface.
Content created on the site must implement this interface for the social services to support it. Each piece of content is associated with a particular application.
IApplication
Applications store content in the Telligent Evolution platform. All content must have an application associated with it. Applications are things like blogs, forums, etc. All applications must implement the Telligent.Evolution.Extensibility.Content.Version1.IApplication interface to interact with the core services.
IContainer
Containers house applications in the Telligent Evolution platform. Containers must implement the Telligent.Evolution.Extensibility.Content.Version1.IContainer interface to interact with the core services.
Content model type plugins
Social services provide services for site content, quickly adding additional functionality. Core services rely on content model type plugins to identify custom entities to Telligent Evolution.
IContentType
ContentTypes are plugins that identify entities mapped to the content model to Telligent Evolution. In general, they provide a method to retrieve the type of content they represent as well as service specific functionality. A plugin implementing the Telligent.Evolution.Extensibility.Content.Version1.IContentType interface should be created for each type of content.After generating the Guid, it is recommended the value be hard-coded into the code somewhere, preferably in one code location that is then referenced by the IContent and IContentType implementations.
IApplicationType
Similar to content, the services need to know how to retrieve applications. The Telligent.Evolution.Extensibility.Content.Version1.IApplicationType interface defines the necessary properties and methods to support applications.
IContainerType
The Telligent.Evolution.Extensibility.Content.Version1.IContainerType interface defines the properties and methods to support containers.
Extending types
The IContentType, IApplicationType, and IContainerType interfaces define the bare essentials needed to support content. Some services require additional information. Extended plugin type interfaces are used to ensure that required information and functionality is provided. All the interfaces used for these purposes extend the associated type interface.
Below is a list of the various extension plugin type interfaces and the service that uses them.
Tips and tricks
This section describes some of the less obvious uses of the structure and how to solve some issues that come up.
Implement child interfaces as well
Social services like the comment service allow for comments on IContent but not IApplication or IContainer. This can pose an issue if comments need to be made on an IApplication or IContainer. To get around this, also implement IContent if creating an application and implement all three if creating a container. ContainerId, ApplicationId, and ContentId should all use the same Guid and ContainerTypeId, ApplicationTypeId, and ContentTypeId should all use the same Guid as well.
Use explicit implementation if necessary
It may be that some of the properties in IContent conflict with a property already on the content object. If this is the case, explicitly implement the interface.
Guid IContent.ContentId
{
get { // Code here }
}
Guids
Guids used for content model type plugins like ContentTypeId are generated during development and used to identify the type with the services.
Guids can be generated a variety of ways:
- In code: Guid.NewGuid();
- In SQL: select NEWID()
- Via the Telligent Evolution site: Control Panel > Site Administration > Widget Studio > Manage Widgets > Developer Tools (on the right)