elsa-core——1.Hello World:Console

中陽裡士發表於2021-08-16

github上有一個開源的工作流專案elsa,elsa-core是core語言的版本,其文件因為是英文,因此會讓很多人不想看,或者是看不下去,從這篇文章開始我將開始對elsa-core的文件翻譯成英文並分享出來,方便大家檢視與學習。

以下為正文:


 在本快速入門中,我們將瞭解一個執行工作流的最小控制檯應用程式。

 接下來我們將:

  • 使用 Elsa 的 Workflow Builder API 以程式設計方式定義在控制檯上顯示文字“Hello World”的工作流定義。
  • 執行工作流。

專案

建立一個名為 ElsaQuickstarts.ConsoleApp.HelloWorld 的新 .NET Core 控制檯專案:

dotnet new console -n "ElsaQuickstarts.ConsoleApp.HelloWorld"

CD 到建立的專案資料夾中:

cd ElsaQuickstarts.ConsoleApp.HelloWorld

新增以下包:

dotnet add package Elsa

dotnet add package Elsa.Activities.Console

 


 工作流程

建立一個名為 HelloWorld.cs 的新檔案並新增以下程式碼:

using Elsa.Activities.Console;
using Elsa.Builders;

namespace ElsaQuickstarts.ConsoleApp.HelloWorld
{
    /// <summary>
    /// A basic workflow with just one WriteLine activity.
    /// </summary>
    public class HelloWorld : IWorkflow
    {
        public void Build(IWorkflowBuilder builder) => builder.WriteLine("Hello World!");
    }
}

上述工作流程只有一個步驟(也稱為活動):WriteLine,它將一行文字寫入標準輸出(控制檯)。

 


 程式

開啟 Program.cs 並將其內容替換為以下內容:

using System.Threading.Tasks;
using Elsa.Services;
using Microsoft.Extensions.DependencyInjection;

namespace ElsaQuickstarts.ConsoleApp.HelloWorld
{
    class Program
    {
        private static async Task Main()
        {
            // Create a service container with Elsa services.
            var services = new ServiceCollection()
                .AddElsa(options => options
                    .AddConsoleActivities()
                    .AddWorkflow<HelloWorld>())
                .BuildServiceProvider();
            
            // Get a workflow runner.
            var workflowRunner = services.GetRequiredService<IBuildsAndStartsWorkflow>();

            // Run the workflow.
            await workflowRunner.BuildAndStartWorkflowAsync<HelloWorld>();
        }
    }
}

 


 執行

執行程式並觀察以下輸出:

Hello world!

成功!您已成功建立並執行 Elsa 工作流程。