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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="LogicBuilder.RulesDirector" Version="2.0.6" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LogicBuilder.RulesDirector" Version="2.0.6" />
                    
Directory.Packages.props
<PackageReference Include="LogicBuilder.RulesDirector" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add LogicBuilder.RulesDirector --version 2.0.6
                    
#r "nuget: LogicBuilder.RulesDirector, 2.0.6"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package LogicBuilder.RulesDirector@2.0.6
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=LogicBuilder.RulesDirector&version=2.0.6
                    
Install as a Cake Addin
#tool nuget:?package=LogicBuilder.RulesDirector&version=2.0.6
                    
Install as a Cake Tool

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 FlowBackupData objects
  • 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 IRulesCache to 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

  1. Flow Initialization: StartInitialFlow() is called with a module name
  2. Rule Execution: The Director retrieves the ruleset from the cache and executes it
  3. State Tracking: As rules fire, the Driver property is updated with shape/page coordinates
  4. Module Navigation: When a rule invokes a new module, ModuleBeginName triggers:
    • Current state is pushed onto the calling module stack
    • The new module's ruleset is loaded and executed
  5. Module Return: When ModuleEndName is set, state is restored from the stack
  6. Progress Logging: Each state change is recorded in the Progress collection

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
  • LogicBuilder - Visual flow diagram designer and code generator
Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.

Version Downloads Last Updated
2.0.6 89 2/13/2026
2.0.4 781 5/11/2023
2.0.3 2,143 3/12/2022
2.0.2 5,362 11/23/2021
2.0.0 704 10/26/2021
1.0.4 556 10/26/2021
1.0.3 732 9/22/2021
1.0.2 1,690 2/20/2021
1.0.1-preview02 655 7/20/2020
1.0.1-preview01 815 7/18/2020
1.0.0 1,220 12/30/2018

Refactoring to accelerate DevOps.