Skip to content

Aurora-Science-Hub/Framework

Repository files navigation



Aurora Science Hub Framework

A comprehensive collection of reusable infrastructure packages for building modern .NET 9 applications.

License Build & test

Available PackagesArchitectureDevelopmentCode StyleTestingLicenceContributing

Getting Started

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 packages

Each package includes its own README with detailed usage instructions and examples.

Available Packages

Core Infrastructure

  • 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

Web & API

  • AspNetCore - ASP.NET Core extensions, problem details, security, and routing
  • Http - HTTP client utilities and extensions

Data Access

  • 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 & Performance

  • Caching - Hybrid cache extensions and utilities

Logging & Observability

AI & Machine Learning

  • Ai - OpenAI GPT and DeepL translation service integrations
  • Ocr - Optical Character Recognition utilities

Serialization

  • Json - JSON serialization extensions and converters

Architecture

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

Development

Prerequisites

  • .NET 9.0 SDK or later
  • IDE with C# support (Rider, Visual Studio, VS Code)

Building the Solution

# Restore dependencies
dotnet restore

# Build all projects
dotnet build

# Run tests
dotnet test

# Create NuGet packages
dotnet pack

Code Style

The solution uses EditorConfig based on Azure SDK .NET to maintain consistent code style across all packages.

Formatting Commands

# Format code before committing
dotnet format

# Verify code style compliance
dotnet format --verify-no-changes

Code Quality Standards

  • Nullable reference types enabled
  • Warnings treated as errors
  • Latest C# language version
  • Code style enforcement in build
  • Embedded debug symbols in packages

Testing

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

License

See LICENSE and PackageLicenses.txt for details.

Contributing

When contributing to this repository:

  1. Follow the established code style (enforced by EditorConfig)
  2. Run dotnet format before committing
  3. Ensure all tests pass
  4. Update relevant README files for your changes
  5. 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.

About

Common packages for SWeather projects

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages