a 利用HTMX和ASP.NET核心建立工作流程系统----第一部分:导言
一. 导言 导言 导言 导言 导言 导言 一,导言 导言 导言 导言 导言 导言
从简单的审批程序到复杂的多步自动化,工作流量系统无处不在,都是现代应用系统。
虽然有极好的商业解决方案 比如时间、空气流和n8n, 有时你需要适合你具体需要的东西。
- 在这个系列中,我会带你们从头开始 建立一个完整的工作流程系统 使用ASP.NET Core, HTMX, Alpine.js, 和Hangfire。
- 在本系列结束时,你将拥有一个功能齐全的工作流程系统,包括:
- 用于建设工作流程的视觉节点编辑器
- JSON 定义的工作流程节点,包括投入、产出和条件
- 自定义工作流程执行引擎
- 投票远程宣传宣传片用 " 燃火 " 进行背景工作处理
国家管理和持久性
监测工作流程执行的仪表板
为什么要建立你自己的工作流程系统?
- 在潜入之前,让我们来谈谈房间里的大象:为什么不使用现有的解决办法呢?
- 何时构建您自己的 :
- 您需要与您现有的应用程序进行深度整合
- 你有不符合通用工作流程工具的具体商业逻辑
- 您想要完全控制执行模式和缩放
您需要将外部依赖最小化
- 您想要学习如何在引擎盖下操作工作流程系统
- 何时使用现有工具 :
- 你需要一个经过验证的 战战试验的解决方案
您需要功能, 如在很多机器上分布执行 。
你没有时间建设和维护 海关基础设施
对于这一系列,我们选择建立我们自己, 因为它给了我们完全的灵活性, 并且是一个极好的学习机会。
我们正在建设的
我们的工作流程系统将支持几个关键概念:
- 1. 目标 1. 目标节点
- **节点是工作流程的组成部分。**每个节点代表一个独立的行动或决定点。
- **实例:**HTTP 请求节点
- :向外部服务提供API电话条件节点
- :评价表达方式和分支执行变换节点
: 处理数据(JSON操作、过滤等)
延迟节点
:等待指定期限
触发节点
- :根据事件或时间表启动工作流程
-
- 目标
- 流动流量
- 工作流程是连接节点的定向图。
- 数据通过连接从一个节点流向另一个节点,每个节点根据需要处理和转换数据。
3 个
执行引擎
- 解释工作流程定义并按正确顺序执行节点的引擎, 处理 :
- 顺序执行
- 平行执行( 当节点不互相依赖时)
- 有条件分支
- 错误处理和重试
国家持久性
- 4个。
- 视觉编辑器
- 以网络为基础的用户界面,用户可在其中:
- 将节点拖放到画布上
- 通过它们之间的绘图边缘连接节点
配置节节点属性
测试工作流程
查看执行执行历史
- 5 个背景处理
- **使用猎火,我们将执行:**排定的工作流程执行
- AIP 外部数据调查无法执行处决的重试逻辑
- 用于监测工作的仪表板技术堆堆
- **下面我们用的是:**后端
ASP.NET 核心核心9.0
- :我们的网络框架实体框架核心
- 数据持久性:数据持久性邮件greSQL
- : 用于存储工作流程定义和执行状态的数据库枪火
- :背景工作处理系统文本Json
工作流程:JSON序列化
- 前端HTMX 2. 0
- : 对于动态、服务器驱动的用户界面更新,不写入 JavaScript阿尔卑山
- :交互式组件的轻量度 JavaScript 框架尾风CSS + DisaiUI
:装配和UUI组件
领导线
Mostlylucid.Workflow/
├── Mostlylucid.Workflow.Engine/ # Core workflow execution engine
│ ├── Models/ # Node, Workflow, Connection models
│ ├── Execution/ # Workflow executor and runtime
│ └── Nodes/ # Built-in node implementations
├── Mostlylucid.Workflow.Shared/ # Shared models and DTOs
├── Mostlylucid.Workflow.DbContext/ # Entity Framework context
└── Mostlylucid/ # Main web app (existing)
├── Controllers/WorkflowController.cs
├── Services/WorkflowService.cs
└── Views/Workflow/ # Workflow UI views
:用于在节点之间建立联系(我们将探讨替代办法)
基础设施基础设施 嵌嵌入器
{
"id": "node-1",
"type": "HttpRequest",
"name": "Fetch User Data",
"inputs": {
"url": "https://api.example.com/users/{{userId}}",
"method": "GET",
"headers": {
"Authorization": "Bearer {{apiToken}}"
}
},
"outputs": {
"response": "{{result.body}}",
"statusCode": "{{result.statusCode}}"
},
"conditions": {
"onSuccess": "next-node-id",
"onError": "error-handler-node-id"
}
}
:集装箱化 Seq 单位
- :用于结构化伐木
- 普罗米修斯+格拉法纳
- :用于监测
建筑结构概览 我们的系统将组织成几个项目:
- 关键设计决定
-
- 目标 1. 目标
- 基于 JSON 的节点定义
- JSON将界定节点,使其易于序列、版本和分享:
2. 目标 基于图表的执行
- 工作流程是定向环形图(DAGs)。
- 执行引擎将:
- 确定执行命令的实绩地形排序
在可能的情况下平行执行节点
根据节点产出处理有条件的分支分支
- 3 个
- 州持久性
- 将跟踪每个工作流程的执行:
- 工作流程实例状态(运行、完成、失败)
节点执行结果
- 排定工作流程的触发状态
- 执行历史和日志
-
- 4个。
- 扩展性
- 节点系统将基于插件 :
共同业务内置节点
- 自定义节点类型可以注册
- 节点审定和计划执行
- 这系列里有什么来着?
- 第2部分:建筑和核心工作流程引擎
- 建立项目结构
建立核心工作流程模型(节点、工作流程、连接)
- 实施图形执行引擎
- 地形分类和依赖性分辨率
- 第3部分:建立视觉编辑
- 与 HTMX 和 Alpine.js 创建工作流程布局
- 拖放节点位置
视觉连接绘图
节节点配置面板面板
- 工作流程序列化
- 第4部分:营火一体化和国家管理
- 设置用于背景处理的挂牌火
- 实施APIPI投票节点
- 触发州管理
重试逻辑和错误处理
板板集成
第5部分:先进地物和部署
执行自定义节点
工作流程版本
测试战略测试战略
绩效优化
Finding related posts...