DavidGroup.Core.CompositionExtensions
1.0.0-dev.2
See the version list below for details.
dotnet add package DavidGroup.Core.CompositionExtensions --version 1.0.0-dev.2
NuGet\Install-Package DavidGroup.Core.CompositionExtensions -Version 1.0.0-dev.2
<PackageReference Include="DavidGroup.Core.CompositionExtensions" Version="1.0.0-dev.2" />
<PackageVersion Include="DavidGroup.Core.CompositionExtensions" Version="1.0.0-dev.2" />
<PackageReference Include="DavidGroup.Core.CompositionExtensions" />
paket add DavidGroup.Core.CompositionExtensions --version 1.0.0-dev.2
#r "nuget: DavidGroup.Core.CompositionExtensions, 1.0.0-dev.2"
#:package DavidGroup.Core.CompositionExtensions@1.0.0-dev.2
#addin nuget:?package=DavidGroup.Core.CompositionExtensions&version=1.0.0-dev.2&prerelease
#tool nuget:?package=DavidGroup.Core.CompositionExtensions&version=1.0.0-dev.2&prerelease
DavidGroup.Core.CompositionExtensions
Common and helpful extensions to be used in application composition root for .NET applications.
🚀 Getting Started
Install NuGet Package
Using the .NET CLI:
dotnet add package DavidGroup.Core.CompositionExtensions
Or via the Package Manager Console:
Install-Package DavidGroup.Core.CompositionExtensions
How to use it?
Feel free to explore the samples to find practical examples for each feature. New samples are added continuously as more features are developed.
📦 Key Features
CORS Configuration
{
"CorsOptions": {
"AllowedOrigins": "https://app.example.com;https://admin.example.com",
"AllowedMethods": "GET;POST;PUT;DELETE",
"AllowedHeaders": "Content-Type;Authorization"
}
}
builder.Services.AddCorsFromConfiguration(builder.Configuration);
app.UseCors();
Forwarded Headers
{
"ForwardedHeadersOptions": {
"ForwardedHeaders": "XForwardedFor,XForwardedProto",
"KnownProxies": [
"10.0.0.100"
],
"KnownNetworks": [
{
"Prefix": "10.0.0.0",
"PrefixLength": 24
}
]
}
}
builder.Services.ConfigureForwardedHeadersOptionsFromConfiguration(builder.Configuration);
app.UseForwardedHeaders();
API Versioning
builder.Services.AddDefaultApiVersioning();
[ApiVersion(1.0)]
[Route("api/v{version:apiVersion}/users")]
public sealed class UsersController : ControllerBase
{
}
Serilog
{
"Serilog": {
"MinimumLevel": "Information",
"WriteTo": [
{
"Name": "Console"
}
]
}
}
builder.Host.UseSerilogFromConfiguration();
OpenTelemetry
builder.Services.AddDefaultOpenTelemetry("BookstoreService");
Quartz.NET
builder.Services.AddQuartzDefaults(
builder.Configuration.GetConnectionString("DefaultConnection"),
quartz => quartz.AddCronJobAndTrigger<CleanupJob>("0 0 * * * ?"));
public sealed class CleanupJob : IJob
{
public Task Execute(IJobExecutionContext context)
{
// Execute scheduled work.
return Task.CompletedTask;
}
}
🤝 Contributing
Found a bug? Have an idea? Want to contribute?
- Submit an issue: https://github.com/david-group-solutions/composition-extensions/issues
- Create a pull request: https://github.com/david-group-solutions/composition-extensions/pulls
Contributions of any size are appreciated!
📝 License
Distributed under the MIT license. See License for more information.
Copyright © 2025-2026 David Khachatryan (David Group Solutions)
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Asp.Versioning.Mvc (>= 10.0.0)
- Asp.Versioning.Mvc.ApiExplorer (>= 10.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.9)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.16.0)
- OpenTelemetry.Extensions.Hosting (>= 1.16.0)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.16.0)
- OpenTelemetry.Instrumentation.EntityFrameworkCore (>= 1.12.0-beta.1)
- OpenTelemetry.Instrumentation.GrpcNetClient (>= 1.12.0-beta.1)
- OpenTelemetry.Instrumentation.Http (>= 1.16.0)
- Quartz (>= 3.18.2)
- Quartz.Extensions.DependencyInjection (>= 3.18.2)
- Quartz.Extensions.Hosting (>= 3.18.2)
- Quartz.Serialization.Json (>= 3.18.2)
- Serilog.AspNetCore (>= 10.0.0)
-
net8.0
- Asp.Versioning.Mvc (>= 8.1.1)
- Asp.Versioning.Mvc.ApiExplorer (>= 8.1.1)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.9)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.16.0)
- OpenTelemetry.Extensions.Hosting (>= 1.16.0)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.16.0)
- OpenTelemetry.Instrumentation.EntityFrameworkCore (>= 1.12.0-beta.1)
- OpenTelemetry.Instrumentation.GrpcNetClient (>= 1.12.0-beta.1)
- OpenTelemetry.Instrumentation.Http (>= 1.16.0)
- Quartz (>= 3.18.2)
- Quartz.Extensions.DependencyInjection (>= 3.18.2)
- Quartz.Extensions.Hosting (>= 3.18.2)
- Quartz.Serialization.Json (>= 3.18.2)
- Serilog.AspNetCore (>= 10.0.0)
-
net9.0
- Asp.Versioning.Mvc (>= 8.1.1)
- Asp.Versioning.Mvc.ApiExplorer (>= 8.1.1)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.9)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.16.0)
- OpenTelemetry.Extensions.Hosting (>= 1.16.0)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.16.0)
- OpenTelemetry.Instrumentation.EntityFrameworkCore (>= 1.12.0-beta.1)
- OpenTelemetry.Instrumentation.GrpcNetClient (>= 1.12.0-beta.1)
- OpenTelemetry.Instrumentation.Http (>= 1.16.0)
- Quartz (>= 3.18.2)
- Quartz.Extensions.DependencyInjection (>= 3.18.2)
- Quartz.Extensions.Hosting (>= 3.18.2)
- Quartz.Serialization.Json (>= 3.18.2)
- Serilog.AspNetCore (>= 10.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.1.0 | 74 | 9/6/2026 |
| 1.1.0-develop.3 | 75 | 9/6/2026 |
| 1.0.2 | 89 | 7/12/2026 |
| 1.0.2-develop.2 | 72 | 7/12/2026 |
| 1.0.1 | 80 | 7/9/2026 |
| 1.0.1-dev.5 | 66 | 7/9/2026 |
| 1.0.1-dev.4 | 75 | 7/9/2026 |
| 1.0.0 | 71 | 7/8/2026 |
| 1.0.0-dev.3 | 66 | 7/8/2026 |
| 1.0.0-dev.2 | 68 | 7/8/2026 |