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 Elsadotnet 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 工作流程。

如果觉得不错,可以推荐收藏一下,让我也更有动力。

相关文章:

  • 推荐一个很棒的开源工作流elsa-core

  • .NET 5 开源工作流框架elsa技术研究

  • 小试elsa

elsa-core——1.Hello World:Console相关推荐

  1. 【转载】从头编写 asp.net core 2.0 web api 基础框架 (1)

    工具: 1.Visual Studio 2017 V15.3.5+ 2.Postman (Chrome的App) 3.Chrome (最好是) 关于.net core或者.net core 2.0的相 ...

  2. 【 .NET Core 3.0 】框架之二 || 后端项目搭建

    前言 至于为什么要搭建.Net Core 平台,这个网上的解释以及铺天盖地,想了想,还是感觉重要的一点,跨平台,嗯!没错,而且比.Net 更容易搭建,速度也更快,所有的包均由Nuget提供,不再像以前 ...

  3. 从头编写 asp.net core 2.0 web api 基础框架 (1)

    工具: 1.Visual Studio 2017 V15.3.5+ 2.Postman (Chrome的App) 3.Chrome (最好是) 关于.net core或者.net core 2.0的相 ...

  4. 网站部署后无法访问sqlserver_.NET Core跨平台部署

    1. Windows-IIS 大家对于在IIS上部署.NET站点已经驾轻就熟了,部署.NET Core也没有什么本质区别,但是这其中仍然有一些细节是不同的,下面记录了一些我在部署时遇到的问题 1.1 ...

  5. .NET Core跨平台部署

    .NET Core跨平台部署 原文:.NET Core跨平台部署 .NET Core跨平台部署 1. Windows-IIS 大家对于在IIS上部署.NET站点已经驾轻就熟了,部署.NET Core也 ...

  6. java jdk1.6的新特性 DeskTop SystemTray Console类 Compiler API Http Server API

    DeskTop DeskTop类允许一个Java应用程序启动本地的另一个应用程序去处理URI或文件请求 Desktop desktop=Desktop.getDesktop(); //判断是否支持桌面 ...

  7. flask异步操作_Python Flask后端异步处理(三)

    前一篇博文我们已经将基础知识和环境配置进行了介绍: 首先编写一个celerytask.py文件进行Celery的配置,同时耗时任务也写在该文件中 from celery import Celery f ...

  8. py2exe——.py文件转换成exe

    1.官网下载 http://www.py2exe.org 2. 将要转换的python脚本放到Python文件夹内 在python的目录下面,通常是(C:\Python27,看你安装Python的位置 ...

  9. Ooui:在浏览器中运行.NET应用

    \ 看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料! \ \\ 在过去数年中,桌面应用开发人员一直处境艰难,因为人们的主要关注点聚焦于Web和移动应用.由于 ...

  10. .NET(C#) Internals: 以一个数组填充的例子初步了解.NET 4.0中的并行(一)

    引言 随着CPU多核的普及,编程时充分利用这个特性越显重要.本文首先用传统的嵌套循环进行数组填充,然后用.NET 4.0中的System.Threading.Tasks提供的Parallel Clas ...

最新文章

  1. jq实现点击导航栏中的任意一个跳转后被点击的定位到第一个
  2. Teams新功能更新【六月底】Microsoft Teams: Music on Hold
  3. Linux之tomcat日志管理
  4. java创建类的三个步骤_3个简单步骤即可测试Java 8
  5. HTML5链接tcpUDP,UDP/TCP协议 网络调试工具源码(C#)
  6. Kubernetes[3]-Server
  7. Linux Kernel TCP/IP Stack|Linux网络硬核系列 | 图
  8. windows server 2008 安装linux,使用WSL在Windows Server 2019上运行Linux的方法
  9. webStorm部分以及重要快捷键
  10. 利用ScriptEngineManager实现字符串公式灵活计算
  11. 【经典算法实现 14】阿克曼函数(手动推导求解、递归实现、非递归实现)
  12. Matpower建模
  13. 【人物志】美团技术委员会前端通道主席洪磊:爱折腾的斜杠青年
  14. 解决VS2017/2019无法在线升级
  15. Wilbur and Array
  16. 判断类型是否继承_读《Java核心技术》-继承(覆盖、final、强制类型转换、抽象类)...
  17. 婚姻介绍所怎么做身份实名认证?
  18. 国标、行标、地标、团标、企标以及国际标准的基础知识
  19. ThingsBoard——v3.3.3源码编译
  20. 服务器里vm启动不了共享虚拟机,VMware Workstation Server共享服务不能启动

热门文章

  1. PHP 利用Mail_MimeDecode类提取邮件信息
  2. JavaScript的10种跨域共享的方法
  3. (Microsoft) Visual Studio LightSwitch
  4. VMware虚拟机VMware Authorization Service不能启动问题
  5. title与h1标签的区别和联系
  6. linux slub分配器浅析
  7. facebook 分享页面_Facebook个人资料,页面和组之间有什么区别?
  8. java获取前端json数据_java如何获取前端ajax传来的json对象
  9. 关于width: 100%的一些看法
  10. 219. 单页应用 会话管理(session、cookie、jwt)