.NET Elsa工作流框架的搭建

  • 1、新建项目 (Elsa Server)
  • 2、新建项目 (Elsa Dashboard)

注:本文主要采用.NET 6和Elsa工作引擎进行编写
附.NET 6下载链接:https://dotnet.microsoft.com/zh-cn/download/visual-studio-sdks?cid=getdotnetsdk
Elsa官方地址:https://elsa-workflows.github.io/elsa-core/

1、新建项目 (Elsa Server)

  1. 选择 ASP.NET Core 空,将项目命名为 ElsaServer,去掉 配置HTTPS(H) 选项,目标框架选择 .NET 6.0


2.添加以下程序包

dotnet add package Elsa
dotnet add package Elsa.Activities.Http
dotnet add package Elsa.Activities.Temporal.Quartz
dotnet add package Elsa.Persistence.EntityFramework.Sqlite
dotnet add package Elsa.Server.Api

3.在 Program.cs 中 添加以下代码

using Elsa.Persistence.EntityFramework.Core.Extensions;
using Elsa.Persistence.EntityFramework.Sqlite;var builder = WebApplication.CreateBuilder(args);var elsaSection = builder.Configuration.GetSection("Elsa");// Elsa services.
builder.Services.AddElsa(elsa => elsa.UseEntityFrameworkPersistence(ef => ef.UseSqlite()).AddConsoleActivities().AddHttpActivities(elsaSection.GetSection("Server").Bind).AddJavaScriptActivities());// Elsa API endpoints.
builder.Services.AddElsaApiEndpoints();// Allow arbitrary client browser apps to access the API.
// In a production environment, make sure to allow only origins you trust.
builder.Services.AddCors(cors => cors.AddDefaultPolicy(policy => policy.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin().WithExposedHeaders("Content-Disposition"))
);var app = builder.Build();app.UseCors().UseHttpActivities().UseRouting().UseEndpoints(endpoints =>{// Elsa API Endpoints are implemented as regular ASP.NET Core API controllers.endpoints.MapControllers();}).UseWelcomePage();
app.Run();

4、运行 ElsaServer 项目,如图所示

2、新建项目 (Elsa Dashboard)

1.如 新建项目 (Elsa Server) 所示,选择 ASP.NET Core 空,将项目命名为 ElsaDashboard,去掉 配置HTTPS(H) 选项,目标框架选择 .NET 6.0

2.添加以下程序包

dotnet add package Elsa.Designer.Components.Web

3、添加看板页面
新增一个空的 Pages 文件夹,添加 _ViewImports.cshtml_Host.cshtml 两个 Rozar 页面

_ViewImports.cshtml 添加以下内容

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

_Host.cshtml 添加以下内容

其中 server-urlElsaServer项目的运行后的Url地址

@page "/"
<!DOCTYPE html>
<html lang="en">
<head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Elsa Workflows</title><link rel="icon" type="image/png" sizes="32x32" href="/_content/Elsa.Designer.Components.Web/elsa-workflows-studio/assets/images/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/_content/Elsa.Designer.Components.Web/elsa-workflows-studio/assets/images/favicon-16x16.png"><link rel="stylesheet" href="/_content/Elsa.Designer.Components.Web/elsa-workflows-studio/assets/fonts/inter/inter.css"><link rel="stylesheet" href="/_content/Elsa.Designer.Components.Web/elsa-workflows-studio/elsa-workflows-studio.css"><script src="/_content/Elsa.Designer.Components.Web/monaco-editor/min/vs/loader.js"></script><script type="module" src="/_content/Elsa.Designer.Components.Web/elsa-workflows-studio/elsa-workflows-studio.esm.js"></script>
</head>
<body><elsa-studio-root server-url="http://localhost:5254/" monaco-lib-path="_content/Elsa.Designer.Components.Web/monaco-editor/min"><elsa-studio-dashboard></elsa-studio-dashboard></elsa-studio-root>
</body>
</html>

4、在 Program.cs 中 添加以下代码

var builder = WebApplication.CreateBuilder(args);// Add services to the container.
builder.Services.AddRazorPages();var app = builder.Build();app.UseStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints => { endpoints.MapFallbackToPage("/_Host"); });app.Run();

5、设置多个启动项目

最终运行结果,如图所示

恭喜你已经学会了如何搭建Elsa工作流,后续文章的更新多多支持!

Elsa Workflows工作流引擎项目构建相关推荐

  1. activiti flowable 开源工作流引擎项目整合开发实施实践总结

    做工作流产品的实施有很多年了,也加了很多诸如 activiti flowable jbpm 等社区和群聊. 发现很多人在走弯路,深陷泥潭不可自拔. 所以写了这篇文章,旨在告诉很多走向了activiti ...

  2. 如何优雅的设计工作流引擎(荣耀典藏版)

    目录 前言 一.业务应用场景 二.工作流介绍 2.1 定义 2.2 工作流参考模型 2.3 工作流引擎特性 2.3 工作流引擎特性 2.5 工作流引擎和状态机的差异 三.开源工作流引擎 3.1.Act ...

  3. 轻量级工作流引擎的设计与实现

    工作中,基于实际情况的需要,自研了一款工作流引擎,期间有不少收获,愿与同学们分享,听我娓娓道来- 一.什么是工作流引擎 简而言之,工作流引擎就是驱动工作流执行的一套代码. 至于什么是工作流.为什么要有 ...

  4. 开源的 .NET 工作流引擎 Elsa 开源

    前言 微软的Workflow Foundation基于.NET Framework,并且没有向.NET Core迁移的计划. 我们的很多项目使用了工作流引擎,这些项目向.NET Core以及更高版本迁 ...

  5. SaaS-IHRM 项目-Activiti7基础原理与使用 工作流引擎 工作流使用

    第1章 什么是工作流 1.1工作流介绍 工作流(Workflow),就是通过计算机对业务流程自动化执行管理.它主要解决的是"使在多个参与者 之间按照某种预定义的规则自动进行传递文档.信息或任 ...

  6. Unity3D游戏引擎之构建游戏框架与导出IOS项目(一)

    Unity3D游戏引擎之构建游戏框架与导出IOS项目 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/a ...

  7. activiti工作流引擎入门教程

    activiti简介 Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准. Activiti是一种轻量级,可嵌入的BPM引擎,而且 ...

  8. 有关“优秀工作流引擎”的评价

    网上到处都有一篇被称为<优秀的工作流殷勤的144个标准>的文章,文章写的很全面,但其对实际应用的满足程度还是需要改进的,我在此抛砖引玉的对其做了写评价和扩展,在我的<面向业务开发应用 ...

  9. 学习笔记之-Activiti7工作流引擎,概述,环境搭建,类关系图,使用Activiti BPMN visualizer,流程变量,组任务 网关,Activiti整合Spring SpringBoot

    本篇学习笔记是观看黑马程序员Activiti7视频而得 Activiti7 一.工作流介绍 1.1 概念 工作流(Workflow),就是通过计算机对业务流程自动化执行管理.它主要解决的是" ...

最新文章

  1. Win7系统安装MySQL5.5.21图解教程
  2. 可能没有很好的重工业转型的case
  3. boost::geometry::wkt用法的测试程序
  4. Visual Studio 2015上安装Entity Framework Power Tools
  5. 手把手教你安装VMtools
  6. 小程序 input 换行_小程序 input双向数据绑定
  7. Transact-SQL数据类型(文本/图形/日期和时间/货币/特定类型)
  8. 1010 一元多项式求导(C语言)
  9. 【ROS学习笔记】(十一)launch启动文件的使用方法
  10. Spring Security环境搭建+用户认证和授权+注销
  11. 2022抖音日活用户超8亿,旅游商家如何从抖音获客?
  12. ignite java,Ignite 之计算运用的 Hello world
  13. 刚想起QQ微信支付宝三合一收款码
  14. windows-sys:27:vmware下安装windows XP系统详细过程
  15. 【deepin 20.1】终端的介绍
  16. SQL的between....and 用法
  17. 机器学习深版11:HMM模型
  18. 产品经理的私房菜 - 腾讯产品模型 - 沟通能力篇
  19. python-根据语音识别让无字幕视频自动生成字幕,附srt字幕文件
  20. 微信小程序链接后台接口,进行数据交互

热门文章

  1. DOWELL 筋膜枪单片机MCU集成充电方案管理芯片 TSOP20无需充电IC供电8.4V/12.6V/16.8V
  2. java抓取的代理服务ip端口
  3. Log4j的作用和使用步骤
  4. 关于PHP无法连接MSSQL数据库的解决办法
  5. mysql电子词典_电子词典阶段性小项目
  6. python与seo实战课程下载_python与SEO应用开讲啦
  7. 软件工程作业——智能洗衣机
  8. 元数据驱动的SaaS架构如何设计
  9. Linux操作系统之僵尸进程
  10. 机器人控制的基本方法