LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

一行代码快速开发 AntdUI 风格的 WinForm 通用后台框架

admin
2025年8月1日 21:16 本文热度 9

前言

在快速迭代的软件开发环境中,如何高效地开发一个功能完整、界面美观的 WinForm 管理系统,是许多开发面临的现实问题。

今天推荐一款基于 Ant Design 设计语言的 WinForm UI 框架,它通过深度封装和现代化设计,彻底改变了传统 WinForm 应用的开发模式。大家无需再为繁琐的基础设施代码所困扰,只需聚焦核心业务逻辑,能够用极简的方式快速搭建企业级桌面应用。

项目介绍

WenAntdUI 项目的主要模块及其对应的功能说明,涵盖了从示例测试到核心应用的各个组成部分,便于大家了解项目结构和功能分布。

项目结构具体如表所示:

文件
项目
说明
gRPC
gRPC测试项目(演示示例项目)


Wen.GrpcClient
客户端项目示例代码

Wen.GrpcService
服务端项目示例代码
Test
项目测试功能测试代码


ConsoleAppAotTest
控制台AOT测试代码(SqlSugarCore)

WinFormsAppAotTest
winform Aot(SqlSugarCore)测试

WinFormsAppFreeSqlAotTest
winform Aot (FreeSql)

WinFormsAppTestHub
SignalR 客户端测试
项目
主要应用项目功能


WebServer
前后分离服务器项目(内含WebApi和SignalR)

Wen.Models
Model层,主要声明实体

Wen.Core
中间层,后续基础引用功能基本迁移到此处

WenAntdUI
应用功能层,插件,封装组件等

WenAntdUI.Demo
项目引用示例

内部运行集成 一行代码搞定一个完整的管理系统基础功能


项目功能

  • AOT发布:支持AOT(Ahead-of-Time)编译发布,提升应用性能。

  • 字典管理:提供增删改查功能,方便管理系统中的各类字典数据。

  • 用户管理:支持用户的增删改查、角色分配和密码重置。

  • 菜单管理:实现菜单的增删改查,支持自定义页面控件和样式。

  • 权限管理:精细的权限控制,确保系统的安全性。

  • 用户设置:允许用户更改密码和修改图像,图像存储在SQL中。

项目说明

初始化与登录

首次运行WenAntdUI时,它会自动初始化一个Sqlite数据库,并在运行目录下创建data.db文件。

可以使用默认的登录账户admin和密码admin快速进入系统,开始体验各项功能。

集成启动方式

应用WenAntdUI,可以使用顶级语言

App.Run();//只需要此代码即可启动一个项目

//services 主要是注入服务,将项目控件注入到服务中。
App.Run(services =>
{
    services.AddControlServices(Assembly.GetExecutingAssembly());
});
//AddControlServices 内部封装了Control注入功能,只需要传递程序集即可
//很多开发项目,需要使用注册机功能,也只需要在 App.Run修改,即可一个完整注册机功能,硬件信息生成唯一注册码
App.Run(services =>
{
    services.AddControlServices(Assembly.GetExecutingAssembly());
},true); //此处增加      

加密解密

加密解密KEY请自行生成替换 Wen.Core.Helps AesRsaHelp中

public static string RsaFromPem { getset; } = @"-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxot7LoZAVHZDhlGE8e6/
WqTmgmGZhVepofQhhynB/jTA69lMXoKfcXJMr/8Zyfdug97re7NkJX8Jei4cJlEv
nyzNRrY1tz1+dkrISYi0nBkwaDMTd2Wsw63QjcqZl1yCTVT6jboNR/0a7hyb2gwt
5cXW2ylgVZ6PttOUPXb3ZF8oWLe1BVWfcQXFIlErqVjsY3iFgcNxCucvYhiDzcbm
qHFIbUj9760E666Ws3Io32OQK1EkkdufqNuL1gm9/9qYXE0KChGzetnFfhtOGmvK
cPp3os07zdeeFOdKbwCbZjUxSy2a/6IKvEWilONNPNSMBxcc70oci565CtrIdyah
IQIDAQAB
-----END PUBLIC KEY-----"
;

    public static string AesKey = "u4GP+xHwd3slNDYCVeOvDpbe0eLJz7XpaEj46SA9EtM=";
    public static string AesIv = "8Daxh29YSAjUBulFYoMhdw==";

功能集成

内部集成了 枚举,字典等样式识别

全局采用注入方式,Page控件可以使用注入方式,直接调用

