Skip to content

.NET/C# client library for Ignia's OnTopic CMS.

Notifications You must be signed in to change notification settings

satheeshbabu/OnTopic-Library

 
 

Repository files navigation

OnTopic Library

The OnTopic library is a .NET-based content management system (CMS) designed around structured schemas ("Content Types") and optimized to simplify team-based workflows with distinct roles for content owners, backend developers, and graphic producers.

OnTopic package in Internal feed in Azure Artifacts Build Status

Roles

The OnTopic library acknowledges that the roles of developers, designers, and content owners are usually compartmentalized and, thus, optimizes for the needs of each.

  • Content owners have access to an editor that focuses exclusively on exposing structured data; this includes support for custom content types (e.g., "Job Posting", "Blog Post", &c.)
  • Backend developers have access to data repositories, services, and a rich entity model in C# for consuming the structured data and implementing any business logic via code.
  • Frontend developers have access to light-weight views based on purpose-built view models, thus allowing them to focus exclusively on presentation concerns, without any platform-specific knowledge.

This is contrasted to most traditional CMSs, which attempt to coordinate all of these via an editor by exposing design responsibilities (via themes, templates, and layouts) as well as development responsibilities (via plug-ins or components). This works well for a small project without distinct design or development resources, but introduces a lot of complexity for more mature teams with well-established roles.

Multi-Device Optimized

In addition, OnTopic is optimized for multi-client/multi-device scenarios since the content editor focuses exclusively on structured data. This allows entirely distinct presentation layers to be established. For instance, the same content can be accessed by an iOS app, a website, and even a web-based API for third-party consumption. By contrast, most CMSs are designed for one client only: a website (which may be mobile-friendly via responsive templates.)

Library

Domain Layer

  • OnTopic.Topics: Core domain model including the Topic entity and service abstractions such as ITopicRepository.

Data Access Layer

Note: Additional data access layers can be created by implementing the ITopicRepository interface.

Presentation Layer

  • OnTopic.AspNetCore.Mvc: ASP.NET Core 2.x implementation, including a default TopicController, allowing templates to be created using *.cshtml pages and view components.
  • OnTopic.Web.Mvc: ASP.NET MVC 5.x implementation, including a default TopicController, allowing templates to be created using *.cshtml pages.
  • OnTopic.Web: Legacy ASP.NET WebForms implementation, allowing templates to be created using *.aspx pages. This is considered obsolete, and intended exclusively for migration to new versions.
  • OnTopic.ViewModels: Standard view models for exposing factory=default schemas of shared content types. These can be extended, overwritten, or ignored entirely by the presentation layer implementation; they are provided for convenience.

Unit Tests

Editor

Credits

OnTopic is owned and maintained by Ignia.

About

.NET/C# client library for Ignia's OnTopic CMS.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 92.1%
  • TSQL 7.5%
  • HTML 0.4%