MPCore.Application
0.9.3
Prefix Reserved
dotnet add package MPCore.Application --version 0.9.3
NuGet\Install-Package MPCore.Application -Version 0.9.3
<PackageReference Include="MPCore.Application" Version="0.9.3" />
<PackageVersion Include="MPCore.Application" Version="0.9.3" />
<PackageReference Include="MPCore.Application" />
paket add MPCore.Application --version 0.9.3
#r "nuget: MPCore.Application, 0.9.3"
#:package MPCore.Application@0.9.3
#addin nuget:?package=MPCore.Application&version=0.9.3
#tool nuget:?package=MPCore.Application&version=0.9.3
MP Core
A backend framework for .NET 10 that makes the decisions every backend makes again, once, with a test for each: how a command runs, who opens and commits the transaction, how a message leaves with that transaction, how a failure becomes an HTTP or gRPC answer, how a token is validated, where logs and traces go.
This package is one of a cohort that shares one version. Most projects do not reference the packages by hand: they are generated.
dotnet tool install --global MPCore.Cli
dotnet new install MPCore.Templates
mpcore new backend --organization Acme --component Orders --output ./orders
| You write | MP Core does |
|---|---|
| A handler: a static method that takes a command and the ports it needs | Opens the transaction, runs validators first, saves, commits, and only then releases the messages the handler published |
| A business rule as a named class, checked by the aggregate | Reports it under its own code, as Problem Details or a rich gRPC status, in the caller's language |
RequireIdempotencyKey() on an endpoint |
Stores the key and the answer in the transaction that commits the change; a repeat receives the stored answer |
| An integration event raised by an aggregate | Delivers it to Kafka or RabbitMQ after the commit; a consumer's inbox stops a second delivery |
| Nothing | Token validation, protect-by-default endpoints, a named actor in every audit record, telemetry with redaction |
Learn more
- Source, documentation and the reference architecture: https://github.com/panahister/mpcore
- A complete example, three backends behind a gateway: https://github.com/panahister/mpcore-storefront-sample
- Release notes: https://github.com/panahister/mpcore/tree/main/docs/releases
Licensed under Apache-2.0.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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
NuGet packages (8)
Showing the top 5 NuGet packages that depend on MPCore.Application:
| Package | Downloads |
|---|---|
|
MPCore.Hosting
Composition helpers for MP Core hosting, time, and observability. |
|
|
MPCore.Messaging.Wolverine
Durable Wolverine messaging foundation with PostgreSQL persistence. |
|
|
MPCore.Localization
Message catalog for MP Core failures: renders message keys in the caller's culture from resource files and optional override stores, with a fallback chain and a metric for missing translations. |
|
|
MPCore.Localization.EntityFrameworkCore.PostgreSql
EF Core and PostgreSQL store for translations an administrator edits at run time: a table in the product's own context, a store port that joins the handler's transaction, and an override source that every instance refreshes. |
|
|
MPCore.Idempotency.EntityFrameworkCore.PostgreSql
EF Core and PostgreSQL store for request idempotency keys and the consumer inbox: the key and the result commit in the transaction of the business change, a processed message commits with the consumer's changes, and expired entries are purged. |
GitHub repositories
This package is not used by any popular GitHub repositories.