0.0.7
Implements comprehensive feature configuration and shell lifecycle management.
This release introduces a robust feature configuration system with validation, alongside shell lifecycle management via notifications and handlers. It also refactors existing authentication and authorization providers for conciseness.
Changes
Feature Configuration
- Implements auto-configuration and explicit configuration via
IConfigurableFeature - Supports multiple options classes per feature, documented in:
FeatureConfiguration.mdFeatureConfigurationBinder.cs
- Adds configuration validation via:
DataAnnotationsFluentValidation- Custom validators
- Associated validation classes are located under
Features/Validation
Shell Lifecycle Management
- Introduces
IShellActivatedHandlerandIShellDeactivatingHandlerinterfaces for shell-scoped service initialization and cleanup - Implements notification-based lifecycle events:
ShellActivatedShellDeactivatingShellAddedShellRemovedShellsReloaded
- Adds corresponding handlers:
ShellActivationHandlerShellDeactivationHandlerShellEndpointRegistrationHandler
Dependency Inference
- Adds
IInfersDependenciesFromto allow features to inherit dependencies from other features
Hosted Services
- Introduces
ShellStartupHostedServiceto ensure all shells are activated and deactivated with the application lifecycle
Impact
Behavioral Changes
- Features can now be configured via:
appsettings.json- Environment variables
- Configuration is validated at startup
- Shells now expose activation and deactivation lifecycle events for service initialization and cleanup
Breaking Changes
- None
Full Changelog: 0.0.6...0.0.7