|
.NET Coreには、数多くのプロセスエンジンが用意されています。これらのエンジンは豊富な機能と柔軟な拡張性を備えており、開発者がビジネスプロセスを容易に管理・実行するのに役立ちます。この記事では、.NET Coreで人気の高い3つのプロセスエンジンを、簡単な使用例とソースコードとともに紹介します。 エルサワークフローElsa Workflowは、豊富な機能と柔軟な拡張性を備えた.NET Core向けのオープンソースワークフローエンジンです。Elsa Workflowの主な機能は次のとおりです。 - XAMLワークフロー定義をサポート:Elsa WorkflowはXAMLを使用したワークフロー定義をサポートしています。Visual Studioやその他のXAMLエディターを使用してワークフローを作成および編集できます。
- 強力なワークフロー実行エンジン:Elsa Workflowのワークフロー実行エンジンは、複雑なワークフローを実行でき、並列実行、待機、一時停止、再開などの機能をサポートしています。また、ワークフロー実行中に処理および制御できる豊富なイベントと操作も提供します。
- スケーラビリティとカスタマイズ性:Elsa Workflowはプラグインと拡張機能をサポートしているため、既存のアプリケーションへの統合が容易です。特定のビジネスニーズに合わせて、カスタムアクティビティ、条件、アクションを作成できます。
- 永続性と追跡: Elsa Workflow は、ワークフローの状態をデータベースに永続化し、追跡機能を提供するため、ユーザーはワークフローの実行履歴と現在のステータスを表示できます。
以下は、文字列パラメータを受け取り、それを大文字に変換してコンソールに出力する単純なワークフローを定義する簡単な使用例です。 using Elsa.Activities.Console; using Elsa.Activities.ControlFlow; using Elsa.Activities.Primitives; using Elsa.Builders; var workflow = builder .StartWith<ReceiveMessage>() .With(x => x.Message, Input<string>("Enter a message")) .Then<ToUpper>() .With(x => x.Text, ctx => ctx.GetInput<string>()) .With(x => x.Result, ctx => ctx.SetOutput(x.Text.ToUpper())) .Then<WriteLine>() .With(x => x.Text, ctx => $"The message in uppercase is: {ctx.GetInput<string>()}") .Then<Finish>() .Build(); Elsa Workflow のソース コードと詳細なドキュメントは、GitHub リポジトリ ( https://github.com/elsa-workflows/elsa-core) にあります。 コアWF CoreWFは、Windows Workflow Foundation (WF) の .NET Core 実装をベースにした軽量な .NET Core ワークフローエンジンです。CoreWF の主な機能は次のとおりです。 - XAMLワークフロー定義をサポート:CoreWFはXAMLを使用したワークフロー定義をサポートしています。Visual Studioやその他のXAMLエディターを使用してワークフローを作成および編集できます。
- 強力なワークフロー実行エンジン:CoreWFのワークフロー実行エンジンは、複雑なワークフローを実行でき、並列実行、待機、一時停止、再開などの機能をサポートします。また、ワークフロー実行中に処理および制御できる豊富なイベントと操作も提供します。
- スケーラビリティとカスタマイズ性:CoreWFはプラグインと拡張機能をサポートしているため、既存のアプリケーションへの統合が容易です。特定のビジネスニーズに合わせて、カスタムアクティビティ、条件、アクションを作成できます。
- 永続性とトレース: CoreWF はワークフローの状態をデータベースに永続化し、トレース機能を提供するため、ユーザーはワークフローの実行履歴と現在の状態を表示できます。
以下は、文字列パラメータを受け取り、それを大文字に変換してコンソールに出力する単純なワークフローを定義する簡単な使用例です。 using System.Activities; using System.Activities.Statements; var workflow = new Workflow { Variables = { new Variable<string>("Message"), new Variable<string>("Result") }, Activities = { new WriteLine { Text = new InArgument<string>(ctx => $"Enter a message:") }, new ReadLine { BookmarkName = "ReceiveMessage", Result = new OutArgument<string>(ctx => ctx.Variables["Message"]) }, new Assign<string> { To = new OutArgument<string>(ctx => ctx.Variables["Result"]), Value = new InArgument<string>(ctx => ctx.Variables["Message"].ToUpper()) }, new WriteLine { Text = new InArgument<string>(ctx => $"The message in uppercase is: {ctx.Variables["Result"]}") } } }; CoreWF のソース コードと詳細なドキュメントは、GitHub リポジトリ ( https://github.com/UiPath/CoreWF) にあります。 ワークフローコアWorkflowCoreは、シンプルでありながら強力なワークフローエンジン機能を提供する軽量な.NET Coreワークフローエンジンです。WorkflowCoreの主な機能は次のとおりです。 - シンプルなワークフロー定義: WorkflowCore は C# コードを使用してワークフローを定義し、C# を使用してワークフロー ロジックと制御フローを記述できます。
- 強力なワークフロー実行エンジン:WorkflowCoreのワークフロー実行エンジンは、複雑なワークフローを実行でき、並列実行、待機、一時停止、再開などの機能をサポートします。また、ワークフロー実行中に処理および制御できる豊富なイベントと操作も提供します。
- スケーラビリティとカスタマイズ性:WorkflowCoreはプラグインと拡張機能をサポートしているため、既存のアプリケーションへの統合が容易です。特定のビジネスニーズに合わせて、カスタムアクティビティ、条件、アクションを作成できます。
- 永続性と追跡: WorkflowCore はワークフローの状態をデータベースに永続化し、追跡機能を提供するため、ユーザーはワークフローの実行履歴と現在の状態を表示できます。
以下は、文字列パラメータを受け取り、それを大文字に変換してコンソールに出力する単純なワークフローを定義する簡単な使用例です。 using System.Threading.Tasks; using WorkflowCore.Interface; using WorkflowCore.Models; public class MyWorkflow : IWorkflow<string> { public string Id => "MyWorkflow"; public int Version => 1; public void Build(IWorkflowBuilder<string> builder) { builder .StartWith(context => ExecutionResult.Next()) .WaitFor("ReceiveMessage", (data, context) => data) .Then(context => data.ToUpper()) .Then(context => Console.WriteLine($"The message in uppercase is: {context}")) .Then(context => ExecutionResult.Next()); } } var host = new WorkflowHost(); await host.StartAsync(); var workflowId = await host.StartWorkflowAsync("MyWorkflow", "Enter a message"); await host.PublishEventAsync(workflowId, "ReceiveMessage", "Hello, world!"); WorkflowCore のソース コードと詳細なドキュメントは、GitHub リポジトリ ( https://github.com/danielgerlag/workflow-core) にあります。 .NET Coreで人気の高い3つのプロセスエンジンをご紹介します。豊富な機能を備え、参照や学習用のソースコードも提供されています。ニーズや好みに合わせてお選びいただき、実際のプロジェクトでビジネスプロセスを管理・実行するためにご活用ください。これらのプロセスエンジンの利点は、高い拡張性とカスタマイズ性にあり、ビジネス要件に合わせてカスタマイズ・拡張できます。 |