FlowNet.Core 0.2.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package FlowNet.Core --version 0.2.1
                    
NuGet\Install-Package FlowNet.Core -Version 0.2.1
                    
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="FlowNet.Core" Version="0.2.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FlowNet.Core" Version="0.2.1" />
                    
Directory.Packages.props
<PackageReference Include="FlowNet.Core" />
                    
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 FlowNet.Core --version 0.2.1
                    
#r "nuget: FlowNet.Core, 0.2.1"
                    
#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 FlowNet.Core@0.2.1
                    
#: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=FlowNet.Core&version=0.2.1
                    
Install as a Cake Addin
#tool nuget:?package=FlowNet.Core&version=0.2.1
                    
Install as a Cake Tool

Flow.NET

面向现代 .NET 应用程序的轻量级生命周期与流程控制框架。

[WORKING IN PROGRESS]

NuGet Version GitHub Actions Workflow Status GitHub top language

快速开始

添加依赖:

dotnet add package FlowNet.Core

添加代码:

using FlowNet.Core;
using System.Threading.Tasks;

namespace YourApp.Namespace;

[Flow.Scope("app")]
public sealed partial class Program
{
    // Start application by Flow.NET
    public static Task Main() => FlowInterops.Initialize("app:start");

    [Flow.Task]
    public static async Task Start() 
    {
        // 这个 Task 的全局标识是 app:start, 其中 start 是从方法名推断出来的
        // 若要自定义标识, 可以使用 [Flow.Task("custom")]
        // do something...
    }
}

然后就可以开始写业务逻辑了——就这么简单,简单到连 template 都不用。

基于流程的开发

将 Program 类改成这样:

using FlowNet.Core;
using System.Threading.Tasks;

namespace YourApp.Namespace;

[Flow.Scope("app")]
internal static partial class Program
{
    // Run application based on flow control
    public static Task Main() => FlowInterops.Run();

    // Define base flows
    [Flow.Task]
    [Flow.Task("loading")]
    [Flow.Task("exit")]
    private static Task Wildcard() => Task.CompletedTask;
}

然后使用 Flow.Run 标记来定义各流程间的依赖关系,例如:

using FlowNet.Core;
using System.Threading.Tasks;

namespace YourApp.Namespace;

[Flow.Scope("config")]
public sealed partial class ConfigService
{
    [Flow.Task]
    [Flow.Run(After = "app:loading", Before = "*:start")]
    private static async Task _()
    {
        // 这是一个特殊的 Flow 任务,按照一般的标识符推断规则,它的标识符是空的
        // 因此这个任务的全局标识就是外部 scope 的标识,即 config
        // Initialize config service...
    }
}
Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 is compatible.  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 is compatible.  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 (2)

Showing the top 2 NuGet packages that depend on FlowNet.Core:

Package Downloads
FlowNet.Collector

Component collector for Flow.NET based on source generation

FlowNet.Configuration

Prioritized configuration system for Flow.NET based on source generation

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.2 722 6/20/2026
0.2.1 122 6/20/2026
0.2.0 139 6/12/2026
0.1.4 125 4/30/2026
0.1.3 111 4/26/2026
0.1.2 117 4/18/2026
0.1.1 109 4/18/2026