Skip to content

Releases: OnTopicCMS/OnTopic-Editor-AspNetCore

v4.0.0

31 Dec 22:49
Compare
Choose a tag to compare

This is a ground-up rewrite of the OnTopic Editor for use on ASP.NET Core 3.1, and with native support for all features in the newly released OnTopic Library 4.0.0. This is the recommended (and supported) editor for all new implementations of OnTopic. Sites using the legacy OnTopic Web Forms editor should upgrade, as it is no longer being maintained or supported.

Highlights

  • Implemented entirely in ASP.NET Core 3.1
  • Introduced new AttributeTypeDescriptor support (e.g., BooleanAttribute, HtmlAttribute) for configuring attributes via topic attributes, instead of DefaultConfiguration
  • Distributed as a Razor Class Library and NuGet Package so it can easily be embedded in sites
  • Includes configuration extensions to simplify registration of routes, infrastructure, and object graph composition

New Features

User Interface

  • Improved ability to fine-tune what content types can be created where using the Implicitly Permitted and Is Hidden? attributes on AttributeDescriptor
  • Added support for extending or defining Permitted Content Types on individual container topics
  • Adopted a friendly routing model (e.g., /OnTopic/Edit/Web/Path/Page/)
  • Added a Description field to ContentTypeDescriptor so we can place instructional text at the top of new pages
  • Added cross-tab form validation to simplify isolating validation errors that may be hidden behind other tabs
  • Introduced a new DateTimeAttribute

Configuration

  • Distributed as a Razor Class Library and NuGet Package so it can easily be embedded in sites
  • Includes configuration extensions to simplify registration of routes, infrastructure, and object graph composition

Implementation

  • Introduced new AttributeTypeDescriptor support (e.g., BooleanAttribute, HtmlAttribute) for configuring attributes via topic attributes, instead of DefaultConfiguration
  • Implemented all editor controls as ASP.NET Core View Components (e.g., BooleanViewComponent, HtmlViewComponent)

Code

  • Implemented entirely in ASP.NET Core 3.1
  • CSS implemented using SASS for easier maintenance
  • Client-side dependencies downloaded and managed via npm
  • Client-side code and dependencies deployed via a new Gulp.js script
  • Implements C# 8.0's new nullable annotation context
  • Implements Visual Studio 2019's support for <inheritDoc /> on XMLDOCs
  • Implements Visual Studio 2017's new project format
  • Fully adopted semantic versioning via GitFlow and GitVersion
  • Began using git merge --no-ff so we can better track merges independent from feature commits

Breaking Changes

While the ASP.NET Core 3.1 implementation is entirely new, there are breaking changes in terms of compatibility with legacy versions of the OnTopic.Data.Sql.Database schema to be aware of.

  • Obviously, this version requires migrating to ASP.NET Core 3.1 and OnTopic Library 4.0.0
  • AttributeDescriptor content types need to be migrated to the new AttributeTypeDescriptor content types (e.g., BooleanAttribute, HtmlAttribute)
  • The DefaultConfiguration string from AttributeDescriptor needs to be parsed and applied to the individual attributes on each of the new AttributeTypeDescriptor instances
  • The new ImplicityPermitted and Description attributes must be added to ContentTypeDescriptor and set on individual content types in order to take advantage of this functionality

Note: There is not (yet) a migration script for importing new content type definitions or migrating legacy structures. These need to be done manually based on a reference schema. Please contact Ignia for assistance.