Skip to content

v4.0.0

Compare
Choose a tag to compare
@JeremyCaney JeremyCaney released this 01 Jan 00:28
· 894 commits to master since this release

This is a major technical update with minimal impact to the customer experience.

Framework Migrations

  • ASP.NET MVC Framework (/Web) to ASP.NET Core 3
  • ASP.NET WebForms (/Forms) to ASP.NET Core 3
  • .NET Framework version of OnTopic Library to .NET Standard, C# 8
  • ASP.NET WebForms version of OnTopic Editor to ASP.NET Core Razor Class Library

Note: The forms, in particular, are a ground up rewrite.

Library Improvements

The update to OnTopic Library introduces the following benefits:

  • Establishing a Composition Root for Dependency Injection through new architectural patterns
  • Use of new View Components, such as MenuViewComponent, for handling shared components across the site
  • Replacement of legacy Code Contracts with C#’s new nullability context
  • Introduction of new ReverseTopicMappingService for mapping binding models back to topics
  • Support for new mapping scenarios such as [Metadata()], [Flatten], and [MapToParent()], alongside support for compatible collections, nullable types, topic references, &c.
  • No more dependencies on the legacy TopicRepository static class from Ignia.Topics.Web
  • No more dependencies on the legacy ITopicRoutingService for identifying the current topic
  • Both OnTopic Library and OnTopic Editor now built via continuous integration and imported via NuGet packages

Build Improvements

  • Most client-side dependencies are now downloaded via npm’s packages.json
  • Dependencies are concatenated, mapped, and copied to final locations via Gulp.js
  • Gulp.js build process neatly allows for one off view resources that aren’t part of main assemblies
  • Removal of dozens of legacy libraries that required manual side-loading and updating to maintain
  • New deployment process allows direct publishing from Visual Studio without worrying about overwriting legacy content files; those are now excluded via csproj

General Improvements

  • Use of composable binding models for constructing customer forms that share core features
  • Dramatic reduction of legacy code and configuration, leading to a much simpler code base
  • Significant improvement in startup time, primarily due to ASP.NET Core 3's view compilation
  • Replacement of the legacy Membership Database with new Azure AD for authenticating via OpenID Connect
  • Improved configuration setup through secrets.json and App Service Configuration

This should provide a reliable technological foundation of the site for quite some time.