Intropy.Framework.Blocks
0.3.0-beta.4
See the version list below for details.
dotnet add package Intropy.Framework.Blocks --version 0.3.0-beta.4
NuGet\Install-Package Intropy.Framework.Blocks -Version 0.3.0-beta.4
<PackageReference Include="Intropy.Framework.Blocks" Version="0.3.0-beta.4" />
<PackageVersion Include="Intropy.Framework.Blocks" Version="0.3.0-beta.4" />
<PackageReference Include="Intropy.Framework.Blocks" />
paket add Intropy.Framework.Blocks --version 0.3.0-beta.4
#r "nuget: Intropy.Framework.Blocks, 0.3.0-beta.4"
#:package Intropy.Framework.Blocks@0.3.0-beta.4
#addin nuget:?package=Intropy.Framework.Blocks&version=0.3.0-beta.4&prerelease
#tool nuget:?package=Intropy.Framework.Blocks&version=0.3.0-beta.4&prerelease
Intropy.Framework.Blocks
Reusable pipeline blocks for the Intropy.Framework pipeline framework.
Each block is a ready-made pipeline shape for a common integration pattern:
| Block | Input → Output | Use case |
|---|---|---|
| Extractor | string → CloudEvent |
System-to-queue: extract data, transform, publish as CloudEvent |
| Loader | CloudEvent → TOutput |
Queue-to-system: consume CloudEvent, transform, send |
| TransactionalIntegration | File-based | Receive files → enqueue → process → send, with idempotency |
Each block exposes a fluent builder and wires up deserialization, validation, transformation, idempotency, and finalizers in the right order.
Configuring steps: DI vs. instance
The builders follow one rule for how steps are supplied:
- External edges are DI-resolvable. Idempotency (
WithIdempotency), business incidents (WithBusinessIncidents), and the send/publish edge (WithDaprTopicPublisher,WithDaprServiceInvoker,WithSenderFromServices) resolve their infrastructure clients from the service provider. This keeps the "which external system?" decision in service registration, and lets tests substitute a fake by replacing the registration. - Component logic is instance-passed. Deserializers, validators, transformers, serializers, and
extract steps are component-owned and passed directly to the builder (
WithDeserializer,WithTransformer, ...).
For the send edge, WithSenderFromServices() resolves the sender registered against its abstract base
type — SendStep<TCtx> for the Extractor, SendStep<TOutput, TCtx> for the Loader:
// Registration (composition root)
services.AddSingleton<SendStep<OrderContext>>(sp =>
new DaprTopicPublisher<OrderContext>(
sp.GetRequiredService<DaprClient>(), "pubsub", "orders",
new Uri("urn:company:system:erp"), "com.company.order.extracted"));
// Builder
var extractor = ExtractorBuilder<Order, OrderDto, OrderContext>.Create("orders", sp)
// ... other steps ...
.WithSenderFromServices()
.Build();
The sender is resolved once, when WithSenderFromServices() is called — register it as a singleton (or transient), not scoped.
Install
dotnet add package Intropy.Framework.Blocks
License
MIT. See the repository for source and documentation.
| 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
- CloudNative.CloudEvents (>= 2.8.0)
- CloudNative.CloudEvents.SystemTextJson (>= 2.8.0)
- Dapr.Client (>= 1.17.9)
- Intropy.Framework.Adapters (>= 0.3.0-beta.4)
- Intropy.Framework.Core (>= 0.3.0-beta.4)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Intropy.Framework.Blocks:
| Package | Downloads |
|---|---|
|
Intropy.Framework.Hosting
Runtime orchestration (Dapr sidecar lifecycle, idle timeout, message subscription) for the Intropy.Framework pipeline framework. |
|
|
Intropy.Framework.Testing
Hand-rolled fakes and delivery helpers for component integration tests against the Intropy.Framework pipeline framework. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.3.0-beta.5 | 64 | 8/12/2026 |
| 0.3.0-beta.4 | 77 | 8/11/2026 |
| 0.3.0-beta.3 | 65 | 8/11/2026 |
| 0.3.0-beta.2 | 63 | 8/11/2026 |
| 0.3.0-beta.1 | 70 | 8/11/2026 |
| 0.2.3 | 264 | 5/27/2026 |
| 0.2.2 | 129 | 5/26/2026 |
| 0.1.1 | 131 | 5/25/2026 |
| 0.1.0 | 170 | 5/18/2026 |