After the initial upgrade to a .NET 8 floor with C# 14 (#114, #115), I had done an initial pass of modernizing the code. That covered most everything that was non-breaking. Since we're committed to a major release (6.0), this takes on the bigger items: Dropping the deprecated [obsolete] layer, sealing public classes by default, and adopting TimeProvider for deterministic time-based testing.
Tasks
After the initial upgrade to a .NET 8 floor with C# 14 (#114, #115), I had done an initial pass of modernizing the code. That covered most everything that was non-breaking. Since we're committed to a major release (6.0), this takes on the bigger items: Dropping the deprecated
[obsolete]layer, sealing public classes by default, and adoptingTimeProviderfor deterministic time-based testing.Tasks
OnTopic/Obsolete/folderTimeProviderinto the types that stamp time, replacingDateTime.UtcNowandDateTime.NowTopicRepository.Save()TrackedRecord<T>.LastModifiedSqlTopicRepository.Load(),Refresh()andCachedTopicRepository.Load()