LogicBuilder.RulesDirector
2.0.6
Prefix Reserved
dotnet add package LogicBuilder.RulesDirector --version 2.0.6
NuGet\Install-Package LogicBuilder.RulesDirector -Version 2.0.6
<PackageReference Include="LogicBuilder.RulesDirector" Version="2.0.6" />
<PackageVersion Include="LogicBuilder.RulesDirector" Version="2.0.6" />
<PackageReference Include="LogicBuilder.RulesDirector" />
paket add LogicBuilder.RulesDirector --version 2.0.6
#r "nuget: LogicBuilder.RulesDirector, 2.0.6"
#:package LogicBuilder.RulesDirector@2.0.6
#addin nuget:?package=LogicBuilder.RulesDirector&version=2.0.6
#tool nuget:?package=LogicBuilder.RulesDirector&version=2.0.6
LogicBuilder.RulesDirector
A .NET Standard 2.0 library that manages flow state and rule engine execution for applications built with LogicBuilder.
Overview
LogicBuilder.RulesDirector provides the runtime infrastructure for executing business logic flows defined visually in the LogicBuilder application. It serves as the orchestration layer that:
- Manages Flow State: Tracks the current position in a flow by maintaining module names, page indices, and shape indices
- Coordinates Rule Execution: Switches between rule engines as the flow navigates between different modules
- Maintains Navigation History: Preserves calling module stacks to support nested module invocation and returns
- Provides Flow Progress Tracking: Records the execution path through flow diagrams for debugging and auditing
- Supports State Backup/Restore: Enables save points and rollback functionality for complex workflows
Key Components
DirectorBase
The abstract base class that defines the core flow management contract:
- Driver Property: Encodes the current position in the flow (format:
{ShapeIndex}P{PageIndex}) - Selection Property: Handles multiple-choice branching logic within flows
- Module Management: Tracks module begin/end events and maintains module call stacks
- Flow Backup: Captures and restores complete flow state via
FlowBackupDataobjects - Progress Tracking: Maintains a list of visited flow positions for visibility
- Automatically retrieves and executes the appropriate ruleset when modules change
- Manages module invocation stacks for nested flow calls
- Handles flow initialization via
StartInitialFlow() - Coordinates with
IRulesCacheto access compiled rule engines
Supporting Interfaces
- IFlowActivity: The execution context that connects the Director to application-specific logic
- IRulesCache: Repository for accessing compiled rule engines by module name
- Progress: Event-driven collection of flow execution steps
How It Works
- Flow Initialization:
StartInitialFlow()is called with a module name - Rule Execution: The Director retrieves the ruleset from the cache and executes it
- State Tracking: As rules fire, the
Driverproperty is updated with shape/page coordinates - Module Navigation: When a rule invokes a new module,
ModuleBeginNametriggers:- Current state is pushed onto the calling module stack
- The new module's ruleset is loaded and executed
- Module Return: When
ModuleEndNameis set, state is restored from the stack - Progress Logging: Each state change is recorded in the
Progresscollection
Flow State Encoding
The Driver property encodes position as: {ShapeIndex}P{PageIndex}
Example: "15P2" means Shape 15 on Page 2 of the flow diagram
Use Cases
- Business process automation systems
- Rules-based workflow engines
- Decision management applications
- Dynamic form flows and wizards
- State machine implementations
Requirements
- .NET Standard 2.0 or higher
- Compatible with .NET Framework 4.6.1+ and .NET Core 2.0+
- CLS-compliant for cross-language interoperability
Related Projects
- LogicBuilder - Visual flow diagram designer and code generator
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- LogicBuilder.Workflow.Activities.Rules (>= 2.0.6)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on LogicBuilder.RulesDirector:
| Package | Downloads |
|---|---|
|
LogicBuilder.RulesDirector.AspNetCore
LogicBuilder.RulesDirector.AspNetCore augments LogicBuilder.RulesDirector with ASP.NET Core with session management for the Logic Builder. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Refactoring to accelerate DevOps.