All notable changes to dotnet-plugin-engine are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fix assembly load context leak when plugin is unloaded and reloaded
- Added regression test for the fix
- Default port changed from 5000 to 8080
- Docker runtime base image switched from
dotnet/runtimetodotnet/aspnet - Removed deprecated
versionfield from docker-compose.yml (Compose v2+ standard) ASPNETCORE_URLSnow explicitly set tohttp://+:8080
- Multi-stage Dockerfile with .NET 10, build-time test execution, and non-root user
- HTTP-based HEALTHCHECK (
/healthendpoint) replacingdotnet --versionprobe - docker-compose.yml with resource limits, structured logging, and plugin monitor service
- Migration guide:
docs/MIGRATION_v2.md
- Bumped package version to 2.0.0
- Docker labels updated to reflect v2.0.0
- Health check start period increased to 10s for more reliable container startup
- Health check now validates actual application state instead of runtime presence
- Core plugin engine with AssemblyLoadContext isolation
- Plugin loader service with automatic discovery
- Dependency resolution with version constraints
- Hot reload monitoring with FileSystemWatcher
- Semantic versioning support
- Version compatibility checking
- Circular dependency detection
- In-memory plugin repository
- Configurable operation timeouts
- Comprehensive exception hierarchy
- Dependency injection integration
- Full nullable reference types support
- Extensive API documentation
- Multiple usage examples
- 🔌 Plugin Isolation: AssemblyLoadContext per plugin
- 🔄 Hot Reload: Zero-downtime plugin updates
- 📦 Dependency Management: Transitive resolution and validation
- 🏗️ Clean Architecture: Domain-driven design
- 🔐 Type Safe: Full C# 13 support
- ⚡ Performance: Async throughout, intelligent caching
- 📊 Diagnostics: Health checks and statistics
- 🔧 Extensible: Interface-based design
- 🚀 Production Ready: Comprehensive error handling
- Complete README with architecture overview
- Getting Started guide
- API reference documentation
- Deployment guide for production environments
- FAQ with troubleshooting tips
- Multiple working examples
- Architecture deep dive
- Beta version with core functionality
- Basic plugin loading
- Simple dependency tracking
- Manual plugin unloading
- Initial documentation
- Initial project structure
- Core entity models
- Service interfaces
- Basic implementation skeleton
- License and documentation skeleton
- .NET Runtime 10.0.0 or later
- Microsoft.Extensions.DependencyInjection 10.0.0 or later
- Microsoft.Extensions.Logging 10.0.0 or later
- .NET SDK 10.0.0 or later
- C# 13 compiler or later
- Plugin marketplace integration
- Distributed plugin cache
- Enhanced plugin analytics
- Plugin compatibility matrix
- Progressive rollout support
- AppDomain-based isolation (legacy .NET Framework)
- Plugin compilation/AOT support
- Cross-platform plugin signing
- Plugin update notifications
- Plugin telemetry dashboard
- Vladyslav Zaiets - Project Creator & Lead Architect
- Community contributors welcome! See Contributing Guidelines
For issues, questions, or suggestions:
- 🐛 Report Issues
- 💬 Discussions
- 📧 Contact: vladyslav.zaiets@sarmkadan.com
Last Updated: 2026-03-08