首页 > 其他分享 >Blazor流程编排的艺术:深入Z.Blazor.Diagrams库的使用与实践

Blazor流程编排的艺术:深入Z.Blazor.Diagrams库的使用与实践

时间:2024-05-05 15:44:31浏览次数:15  
标签:ZBD 编排 Diagrams new Blazor 节点 BlazorDiagram

        为现代网页应用开发提供动力的其中一个重要方面就是前端框架的强大功能与灵活性。而在.NET生态中,Blazor以其独特的工作方式和优势逐渐获得了开发者们的青睐。今天,在这篇文章中,我将带你深入探索一个基于Blazor的优秀库——Z.Blazor.Diagrams,我们将了解它是如何帮助开发者轻松实现流程编排的。

https://github.com/Blazor-Diagrams/Blazor.Diagrams

Z.Blazor.Diagrams浅析及应用实践

        最近,当我推进一个基于LLM的流程编排项目时,我需要为Blazor应用寻找一个强大的流程编排组件。在一番寻找之后,我发现了Z.Blazor.Diagrams这个库。

        Z.Blazor.Diagrams是一款适用于Blazor(服务器端和WASM客户端)的完全可定制和可扩展的通用图形库。这个库最初受到了React生态中流行库React图的启发,并在此基础上发展壮大。开发者可以利用ZBD创建具有自定义设计的高级图表,并根据个人的需求调节库的行为特性。

        你可以通过官方的文档来了解其更多信息,相信我,官方的示例将给你留下深刻的印象。

https://blazor-diagrams.zhaytam.com/

  

        接下来,让我们一起走进ZBD世界,探究它的魅力所在。

 

初始化设置

        首先,让我们来准备好我们的开发环境。引入ZBD到项目中你需要在你的.csproj文件中添加下面的nuget包:

<PackageReference Include="Z.Blazor.Diagrams" Version="3.0.2" />
<PackageReference Include="Z.Blazor.Diagrams.Core" Version="3.0.2" />
<PackageReference Include="Z.Blazor.Diagrams.Algorithms" Version="3.0.2" />

  

        确保完成包的引入后,我们就可以开始踏上创建用户界面的旅程了。

  构建流程图

        流程图的构建过程非常直观,接下来我将向您展示如何在您的razor页面中使用DiagramCanvas控件来实现这一点。

<div class="wrapper">
    <Content>
        <CascadingValue Value="BlazorDiagram">
            <div class="diagram-container">
                <DiagramCanvas>
                    <Widgets>
                        <NavigatorWidget Width="200"
                                         Height="150"
                                         Style="position: absolute; bottom: 15px; right: 15px;"></NavigatorWidget>
                    </Widgets>
                </DiagramCanvas>
            </div>
        </CascadingValue>
    </Content>
</div>

  

        如你所见,一旦配置好DiagramCanvas控件,基本的流程图界面就已经搭建好了。

 

节点定制与交互

        在ZBD中,定制节点是一项核心功能,这允许我们创建符合我们流程特色的节点。下面是如何在我们的应用中注册自定义节点:

[Inject] protected MessageService? Message { get; set; }
  
protected override async Task OnInitializedAsync()
{
    await base.OnInitializedAsync();

    BlazorDiagram.RegisterComponent<StartNode, StartComponent>();
    BlazorDiagram.RegisterComponent<EndNode, EndComponent>();
    BlazorDiagram.RegisterComponent<AppNode, AppComponent>();

    var startNode = BlazorDiagram.Nodes.Add(new StartNode(new Point(80, 80)));
    startNode.AddPort(PortAlignment.Right);

    var endNode = BlazorDiagram.Nodes.Add(new EndNode(new Point(980, 80)));
    endNode.AddPort(PortAlignment.Left);

    var appNode = BlazorDiagram.Nodes.Add(new AppNode(new Point(450, 80)));
    appNode.AddPort(PortAlignment.Left);
    appNode.AddPort(PortAlignment.Right);

    BlazorDiagram.Links.Add(new LinkModel(startNode.Ports[0], appNode.Ports[0]));
}

          在进行节点注册后,我们可以定义每种类型节点的外观和行为。这里是一个简单的开始节点组件示例:

@using Blazor.Diagrams.Components.Renderers;
@using AntSK.Pages.Workflow.Node;

<div>
    <Card Size="small" TitleTemplate="titleTemplate" Style="width:300px;">
        <Body>
            <p>开始</p>
        </Body>
    </Card>

    @foreach (var port in Node.Ports)
    {
        // In case you have any ports to show
        // IMPORTANT: You are always in charge of rendering ports
        <PortRenderer @key="port" Port="port" />
    }
</div>

@code {
    [Parameter] public StartNode Node { get; set; } = null!;
    RenderFragment titleTemplate =@<div><Icon Type="play-circle" Theme="outline" />用户问题(对话入口)</div>;
}

public class StartNode : NodeModel
{
    public StartNode(Point position = null) : base(position) {}
}

  

        这段代码将会创建一个简约的“开始”节点,配合我们的样式和业务逻辑,你可以创建很多个性化的节点类型来满足实际项目需要。

