Skip to content

Release 2.1.0

Choose a tag to compare

@cdcavell cdcavell released this 27 Jun 20:19
· 68 commits to main since this release
d55979d

Summary

Release 2.1.0 is a minor release focused on improving extensibility, release-surface clarity, and production guidance while preserving the stable 2.x package identity and default scaffold behavior.

Highlights

  • Added a template-owned audit storage seam through IApplicationAuditStore.
  • Added ProjectTemplate:DataAccess:Auditing:StorageMode with Local as the default storage mode.
  • Added explicit audit extension modes: Outbox and ExternalSink.
  • Preserved local EF Core audit storage as the default behavior.
  • Added support for governance/audit package integration paths, including future AsiBackbone-style adapters.
  • Short-circuited ApplicationDbContext.SaveChanges and SaveChangesAsync when the EF Core change tracker has no pending changes.
  • Added optional application/domain layer guidance for consumers who outgrow the default Web / Infrastructure split.
  • Expanded production authentication hardening guidance.
  • Added middleware ordering rationale and documented order-sensitive pipeline invariants.
  • Refreshed configuration, data-access, public-surface, README, package README, and template-packaging documentation.
  • Reformatted documentation image assets for consistent repository and documentation display.

Audit Storage Extension Path

The default audit behavior remains unchanged. Audit records continue to use local EF Core storage unless a consuming application intentionally configures and registers a custom audit store.

Supported storage mode names:

  • Local — built-in default local EF Core audit storage.
  • Outbox — extension mode for durable handoff/outbox-style audit workflows.
  • ExternalSink — extension mode for external governance, SIEM, audit, or companion package integrations.

Outbox and ExternalSink require a custom IApplicationAuditStore implementation.

Compatibility Notes

This release does not change the public package identity, template short name, template options, or default scaffold behavior.

Existing consumers do not need to change configuration unless they intentionally adopt a non-local audit storage mode.

Package

dotnet new install NetCoreApplicationTemplate::2.1.0

Validation

Release preparation updated version metadata, package release notes, changelog, README/package README examples, template-packaging documentation, citation metadata, and Zenodo metadata for 2.1.0.