以 HTMX 和 ASP.NET Core @-}建立工作流程系统 (中文 (Chinese Simplified))

以 HTMX 和 ASP.NET Core @-}建立工作流程系统

Wednesday, 15 January 2025

//

3 minute read

一. 导言导言 导言 导言 导言

工作流系统在现代应用中无处不在, 从简单的审批程序到复杂的多功能 -step Atituals *.}虽然有极好的商业解决方案如Temporal,Airflow_,和n{8NMSSK6有时你需要适合自己具体需求的东西.在这个系列中...,I'L会从零开始通过建立完整的工作流程系统 使用 ASPMS K10NET CoreMESK11}HTMX,*Alpine}.j,和HangfireMSG15}

到此系列的结尾 您将拥有一个功能齐全的工作流程系统, 与 @:+@

  • 用于建设工作流程的视觉节点@-基编辑器
  • JSON- 定义的工作流程节点,有输入@,输出 @,和条件
  • 自定义工作流程执行引擎
  • 投票远程宣传片用 " 燃火 " 进行背景工作处理
  • 国家管理和持久性
  • 监测工作流程执行的仪表板

为何建立您自己的工作流程系统@? @%

为何不使用现有解决方案?

何时构建您的自动@ : @

  • 您需要与您现有的应用程序进行深度整合
  • 您有特定的商业逻辑, 与通用工作流程工具不兼容@ ' @
  • 您想要完全控制执行模式和缩放
  • 您需要将外部依赖最小化
  • 您想要学习如何在引擎盖下操作工作流程系统

何时使用现有工具@ : @%

  • 您需要立即获得测试的解决方案 。
  • 您需要功能, 如在很多机器上分布执行 。
  • 您没有时间建设和维护海关基础设施

对于这个系列来说,我们选择建立我们自己 因为它给了我们完全的灵活性 而且是一个极好的学习机会

我们所建造的

我们的工作流程系统将支持几个关键概念 :

1.節点

节点是工作流程的构件@. @ 每一个节点代表一个独立的动作或决定点@ ._ 示例 @ MS K2}

  • HTTP 请求节点*: API呼叫外部服务
  • 条件节点: 评估表达方式和分支执行
  • 变换节点:处理数据 @(JSON management@,过滤},等#.)
  • 延迟节点: 等待特定期限
  • 触发节点: 启动基于事件或时间表的工作流程

*2. 工作流量

工作流程是连接节点的定向图表@.}数据从一个节点流向另一个节点,通过每个节点处理和根据需要转换数据的链接,

3. 执行引擎

用于解释工作流程定义并按正确的顺序执行节点的引擎@,}处理 @:}

  • 顺序执行
  • 双向执行@( @% 当节点互不依赖时#'}*)
  • 有条件分支
  • 错误处理和重试
  • 国家持久性

4. 视觉编辑器

基于 Web 的 UI, 用户可以在此端端上 @: @%

  • 将节点拖放到画布上
  • 通过它们之间的绘图边缘连接节点
  • 配置节点属性
  • 测试工作流程
  • 查看执行执行历史

5. 背景处理

使用Hangfire@, @ we'}将执行 @: @

  • 排定的工作流程执行
  • AIP 外部数据调查
  • 无法执行处决的重试逻辑
  • 用于监测工作的仪表板

技术堆叠

这里:' @%s 我们将使用什么? '}#:}

后端

  • ASP=.NET 核心9.0:我们的网络框架
  • 实体框架核心*: 用于数据持久性
  • 邮件greSQL用于存储工作流程定义和执行状态的数据库
  • 枪火: 背景工作处理
  • 系统@. @ text @ ._ Json用于工作流程 JSON序列化

前端

  • HTMX 2.0用于动态@,服务器 @-驱动 UI 更新, 不写入 JavaScript
  • 阿尔卑斯山用于交互式组件的 :轻量级 JavaScript 框架
  • 尾风CS @ +# DisiUI:-Styring和UI组件
  • 领导线@: 用于绘制节点之间连接的 (we' 会探索其他选项@)

基础设施基础设施

  • 嵌入器用于集装箱化
  • Seq 单位用于结构化伐木的:
  • 普罗米修斯 格拉法纳*:用于监测

建筑结构概览

我们的系统将组织成几个项目 :

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

关键设计决定

1.JSON-基于节点的定义 节点将在 JSON, 中定义, 使其容易序列化@, @ 版本_ ,} 并共享\ MS K3}

{
  "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"
  }
}

@ 2._ 图表@ MS K1_ 基于执行 工作流是定向环形图(DAGsMS K1 执行引擎:

  • 确定执行命令的实绩地形排序
  • 在可能的情况下平行执行节点
  • 根据节点产出处理有条件的分支

国家持久性 每个工作流程的执行都将被跟踪@: @%

  • 工作流实例状态@(Running,}已完成 @, 失败{)
  • 节点执行结果
  • 排定工作流程的触发状态
  • 执行历史和日志

*4. 扩展性 节点系统将是一个插件@ - @ based @ MS K1

  • 共同业务的节点
  • 自定义节点类型可以注册
  • 节点审定和计划执行

什么是' 来到这系列

建筑和核心工作流程引擎

  • 建立项目结构
  • 建立核心工作流程模型@(Node,}工作流程 @,连接{)
  • 实施图形执行引擎
  • 地形分类和依赖性分辨率

建立视觉编辑器

  • 使用 HTMX 和 Alpine @ .js 创建工作流程画布
  • drop 节点位置
  • 视觉连接绘图
  • 节点配置面板
  • 工作流程序列化

营火融合和国家管理部分

  • 设置用于背景处理的挂牌火
  • 实施API投票节点
  • 触发州管理
  • 重试逻辑和错误处理
  • Dashbo板集成

高级地物和部署

  • 执行自定义节点
  • 工作流程版本
  • 测试战略
  • 绩效优化
  • 嵌入器部署

先决条件

为了配合这个系列 ,,你应该有:

  • 安装了.NET @9.0%SDK
  • ASP.NET核心监查中心的基本知识
  • 熟悉实体框架核心
  • 理解 HTML\ @,}CSS,}和基本 JavaScript
  • 正在运行的依附性 docker @ ( @ optional@ MS K1@ I)}

开始

在下一篇文章“,”中,我们'将直接跳入建设核心工作流程引擎 “.”我们将创建模型“MS K4 实施执行引擎‘, 并写下第一个可以按程序完成的流程}♪.

这将会是一个有趣的旅程 @!We'll 构建真正有用的东西, 同时学习图表算法@,背景处理}#,和现代网络开发模式_.

结论结论

建立从头开始的工作流程系统是一个雄心勃勃的项目 @,,但是它也令人难以置信地富有回报性 @MS K2@You'将深入了解现代自动化平台是如何运作的_,和您#'将拥有一个完全适合你需要的系统+'}♪.

在“2,”部分中,我们'将开始编码 “! 我们MS K3将建立项目结构并构建核心工作流程引擎, 以执行基于我们的节点@-的工作流程 @.

继续收听!

Finding related posts...
logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.