Back to "a 利用HTMX和ASP.NET核心建立工作流程系统----第一部分:导言"

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

Alpine.js ASP.NET HTMX Workflow

a 利用HTMX和ASP.NET核心建立工作流程系统----第一部分:导言

Wednesday, 15 January 2025

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

从简单的审批程序到复杂的多步自动化,工作流量系统无处不在,都是现代应用系统。

虽然有极好的商业解决方案 比如时间、空气流和n8n, 有时你需要适合你具体需要的东西。

  • 在这个系列中,我会带你们从头开始 建立一个完整的工作流程系统 使用ASP.NET Core, HTMX, Alpine.js, 和Hangfire。
  • 在本系列结束时,你将拥有一个功能齐全的工作流程系统,包括:
  • 用于建设工作流程的视觉节点编辑器
  • JSON 定义的工作流程节点,包括投入、产出和条件
  • 自定义工作流程执行引擎
  • 投票远程宣传宣传片用 " 燃火 " 进行背景工作处理

国家管理和持久性

监测工作流程执行的仪表板

为什么要建立你自己的工作流程系统?

  • 在潜入之前,让我们来谈谈房间里的大象:为什么不使用现有的解决办法呢?
  • 何时构建您自己的 :
  • 您需要与您现有的应用程序进行深度整合
  • 你有不符合通用工作流程工具的具体商业逻辑
  • 您想要完全控制执行模式和缩放

您需要将外部依赖最小化

  • 您想要学习如何在引擎盖下操作工作流程系统
  • 何时使用现有工具 :
  • 你需要一个经过验证的 战战试验的解决方案

您需要功能, 如在很多机器上分布执行 。

你没有时间建设和维护 海关基础设施

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

我们正在建设的

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

  • 1. 目标 1. 目标节点
  • **节点是工作流程的组成部分。**每个节点代表一个独立的行动或决定点。
  • **实例:**HTTP 请求节点
  • :向外部服务提供API电话条件节点
  • :评价表达方式和分支执行变换节点

: 处理数据(JSON操作、过滤等)

延迟节点

:等待指定期限

触发节点

  • :根据事件或时间表启动工作流程
    1. 目标
  • 流动流量
  • 工作流程是连接节点的定向图。
  • 数据通过连接从一个节点流向另一个节点,每个节点根据需要处理和转换数据。

3 个

执行引擎

  • 解释工作流程定义并按正确顺序执行节点的引擎, 处理 :
  • 顺序执行
  • 平行执行( 当节点不互相依赖时)
  • 有条件分支
  • 错误处理和重试

国家持久性

  1. 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. 目标 1. 目标
  • 基于 JSON 的节点定义
  • JSON将界定节点,使其易于序列、版本和分享:

2. 目标 基于图表的执行

  • 工作流程是定向环形图(DAGs)。
  • 执行引擎将:
  • 确定执行命令的实绩地形排序

在可能的情况下平行执行节点

根据节点产出处理有条件的分支分支

  • 3 个
  • 州持久性
  • 将跟踪每个工作流程的执行:
  • 工作流程实例状态(运行、完成、失败)

节点执行结果

  • 排定工作流程的触发状态
  • 执行历史和日志
    1. 4个。
  • 扩展性
  • 节点系统将基于插件 :

共同业务内置节点

  • 自定义节点类型可以注册
  • 节点审定和计划执行
  • 这系列里有什么来着?
  • 第2部分:建筑和核心工作流程引擎
  • 建立项目结构

建立核心工作流程模型(节点、工作流程、连接)

  • 实施图形执行引擎
  • 地形分类和依赖性分辨率
  • 第3部分:建立视觉编辑
  • 与 HTMX 和 Alpine.js 创建工作流程布局
  • 拖放节点位置

视觉连接绘图

节节点配置面板面板

  • 工作流程序列化
  • 第4部分:营火一体化和国家管理
  • 设置用于背景处理的挂牌火
  • 实施APIPI投票节点
  • 触发州管理

重试逻辑和错误处理

板板集成

第5部分:先进地物和部署

执行自定义节点

工作流程版本

测试战略测试战略

绩效优化

logo

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