Production-ready helpers for building .NET web APIs and integrating Azure services with less boilerplate.
📚 Browse the MDev.Dotnet documentation
MDev.Dotnet packages turn common ASP.NET Core and Azure integration tasks into consistent, dependency-injection-friendly registrations and services.
Choose only the helpers your application needs:
| Package | Capabilities | Documentation |
|---|---|---|
MDev.Dotnet.AspNetCore |
Controllers, configuration binding, API versioning, OpenAPI, and route prefixes | Read the guide |
MDev.Dotnet.Azure.ContainerApps |
OpenTelemetry, Container Apps authentication, and Dapr async operations | Read the guide |
MDev.Dotnet.Azure.ContainerApps.Jobs |
Generic-host telemetry flushing and managed identity for Container Apps Jobs | Read the guide |
MDev.Dotnet.Azure.CosmosDb |
Entity Framework Core Cosmos DB registration with token credentials | Read the guide |
MDev.Dotnet.Azure.StorageAccount |
Blob persistence, SAS access, and keyed queue clients | Read the guide |
- Documentation
- Getting started
- Contributing
- Source code
- NuGet packages
- Microsoft Learn for .NET
- Microsoft Learn for Azure
- MDev.Dotnet Wiki
Install the package that matches your use case:
dotnet add package MDev.Dotnet.AspNetCoreReplace the package name with any package listed above. The getting-started guide and each package guide contain current registration, configuration, and usage examples.
Build consistent ASP.NET Core APIs without repeating standard setup.
Register controllers and API versions, bind strongly typed configuration, configure OpenAPI, and apply route prefixes through focused extension methods.
| API | Purpose |
|---|---|
RegisterControllers<T>() |
Adds controllers, API versioning, lowercase URLs, and model-validation logging |
RegisterConfiguration() |
Loads JSON configuration and environment variables |
BindConfiguration<T>() |
Binds and registers a required configuration section |
RegisterOpenApi() |
Registers OpenAPI and optionally rewrites or removes server URLs |
AddRoutesPrefix() |
Applies a path base, such as /api, to the application |
GetErrors() |
Returns model-state errors as a single message |
dotnet add package MDev.Dotnet.AspNetCoreContinue with setup and examples.
Add observability, authentication context, and asynchronous Dapr workflows to Azure Container Apps.
Configure OpenTelemetry for Azure Monitor or OTLP, access the authenticated Container Apps principal, and handle Dapr pub/sub operations.
| API | Purpose |
|---|---|
RegisterOpenTelemetry() |
Configures logs, metrics, and traces for Azure Monitor or OTLP |
GetUserId() / GetUserFullName() |
Reads identity values supplied by Container Apps authentication |
GetClaims() |
Decodes the authenticated principal's claims |
GetUserValue() |
Reads a named Container Apps authentication header |
AsyncOperationRequestsService |
Dispatches Dapr operation messages to matching handlers |
IAsyncOperationRequestMessageHandler |
Defines a handler for an asynchronous operation |
[RequireDaprApiToken] |
Validates the dapr-api-token request header |
dotnet add package MDev.Dotnet.Azure.ContainerAppsContinue with setup and examples.
Connect Entity Framework Core contexts to Azure Cosmos DB with secure Azure credentials.
Register a Cosmos DB DbContext from application configuration and authenticate with an Azure TokenCredential, including managed identity.
| API | Purpose |
|---|---|
RegisterCosmosDb<T>(TokenCredential) |
Registers an EF Core Cosmos DB context from the CosmosDb configuration section |
RegisterCosmosDb<T>(IConfiguration, TokenCredential) |
Provides the same registration from an IServiceCollection |
dotnet add package MDev.Dotnet.Azure.CosmosDbContinue with setup and examples.
Use Azure Blob Storage and Queue Storage through ready-to-inject services.
Register storage clients with Azure credentials, manage blobs and SAS access through PersistentService, and resolve configured queue clients by key.
| API | Purpose |
|---|---|
RegisterAzureStorage() |
Registers blob services and keyed queue clients from configuration |
PersistentService |
Creates and lists containers and uploads, downloads, copies, or deletes blobs |
RetreiveBlobUriAsync() / RetreiveBlobsUriAsync() |
Creates read-only SAS URIs for blobs |
QueuesService.SendMessageAsync<T>() |
Sends one message to a configured queue |
QueuesService.SendMessagesAsync<T>() |
Distributes multiple messages across configured queues |
dotnet add package MDev.Dotnet.Azure.StorageAccountContinue with setup and examples.
- ASP.NET Core package guide
- Azure Container Apps package guide
- Azure Cosmos DB package guide
- Azure Storage Account package guide
- MDev.Dotnet Wiki
If you have a question, problem, or suggestion, create an issue or fork the project and create a pull request.
See the contributing guide for build and documentation guidance.
This project is licensed under the terms specified in the LICENSE file.
Made with ❤️ for the .NET Community