查看效果

        成功定义节点和链接之后,我们便可以在浏览器中观察到我们的流程编排图。

 

总结

        至此,我们已经概览了Z.Blazor.Diagrams的核心特性和实用性。从灵活的定制设计到流畅的用户交互,ZBD无疑是开发基于Blazor应用的流程图的优选方案。结合自定义组件和算法包的能力,开发者能够以最少的代码实现最丰富的前端功能表现。

        不论你是对Blazor感兴趣的新手,还是希望为你的项目寻找更多可能性的资深开发者,我相信Z.Blazor.Diagrams能为你打开一扇通往高效、可扩展前端编程的大门。别忘了,探索技术的旅途从来不会孤单,我们一路并肩前行。

        未来已来,让我们拭目以待。

 

标签:ZBD,编排,Diagrams,new,Blazor,节点,BlazorDiagram
From: https://www.cnblogs.com/xuzeyu/p/18173547

相关文章

  • 界面组件DevExpress Blazor UI v23.2 - 网格、工具栏功能全新升级
    DevExpress BlazorUI组件使用了C#为BlazorServer和BlazorWebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生BlazorUI组件(包括PivotGrid、调度程序、图表、数据编辑器和报表等)。DevExpress Blazor控件目前已经升级到v23.2版本了,此版本进一步增强了可访问......
  • Blazor 和Known 框架学习
    [框架后台首页在\Known.AntBlazor\Admin.razor <AntMenuAccordion="Context.UserSetting.Accordion"Items="UserMenus"OnClick="e=>Context.Navigate(e)"/><PageTabs@ref="tabs"Menu="CurrentMenu"Ite......
  • 七天.NET 8操作SQLite入门到实战 - (2)第七天Blazor班级管理页面编写和接口对接
    前言上一章节我们引入BootstrapBlazorUI组件完成了EasySQLite后台界面的基本架子的搭建,本章节的主要内容是Blazor班级管理页面编写和接口对接。七天.NET8操作SQLite入门到实战详细教程第一天SQLite简介第二天在Windows上配置SQLite环境第三天SQLite快速入门......
  • [MDP.BlazorCore] 快速建立跨Web、App執行的BlazorApp專案
    團隊資源受限的時候,使用Blazor開發應用系統,只需開發一份程式碼及使用一種程式語言,就同時產出Web跟App應用系統。本篇文章,紀錄使用MDP.BlazorCore所提供的樣板,快速建立跨Web、App執行的BlazorApp專案。為自己留個紀錄,也希望能幫助到有需要的開發人員。.安裝指令:dotnetnewinstal......
  • 界面组件DevExpress Blazor UI v23.2 - 支持.NET 8、全新的项目模版
    DevExpress BlazorUI组件使用了C#为BlazorServer和BlazorWebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生BlazorUI组件(包括PivotGrid、调度程序、图表、数据编辑器和报表等)。DevExpress Blazor控件目前已经升级到v23.2版本了,新版本正式支持.NET8、拥......
  • [转]AspNetCore容器化(Docker)部署(三) —— Docker Compose容器编排
    一.前言上一篇部署了一个最基础的helloworld应用,创建了两个容器和一个network,还算应付得过来。如果该应用继续引入mysql、redis、job等若干服务,到时候发布一次得工作量之大就可想而知了,这时候就需要用到DockerCompose。DockerCompose是一个用于定义和运行多容器Docker应用程......
  • 界面控件DevExpress Blazor UI v23.2 - 浅谈增强的可访问性
    DevExpress BlazorUI组件库提供了一套全面的原生Blazor组件(包括DataGrid、PivotGrid、调度程序、图表、数据编辑器和报表),使用C#为BlazorServer和BlazorWebAssembly创建高影响力的用户体验!获取DevExpressv23.2正式版下载DevExpress技术交流群10:532598169      欢迎......
  • Blazor OIDC 单点登录授权实例7 - Blazor hybird app 端授权
    目录:OpenID与OAuth2基础知识BlazorwasmGoogle登录BlazorwasmGitee码云登录BlazorOIDC单点登录授权实例1-建立和配置IDS身份验证服务BlazorOIDC单点登录授权实例2-登录信息组件wasmBlazorOIDC单点登录授权实例3-服务端管理组件BlazorOIDC单点登录授权实......
  • .net maui blazor路由和导航,传参,刷新
    .netmauiblazor路由和导航,传参,刷新参考:https://learn.microsoft.com/zh-cn/aspnet/core/blazor/fundamentals/routing?view=aspnetcore-8.0页面:TestPage1.razor:@page"/test1/{Text}"<p>必填参数:@Text</p>@code{[Parameter]publicstring?Text{get;......
  • Blazor学习记录_12._IIS部署_组件的引用_
    27.Blazor项目发布与IIS部署27.1如果是Auto模版的项目,选择两个项目中的Server项目进行发布27.2服务器必要的运行时安装与配置1.安装运行时可先通过命令行输入:dotnet--info来查看本地已经安装的运行时情况。运行时官方下载页面:https://dotnet.microsoft.com/zh-cn/dow......