AppFlow

Flow orchestration framework for .NET applications

Host.CreateDefaultBuilder(args)
    .ConfigureServices((hostContext, services) =>
    {
        services.AddTransient<InitCounterWorker>();
        services.AddTransient<IfWorker>();
        services.AddTransient<WhileWorker>();
        services.AddTransient<FinishWorker>();
    })
    .RegisterServiceFlow(flow =>
    {
        flow.UseAppTask<InitCounterWorker>()
        .UseIfBranch(ctx => ctx.HasCounter(), branchFlow =>
        {
            branchFlow
            .UseAppTask<IfWorker>()
            .UseAppTask<IfWorker>()
            .UseWhileBranch(ctx => ctx.GetCounter() < 5, branchFlow =>
            {
                branchFlow.UseAppTask<WhileWorker>();
            });
        }, false)
        .UseAppTask<FinishWorker>();
    });
                                

AppFlow Documentation

AppFlow documentation is the first place to go for help. It includes code samples.

Stack Overflow

Stack Overflow is a great place to ask questions.

AppFlow is open source under the BSD 3-Clause License.