Available Packages • Architecture • Development • Code Style • Testing • Licence • Contributing
All packages are distributed via NuGet and target .NET 9.0. Install individual packages as needed:
dotnet add package AuroraScienceHub.Framework.Composition
dotnet add package AuroraScienceHub.Framework.AspNetCore
dotnet add package AuroraScienceHub.Framework.EntityFramework
# ... other packagesEach package includes its own README with detailed usage instructions and examples.
- Composition - Modular architecture framework with service and application modules
- Configuration - Type-safe configuration loading with validation
- Diagnostics - Health checks, application descriptors, and monitoring utilities
- Exceptions - Common exception types and error handling patterns
- Utilities - General-purpose utility classes and extension methods
- AspNetCore - ASP.NET Core extensions, problem details, security, and routing
- Http - HTTP client utilities and extensions
- Entities - Domain entity interfaces, strong-typed IDs, and DDD patterns
- EntityFramework - EF Core extensions with auditing, soft deletes, and migrations
- EntityFramework.NpgSql - PostgreSQL-specific DbContext factories and conventions
- ClickHouse - ClickHouse database integration
- Caching - Hybrid cache extensions and utilities
- Logging.OpenTelemetry - OpenTelemetry integration for distributed tracing
- Ai - OpenAI GPT and DeepL translation service integrations
- Ocr - Optical Character Recognition utilities
- Json - JSON serialization extensions and converters
The framework follows these principles:
- Modular Design - Each package is self-contained and can be used independently
- Clean Architecture - Clear separation of concerns with minimal coupling
- Domain-Driven Design - Support for DDD patterns and practices
- Type Safety - Strong typing with nullable reference types enabled
- Modern .NET - Leverages latest .NET 9 features and patterns
- .NET 9.0 SDK or later
- IDE with C# support (Rider, Visual Studio, VS Code)
# Restore dependencies
dotnet restore
# Build all projects
dotnet build
# Run tests
dotnet test
# Create NuGet packages
dotnet packThe solution uses EditorConfig based on Azure SDK .NET to maintain consistent code style across all packages.
# Format code before committing
dotnet format
# Verify code style compliance
dotnet format --verify-no-changes- Nullable reference types enabled
- Warnings treated as errors
- Latest C# language version
- Code style enforcement in build
- Embedded debug symbols in packages
Unit tests are located in the tests/UnitTests/ directory. The framework uses:
- xUnit for test execution
- AutoFixture with AutoMoq for test data generation
- Moq for mocking
See LICENSE and PackageLicenses.txt for details.
When contributing to this repository:
- Follow the established code style (enforced by EditorConfig)
- Run
dotnet formatbefore committing - Ensure all tests pass
- Update relevant README files for your changes
- Keep packages focused and loosely coupled
Note: This framework is designed for Aurora Science Hub applications but can be used in any modern .NET project requiring robust infrastructure components.