Releases: OnTopicCMS/OnTopic-Editor-AspNetCore
v4.0.0
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 ofDefaultConfiguration
- 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 ofDefaultConfiguration
- 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 newAttributeTypeDescriptor
content types (e.g.,BooleanAttribute
,HtmlAttribute
)- The
DefaultConfiguration
string fromAttributeDescriptor
needs to be parsed and applied to the individual attributes on each of the newAttributeTypeDescriptor
instances - The new
ImplicityPermitted
andDescription
attributes must be added toContentTypeDescriptor
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.