[Description("角色管理")//此处为菜单选择注释
publicpartialclassSysRolePage : UserControl
{
    privatereadonly IFreeSql fsql;
    privatereadonly MenuService menuService;
    public SysRolePage(IFreeSql fsql, MenuService menuService)
    {
        this.fsql = fsql;
        this.menuService = menuService;
        InitializeComponent();

        this.adminTable1.SetColumns<SysRole>();
        this.adminTable1.Query();

        InitMenuItem();

        this.adminTable1.CellClick += AdminTable1_CellClick;
    }
}

AdminTable

封装控件 AdminTable 只需要一行代码即可实现一个表增删改查

this.adminTable1.SetColumns<SysRole>();

[Index($"index_{nameof(SysRole)}_{nameof(RoleName)}", nameof(RoleName), true)]
publicclassSysRole
{
    /// <summary>
    /// 获得/设置 角色名称
    /// </summary>
    [DisplayName("角色名称")]
    [Col//自动编辑功能,需要在属性上面 加上 Col 特性
    [Key]
    publicstring? RoleName { getset; }

    /// <summary>
    /// 获得/设置 角色描述
    /// </summary>
    [DisplayName("角色描述")]
    [Col]
    publicstring? Description { getset; }
}

1、自定义构建列

this.adminTable1.SetColumn<SysMenuDto>()
    .Add(a => a.Name, 288, c => c.SetTree(nameof(SysMenuDto.Childs)))
    .Add(a => a.Code)
    .Add(a => a.ParentCode)
    .Add(a => a.OrderNo)
    .Add(a => a.IconImage)
    .Add(a => a.MenuType)
    .Add(a => a.Description)
    .Add(a => a.ControlType);

2、查询数据

this.adminTable1.QueryData = async e =>
{
    e.IsExpand = true;
    return fsql.Select<SysMenuDto>()
    .WhereIf(!string.IsNullOrWhiteSpace(e.QueryText), a => a.Name.Contains(e.QueryText))
    .ToTreeList();
};
this.adminTable1.Query(); //手动执行查询

字典管理

增删改查

菜单管理

增删改查、页面控件、自定义样式

开发中无需考虑 new ,可以使用注入方式 ,在构造函数中使用

public partialclassUserControlTestTable : UserControl
{
    public UserControlTestTable(IFreeSql fsq1)
    {
        InitializeComponent();

        adminTable1.SetColumns<SysDict>();
    }
}
//需要提前注入,若是采用插件方式开发,此处可以调用外部插件直接注入dll文件
App.Run(services =>
{
    services.AddControlServices(Assembly.GetExecutingAssembly());
}, true);

完成注入后即可在菜单选中使用


角色管理

增删改查、分配权限

用户管理

增删改查、分配角色、重置密码

用户信息设置

更改密码、修改图像、图像存储在SQL中

封装组件演示

1、前后端分离增删改查

2、图像选择组件

3、字典选择组件

4、上传功能集成组件

5、下载功能集成组件

6、Model编辑组件

7、双向绑定

8、Auth组件(按钮权限)

前后分离通用查询方式虽然方便,慎用慎用!!!

出于安全考虑,不集成在 AdminTable,若需要使用,只要替换增删改查代码即可

1、查询数据

需要需要提供类型 搜索内容 页码 单页数

var client = new ApiClient();
var res = await client.GetListAsync(typeof(SysDict), ""true15);
this.table1.DataSource = res.Data;

2、更新数据

var client = new ApiClient();
var res = client.UpdateObject(item);
await RefreshDataAsync();

3、删除数据

var client = new ApiClient();
var res = client.DeleteObject(item);
await RefreshDataAsync();

4、插入数据

var client = new ApiClient();
var res = client.InsertObject(item);
await RefreshDataAsync();

Model编辑组件

使用方式

this.modelEditControl1.GetItemBuilder(value)
    .Add(a => a.Color)
    .Add(a => a.Name)
    .Add(a => a.CreateTime)
    .Add(a => a.Image)
    //.Add(a => a.Aa)
    //.Add(a => a.Name, content: new DictSelect("1"))
    .Add(a => a.KK)
    .Add(a => a.Dict)
    .Add(a => a.KKd)
    .Add(a => a.Typ)
    .Add(a => a.TestEditControlTest, content: new TestEditControl())
    .Add(a => a.Check);

更新数据

this.modelEditControl1.Model = obj;

Auth组件(按钮权限)

设计页面拖入 Auth ,然后点击按钮,按钮上就会多一个属性


AdminTable 增删改 权限设置方法

 this.auth1.SetAuth(this.adminTable1, "useradmin");
//菜单中请设置权限 useradmin:edit, useradmin:delete, useradmin:add

项目源码

Gitee:https://gitee.com/AntdUI/wen-antd-ui

总结

WenAntdUI框架基于AntdUI,集成了多种实用功能,通过简洁的集成方式和丰富的组件库,为大家提供了一站式的管理后台开发解决方案。

不管是初始化与登录、项目结构与启动、数据演示与配置,还是功能集成与组件使用,WenAntdUI都表现出了极高的易用性和灵活性。对于希望快速开发管理后台系统的团队来说,WenAntdUI无疑是一个值得尝试的选择。

关键词

#WenAntdUI#WinForm#AntdUI#AdminTable#权限管理#AOT#gRPC#SignalR#SqlSugar#FreeSql#AOT编译支持#AntDesign风格#SQLite#AntdUI


阅读原文:原文链接


该文章在 2025/8/4 18:20:10 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved