Workable.AspNetCore
1.1.70926.1
See the version list below for details.
dotnet add package Workable.AspNetCore --version 1.1.70926.1
NuGet\Install-Package Workable.AspNetCore -Version 1.1.70926.1
<PackageReference Include="Workable.AspNetCore" Version="1.1.70926.1" />
<PackageVersion Include="Workable.AspNetCore" Version="1.1.70926.1" />
<PackageReference Include="Workable.AspNetCore" />
paket add Workable.AspNetCore --version 1.1.70926.1
#r "nuget: Workable.AspNetCore, 1.1.70926.1"
#:package Workable.AspNetCore@1.1.70926.1
#addin nuget:?package=Workable.AspNetCore&version=1.1.70926.1
#tool nuget:?package=Workable.AspNetCore&version=1.1.70926.1
Workable
Workable is a .NET work orchestration library for applications that need more than "run this in the background." It turns background jobs, operational tasks, recurring work, and user-triggered actions into first-class work the host can queue, observe, control, and configure.
Most applications eventually grow work that does not fit cleanly inside the request, controller action, message handler, or command that started it. Sending email, refreshing caches, synchronizing data, running maintenance tasks, retrying transient failures, and coordinating long-running operations all need identity, state, cancellation, status, events, and a way to be found later. Workable gives that work a consistent runtime model instead of leaving each feature to invent its own.
Workable is useful when you want feature code to define work near the feature that needs it, while the host application keeps control of execution. Feature assemblies can declare their own work with Workable.Sdk. Libraries that need to use a hosted system can depend on Workable.Abstractions and accept IWorkSystem from the host. The host application owns the actual Workable systems, decides which work belongs in each system, and controls how workers start, retry, recur, respect concurrency, and stay available for inspection.
That split lets teams add work near the feature that needs it without forcing every feature library to know how the application hosts work. At runtime, the host gets a consistent surface for queueing work, awaiting completion, pausing, canceling, reconfiguring workers, and subscribing to work events.
Workable also gives applications a path to expose the same authored work through more than one channel. Direct .NET callers, HTTP endpoints, MCP clients, and realtime SignalR clients can all work against the same catalog while preserving request context, structured outcomes, worker history, and invocation rules.
Why Use Workable?
- Define work once and invoke it through .NET, HTTP, or MCP when those channels are enabled.
- Register workflow definitions that coordinate existing work through dispatch, parallel, and join steps inside the host runtime.
- Keep feature libraries independent from the host runtime while still letting them contribute work.
- Queue fire-and-forget work without losing the ability to query, observe, cancel, pause, retry, or purge it.
- Give operators a real admin surface for work: live system and worker visibility, executable definitions, diagnostics, and control actions instead of one-off job screens and custom tooling.
- Attach runtime behavior such as recurrence, transient retry, idempotency, concurrency, retention, logging, profiling, initialization, and start policy.
- Use structured inputs, outputs, messages, worker snapshots, event payloads, and status summaries instead of ad hoc task tracking.
- Preserve who or what started work through request context and origin metadata for HTTP, MCP, SignalR, and direct .NET calls.
Packages
Core Packages
Workable.Sdk: contracts and registration helpers for assemblies that author work.Workable.Abstractions: contracts for libraries that consume an already-hosted work system.Workable: in-process host and runtime for Workable systems.
Optional Packages
Workable.SqlServer: SQL Server persistence integration for durable queueing, persistence-backed idempotency, and persistence-backed concurrency.Workable.AspNetCore: ASP.NET Core request-context and authorization integration for custom endpoints and hosts.Workable.Entra: Microsoft Entra ID bearer-token validation and Workable authorization claim mapping for ASP.NET Core target apps.Workable.Views: shared component-view contracts and projections used by HTTP and SignalR adapters; most applications receive it transitively throughWorkable.HttpApiorWorkable.SignalRinstead of referencing it directly.Workable.HttpApi: standard HTTP endpoints for queueing, querying, and controlling work.Workable.Mcp: MCP server adapter for authored work, query tools, and worker action tools.Workable.SignalR: realtime worker events and component-view updates for ASP.NET Core clients.
Apps And Tools
apps/samples/Workable.SampleHost: runnable ASP.NET Core sample app with HTTP API, MCP, SignalR, fake-auth profiles, and SQL Server LocalDB durability scenarios.apps/tools/Workable.PerformanceHarness: opt-in scenario runner and BenchmarkDotNet harness for runtime, query, view, realtime, and SQL durability performance work.apps/tools/Workable.SqlServer.Cli: SQL Server schema generation and deployment CLI for Workable persistence.apps/web/workable-admin-ui: Next.js admin UI for inspecting and operating Workable systems through the HTTP API and SignalR realtime updates.
Documentation
Start with the docs landing page: Workable Docs.
Recommended entry points:
- Getting Started if you are evaluating or integrating Workable.
- Registration if you are authoring work in feature assemblies.
- Workflows if you want to author multi-step orchestrations from existing work definitions.
- Implementation if you want to implement work classes and understand what executor code can do at runtime.
- Queueing if you already have work definitions and want to invoke them.
- Configuration if you are tuning start behavior, retry, recurrence, concurrency, durability, logging, retention, or invocation rules.
- HTTP API, MCP, and Realtime if you are exposing Workable over transports.
- Abstractions Surface if you are consuming a hosted system from another library.
- Workable SQL Server Integration if you need durable queueing or persistence-backed coordination.
- Sample Host if you want a runnable reference app.
- Admin UI if you want the browser-based operator surface.
- Performance Harness if you are measuring runtime or adapter performance.
| 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
- Workable.Abstractions (>= 1.1.70926.1)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on Workable.AspNetCore:
| Package | Downloads |
|---|---|
|
Workable.Entra
Microsoft Entra ID integration for interpreting host-authenticated actors and authorization claims on Workable ASP.NET Core adapter surfaces. |
|
|
Workable.SignalR
Expose Workable worker events and component-view updates to ASP.NET Core clients through SignalR. |
|
|
Workable.HttpApi
Expose standard ASP.NET Core HTTP endpoints for queueing Workable definitions, querying workers, and sending worker actions. |
|
|
Workable.Mcp
Expose Workable definitions, query tools, and worker action tools through an ASP.NET Core MCP server adapter. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.1.82326.1 | 89 | 8/24/2026 |
| 1.1.81126.1 | 199 | 8/11/2026 |
| 1.1.80926.1 | 129 | 8/9/2026 |
| 1.1.80726.1 | 151 | 8/8/2026 |
| 1.1.80526.1 | 158 | 8/5/2026 |
| 1.1.71926.1 | 174 | 7/21/2026 |
| 1.1.70926.1 | 192 | 7/10/2026 |
| 1.1.70626.2 | 246 | 7/6/2026 |
| 1.1.70626.1 | 160 | 7/6/2026 |
| 1.1.63026.1 | 186 | 6/30/2026 |
| 1.1.61226.1 | 197 | 6/12/2026 |
| 1.1.159.1 | 228 | 6/8/2026 |
| 1.1.158.1 | 171 | 6/7/2026 |
| 1.1.157 | 172 | 6/7/2026 |
| 1.1.153.1 | 180 | 6/2/2026 |
| 1.1.146.1 | 380 | 5/26/2026 |
| 1.1.142.3 | 203 | 5/23/2026 |
| 1.1.0 | 184 | 5/22/2026 |
| 1.1.0-preview | 145 | 5/21/2026 |
| 1.0.0 | 173 | 5/21/2026 |
# 1.1.070926.1
Date: 2026-07-09
## Added
- Added named workflow branches inside parallel workflow sections through the `.Branch(...)` builder syntax. Branches can contain sequential worker steps and nested structure nodes, so one workflow can now be modeled as a combination of structure nodes and workers without treating branches as separate workflows.
- Added branch-aware workflow execution for non-durable and durable workflows, including nested branch dispatch, branch completion/failure state, persisted branch snapshots, durable recovery, and definition fingerprinting for branch structure.
- Added `DispatchEach` branch support so fan-out steps can run inside named branches and recover only outstanding expanded children after restart.
- Added a richer workflow-run graph in the admin UI with branch lanes, collapsed-by-default branches, branch drill-in breadcrumbs, focused branch viewing, detailed full-screen graph mode, drag-to-pan navigation, and selected worker/node state restoration.
- Added sample multi-branch workflows to the sample host, including a multi-branch app workflow and larger dataflow examples for branch, nested validation, joins, dynamic fan-out, and workflow inspector paging.
- Added live iteration system capabilities to the iteration overview payload so profile panels can use the same live detail response for SQL profiling controls.
## Changed
- Workflow run rendering now treats branch nodes as first-class structure nodes, including graph progress, selected-node worker samples, selected child row state, saved collapsed-branch state, and completed-workflow highlighting.
- Workflow branch arrows now originate from the parent structure node rather than from collapsed branch lanes, making collapsed branch views easier to scan.
- Workflow graph containers now size around the expanded workflow content and no longer show collapsed-node placeholder text inside branch cards.
- Worker/profile panels now distinguish profiling disabled, still-running profile capture, missing final snapshots, and unavailable profile states instead of showing the same generic unavailable message.
- SQL profile controls now use explicit SQL profiling capability metadata from the live iteration overview when available, with host/system discovery retained as a fallback for older payloads.
- Updated the sample-host README and local agent notes to describe the expanded workflow samples and validation expectations.
## Fixed
- Fixed workflow worker selection in the admin UI so selected rows remain visibly highlighted, survive breadcrumb navigation, and restore the previous scroll position when returning to the worker grid.
- Fixed branch graph overflow and branch badge sizing issues by removing the redundant branch-count bubble and allowing the workflow graph area to grow with the rendered workflow.
- Fixed branch expand/collapse affordances so collapsed branches can be expanded reliably while keeping branch lanes collapsed by default.
- Fixed durable and non-durable branch failure handling so rejected child dispatches fail the relevant branch and parent structure consistently.
- Fixed paused `DispatchEach` source handling so workflows block correctly instead of incorrectly advancing when the source worker pauses.
- Fixed SQL profiling UI capability drift where a profile could contain captured SQL nodes while SQL profile actions were disabled because the panel relied only on separate host discovery state.
- Expanded regression coverage for workflow branches, nested branch execution, durable branch recovery, branch viewer interactions, selected worker restoration, profile empty states, and SQL profiling capability propagation.