UdemyCourse — Core Package Suite
A production-ready collection of 25 reusable .NET 9.0 NuGet packages providing the foundational building blocks for enterprise-grade microservice applications. This monorepo covers everything from CQRS and clean architecture abstractions to security, messaging, observability, and resilience.
Package
Version
Description
Core.Domain
3.0.2
Base domain primitives — Entity, AggregateRoot, Value Object
Core.Abstractions
3.1.9
Interfaces for CQRS, repositories, events, and messaging
Core.Cqrs
3.0.2
MediatR-based CQRS dispatcher implementation
Core.Application
3.0.4
MediatR pipeline behaviors (validation, authorization)
Core.Extensions
3.0.7
Utility extension methods for auth, HTTP, and common types
Core.WebApi
3.0.3
Web API helpers, response wrappers, and controller extensions
Core.CrossCuttingConcerns.Exceptions
3.0.1
Global exception handling with RFC 7807 Problem Details
Package
Version
Description
Core.Persistence
3.0.9
Generic repositories for EF Core, MongoDB, and Redis
┌──────────────────────────────────────────────────────────────────┐
│ Your Application │
├────────────────┬────────────────────────┬────────────────────────┤
│ Presentation │ Application │ Domain │
│ Core.WebApi │ Core.Application │ Core.Domain │
│ │ Core.Cqrs │ Core.Abstractions │
├────────────────┴────────────────────────┴────────────────────────┤
│ Infrastructure │
│ Core.Persistence │ Core.Messaging │ Core.Security.* │
│ Core.Mailing │ Core.Events │ Core.ElasticSearch │
│ Core.Tracing │ Core.Monitoring │ Core.Resiliency │
│ Core.Scheduling.Hangfire │
└──────────────────────────────────────────────────────────────────┘
Category
Technology
Runtime
.NET 9.0
ORM
Entity Framework Core 9.0
Databases
PostgreSQL, SQL Server, MongoDB, Redis
Search
Elasticsearch (NEST 7)
Messaging
RabbitMQ 7
Scheduling
Hangfire 1.8
Observability
OpenTelemetry 1.15, Prometheus, Health Checks UI
Security
JWT, BCrypt, AES/RSA
Validation
FluentValidation 12
Resilience
Polly 8.6
Email
MailKit 4.15
Mediator
MediatR 12.5
.NET 9.0 SDK
Visual Studio 2022 v17+ or JetBrains Rider
dotnet build UdemyCourse-CorePackage.sln --configuration Release
Built .nupkg files are placed in the Packages/ directory at the repository root.
Use a Local Package Source
dotnet nuget add source ./Packages --name CorePackages
Then reference packages in your project:
<PackageReference Include =" Core.Persistence" Version =" 3.0.9" />
Core.Domain
└── Core.Security.Domain
└── Core.Security.Hashing
└── Core.Security.Encryption
└── Core.Security.Jwt
└── Core.Security.Redis
Core.Domain
└── Core.Abstractions
└── Core.Cqrs
└── Core.Persistence
└── Core.Messaging
└── Core.Messaging.Postgres
└── Core.Messaging.Transport.RabbitMq
└── Core.Events
└── Core.Extensions
└── Core.WebApi
└── Core.Application
Fork the repository and create a feature branch.
Follow existing conventions — each package is a self-contained class library.
Bump the <Version> in the .csproj using semantic versioning.
Open a pull request with a clear description of the change.
This project is created for educational purposes as part of the Udemy course curriculum.