DavidStudio.Core.Essentials
1.0.0-develop.9
See the version list below for details.
dotnet add package DavidStudio.Core.Essentials --version 1.0.0-develop.9
NuGet\Install-Package DavidStudio.Core.Essentials -Version 1.0.0-develop.9
<PackageReference Include="DavidStudio.Core.Essentials" Version="1.0.0-develop.9" />
<PackageVersion Include="DavidStudio.Core.Essentials" Version="1.0.0-develop.9" />
<PackageReference Include="DavidStudio.Core.Essentials" />
paket add DavidStudio.Core.Essentials --version 1.0.0-develop.9
#r "nuget: DavidStudio.Core.Essentials, 1.0.0-develop.9"
#:package DavidStudio.Core.Essentials@1.0.0-develop.9
#addin nuget:?package=DavidStudio.Core.Essentials&version=1.0.0-develop.9&prerelease
#tool nuget:?package=DavidStudio.Core.Essentials&version=1.0.0-develop.9&prerelease
DavidStudio.Core.Essentials
A productivity library that accelerates .NET project scaffolding by providing ready-to-use features for common application needs. Includes data I/O helpers and abstractions, authentication utilities, OpenAPI/Swagger integration features, standardized result/response types, pagination helpers, and general-purpose utilities.
⚠️ Alpha Release: This package is currently in alpha. Development is ongoing, and contributions are welcome!
🚀 Getting Started
Install NuGet Package
Using the .NET CLI:
dotnet add package DavidStudio.Core.Essentials
Or via the Package Manager Console:
Install-Package DavidStudio.Core.Essentials
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
DataIO - A comprehensive toolkit that streamlines data operations with Entity Framework Core, ADO.NET, and providers for Elasticsearch, RabbitMQ, Azure ServiceBus, Redis, and RedLock. Includes multiple design patterns and abstractions that reduce boilerplate and simplify your daily development workflow.
Auth - Essential Authentication and Authorization utilities for ASP.NET Core, featuring powerful permission-based authorization for JWT, seamless Bearer token support, Swagger authentication configuration, convenient claim helpers, and user-session tools.
Swagger - Plug-and-play extensions for adding Swagger with sensible defaults. Includes built-in support for StronglyTypedIds, Bearer authentication, API versioning, and controller ordering.
Results - Clean, standardized result and response models for APIs and services. Helps enforce consistent response patterns and reduce repetitive code.
Pagination - Robust cursor-based and offset-based pagination models and utilities designed for high-performance, scalable APIs.
Utilities - A growing collection of handy helpers and extensions to speed up everyday .NET development.
🚀 What I'm Most Proud Of
One of the standout features of DavidStudio.Core.Essentials is its high-performance dynamic ordering query builder from string for LINQ and Entity Framework Core. It delivers over 2× faster execution and cuts memory allocations in half compared to System.Linq.Dynamic.Core, making it ideal for high-load APIs and advanced pagination scenarios.
BenchmarkDotNet v0.15.6, macOS 26.1 (25B78) [Darwin 25.1.0]
Apple M4 Max, 1 CPU, 16 logical and 16 physical cores
.NET SDK 10.0.100
[Host] : .NET 10.0.0 (10.0.0, 10.0.25.52411), Arm64 RyuJIT armv8.0-a
DefaultJob : .NET 10.0.0 (10.0.0, 10.0.25.52411), Arm64 RyuJIT armv8.0-a
| Method | Mean | Error | StdDev | Rank | Gen0 | Gen1 | Allocated |
|---|---|---|---|---|---|---|---|
| Essentials_DynamicOrdering_CursorPagination | 5.193 μs | 0.0522 μs | 0.0463 μs | 2 | 1.3428 | - | 10.99 KB |
| Essentials_DynamicOrdering_OffsetPagination | 9.278 μs | 0.0665 μs | 0.0589 μs | 4 | 2.1973 | - | 18.29 KB |
| LINQ_DynamicOrdering_CursorPagination | 9.847 μs | 0.0692 μs | 0.0613 μs | 5 | 3.1738 | 0.0610 | 26.06 KB |
| LINQ_DynamicOrdering_OffsetPagination | 13.725 μs | 0.0969 μs | 0.0906 μs | 6 | 3.9063 | - | 32.73 KB |
🤝 Contributing
Found a bug? Have an idea? Want to contribute?
- Submit an issue: https://github.com/david-studio-core/Essentials/issues
- Create a pull request: https://github.com/david-studio-core/Essentials/pulls
Contributions of any size are appreciated!
📝 License
Distributed under the MIT license. See License for more information.
Copyright © 2025 David Khachatryan (David Studio)
| 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.Http (>= 8.1.0)
- Asp.Versioning.Mvc (>= 8.1.0)
- Asp.Versioning.Mvc.ApiExplorer (>= 8.1.0)
- Elastic.Clients.Elasticsearch (>= 9.2.2)
- MassTransit (>= 8.5.7)
- MassTransit.Abstractions (>= 8.5.7)
- MassTransit.Azure.ServiceBus.Core (>= 8.5.7)
- MassTransit.EntityFrameworkCore (>= 8.5.7)
- MassTransit.RabbitMQ (>= 8.5.7)
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 10.0.1)
- Microsoft.AspNetCore.OpenApi (>= 10.0.1)
- Microsoft.EntityFrameworkCore (>= 10.0.1)
- Microsoft.EntityFrameworkCore.SqlServer (>= 10.0.1)
- Microsoft.Extensions.Caching.StackExchangeRedis (>= 10.0.1)
- Microsoft.Extensions.Http.Resilience (>= 10.1.0)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.14.0)
- OpenTelemetry.Extensions.Hosting (>= 1.14.0)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.14.0)
- OpenTelemetry.Instrumentation.EntityFrameworkCore (>= 1.12.0-beta.1)
- OpenTelemetry.Instrumentation.GrpcNetClient (>= 1.12.0-beta.1)
- OpenTelemetry.Instrumentation.Http (>= 1.14.0)
- Quartz (>= 3.15.1)
- Quartz.Extensions.DependencyInjection (>= 3.15.1)
- Quartz.Extensions.Hosting (>= 3.15.1)
- Quartz.Serialization.Json (>= 3.15.1)
- RedLock.net (>= 2.3.2)
- Serilog.AspNetCore (>= 10.0.0)
- Serilog.Sinks.Console (>= 6.1.1)
- Serilog.Sinks.OpenTelemetry (>= 4.2.0)
- StronglyTypedId (>= 1.0.0-beta08)
- Swashbuckle.AspNetCore (>= 10.1.0)
- Swashbuckle.AspNetCore.Annotations (>= 10.1.0)
- Swashbuckle.AspNetCore.Swagger (>= 10.1.0)
- Swashbuckle.AspNetCore.SwaggerGen (>= 10.1.0)
- Swashbuckle.AspNetCore.SwaggerUI (>= 10.1.0)
-
net8.0
- Asp.Versioning.Http (>= 8.1.0)
- Asp.Versioning.Mvc (>= 8.1.0)
- Asp.Versioning.Mvc.ApiExplorer (>= 8.1.0)
- Elastic.Clients.Elasticsearch (>= 9.2.2)
- MassTransit (>= 8.5.7)
- MassTransit.Abstractions (>= 8.5.7)
- MassTransit.Azure.ServiceBus.Core (>= 8.5.7)
- MassTransit.EntityFrameworkCore (>= 8.3.1)
- MassTransit.RabbitMQ (>= 8.5.7)
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 8.0.22)
- Microsoft.AspNetCore.OpenApi (>= 8.0.22)
- Microsoft.EntityFrameworkCore (>= 8.0.22)
- Microsoft.EntityFrameworkCore.SqlServer (>= 8.0.22)
- Microsoft.Extensions.Caching.StackExchangeRedis (>= 9.0.11)
- Microsoft.Extensions.Http.Resilience (>= 10.1.0)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.14.0)
- OpenTelemetry.Extensions.Hosting (>= 1.14.0)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.14.0)
- OpenTelemetry.Instrumentation.EntityFrameworkCore (>= 1.12.0-beta.1)
- OpenTelemetry.Instrumentation.GrpcNetClient (>= 1.12.0-beta.1)
- OpenTelemetry.Instrumentation.Http (>= 1.14.0)
- Quartz (>= 3.15.1)
- Quartz.Extensions.DependencyInjection (>= 3.15.1)
- Quartz.Extensions.Hosting (>= 3.15.1)
- Quartz.Serialization.Json (>= 3.15.1)
- RedLock.net (>= 2.3.2)
- Serilog.AspNetCore (>= 10.0.0)
- Serilog.Sinks.Console (>= 6.1.1)
- Serilog.Sinks.OpenTelemetry (>= 4.2.0)
- StronglyTypedId (>= 1.0.0-beta08)
- Swashbuckle.AspNetCore (>= 10.1.0)
- Swashbuckle.AspNetCore.Annotations (>= 10.1.0)
- Swashbuckle.AspNetCore.Swagger (>= 10.1.0)
- Swashbuckle.AspNetCore.SwaggerGen (>= 10.1.0)
- Swashbuckle.AspNetCore.SwaggerUI (>= 10.1.0)
-
net9.0
- Asp.Versioning.Http (>= 8.1.0)
- Asp.Versioning.Mvc (>= 8.1.0)
- Asp.Versioning.Mvc.ApiExplorer (>= 8.1.0)
- Elastic.Clients.Elasticsearch (>= 9.2.2)
- MassTransit (>= 8.5.7)
- MassTransit.Abstractions (>= 8.5.7)
- MassTransit.Azure.ServiceBus.Core (>= 8.5.7)
- MassTransit.EntityFrameworkCore (>= 8.5.7)
- MassTransit.RabbitMQ (>= 8.5.7)
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 9.0.11)
- Microsoft.AspNetCore.OpenApi (>= 9.0.11)
- Microsoft.EntityFrameworkCore (>= 9.0.11)
- Microsoft.EntityFrameworkCore.SqlServer (>= 9.0.11)
- Microsoft.Extensions.Caching.StackExchangeRedis (>= 9.0.11)
- Microsoft.Extensions.Http.Resilience (>= 10.1.0)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.14.0)
- OpenTelemetry.Extensions.Hosting (>= 1.14.0)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.14.0)
- OpenTelemetry.Instrumentation.EntityFrameworkCore (>= 1.12.0-beta.1)
- OpenTelemetry.Instrumentation.GrpcNetClient (>= 1.12.0-beta.1)
- OpenTelemetry.Instrumentation.Http (>= 1.14.0)
- Quartz (>= 3.15.1)
- Quartz.Extensions.DependencyInjection (>= 3.15.1)
- Quartz.Extensions.Hosting (>= 3.15.1)
- Quartz.Serialization.Json (>= 3.15.1)
- RedLock.net (>= 2.3.2)
- Serilog.AspNetCore (>= 10.0.0)
- Serilog.Sinks.Console (>= 6.1.1)
- Serilog.Sinks.OpenTelemetry (>= 4.2.0)
- StronglyTypedId (>= 1.0.0-beta08)
- Swashbuckle.AspNetCore (>= 10.1.0)
- Swashbuckle.AspNetCore.Annotations (>= 10.1.0)
- Swashbuckle.AspNetCore.Swagger (>= 10.1.0)
- Swashbuckle.AspNetCore.SwaggerGen (>= 10.1.0)
- Swashbuckle.AspNetCore.SwaggerUI (>= 10.1.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.0.0-develop.15 | 30 | 1/10/2026 |
| 1.0.0-develop.14 | 31 | 1/10/2026 |
| 1.0.0-develop.13 | 31 | 1/10/2026 |
| 1.0.0-develop.12 | 34 | 1/10/2026 |
| 1.0.0-develop.11 | 33 | 1/9/2026 |
| 1.0.0-develop.10 | 32 | 1/9/2026 |
| 1.0.0-develop.9 | 33 | 1/9/2026 |
| 1.0.0-develop.8 | 31 | 1/9/2026 |
| 1.0.0-develop.7 | 33 | 1/9/2026 |
| 1.0.0-develop.6 | 37 | 1/9/2026 |
| 1.0.0-develop.5 | 46 | 1/3/2026 |
| 1.0.0-develop.4 | 54 | 12/28/2025 |