Pocok.Modularity
0.2.0-alpha.7
Prefix Reserved
dotnet add package Pocok.Modularity --version 0.2.0-alpha.7
NuGet\Install-Package Pocok.Modularity -Version 0.2.0-alpha.7
<PackageReference Include="Pocok.Modularity" Version="0.2.0-alpha.7" />
<PackageVersion Include="Pocok.Modularity" Version="0.2.0-alpha.7" />
<PackageReference Include="Pocok.Modularity" />
paket add Pocok.Modularity --version 0.2.0-alpha.7
#r "nuget: Pocok.Modularity, 0.2.0-alpha.7"
#:package Pocok.Modularity@0.2.0-alpha.7
#addin nuget:?package=Pocok.Modularity&version=0.2.0-alpha.7&prerelease
#tool nuget:?package=Pocok.Modularity&version=0.2.0-alpha.7&prerelease
Pocok.Modularity
Pocok.Modularity loads trusted, independently deployed startup plugins without adding implementation references to the
host.
builder.Services.AddPocokModules(builder.Configuration, options =>
{
options.AddDirectory(Path.Combine(builder.Environment.ContentRootPath, "plugins"));
options.ShareAssemblyContaining<IDeviceCommunicator>();
});
Each plugin directory contains a versioned pocok.module.json, its entry assembly, and private dependencies:
{
"manifestVersion": 1,
"id": "supplier.acme.device",
"version": "1.0.0",
"entryAssembly": "Acme.DevicePlugin.dll",
"required": false,
"supportedOperatingSystems": ["windows"],
"sharedAssemblies": ["MyApplication.DeviceContracts"]
}
The entry assembly exposes one or more public parameterless IServiceModule implementations. Their registrations are
staged and copied into the host only after the complete plugin succeeds. The loader never builds an intermediate service
provider.
One non-collectible AssemblyLoadContext and AssemblyDependencyResolver pair is used per plugin. The module
contracts, the standard configuration and DI abstractions exposed by those contracts, and explicitly shared application
contract assemblies resolve from the default context; private dependencies resolve from the plugin directory. Discovery
is manifest-led and deterministic.
This is not a sandbox. Plugins execute trusted code in-process. Version 1 is startup-only and deliberately excludes hot reload, installation, unload guarantees, child containers, and module dependency graphs.
The package remains non-releasable in eng/packages.json until its Linux and Windows fixture matrix passes in CI.
| 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
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection (>= 10.0.10)
- Pocok.Modularity.Contracts (>= 0.2.0-alpha.7)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Pocok.Modularity:
| Package | Downloads |
|---|---|
|
Pocok.AppDefaults.Modularity
Conventional plugin-directory and failure-policy defaults for Pocok.Modularity. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.2.0-alpha.7 | 60 | 7/20/2026 |