<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      一行代碼快速開發(fā) AntdUI 風(fēng)格的 WinForm 通用后臺(tái)框架

      前言

      在快速迭代的軟件開發(fā)環(huán)境中,如何高效地開發(fā)一個(gè)功能完整、界面美觀的 WinForm 管理系統(tǒng),是許多開發(fā)者面臨的現(xiàn)實(shí)問題。今天推薦一款基于 Ant Design 設(shè)計(jì)語言的 WinForm UI 框架,它通過深度封裝和現(xiàn)代化設(shè)計(jì),徹底改變了傳統(tǒng) WinForm 應(yīng)用的開發(fā)模式。大家無需再為繁瑣的基礎(chǔ)設(shè)施代碼所困擾,只需聚焦核心業(yè)務(wù)邏輯,能夠用極簡(jiǎn)的方式快速搭建企業(yè)級(jí)桌面應(yīng)用。

      項(xiàng)目介紹

      WenAntdUI 項(xiàng)目的主要模塊及其對(duì)應(yīng)的功能說明,涵蓋了從示例測(cè)試到核心應(yīng)用的各個(gè)組成部分,便于大家了解項(xiàng)目結(jié)構(gòu)和功能分布。

      項(xiàng)目結(jié)構(gòu)具體如表所示:

      內(nèi)部運(yùn)行集成:一行代碼搞定一個(gè)完整的管理系統(tǒng)基礎(chǔ)功能

      項(xiàng)目功能

      AOT發(fā)布:支持AOT(Ahead-of-Time)編譯發(fā)布,提升應(yīng)用性能。

      字典管理:提供增刪改查功能,方便管理系統(tǒng)中的各類字典數(shù)據(jù)。

      用戶管理:支持用戶的增刪改查、角色分配和密碼重置。

      菜單管理:實(shí)現(xiàn)菜單的增刪改查,支持自定義頁面控件和樣式。

      權(quán)限管理:精細(xì)的權(quán)限控制,確保系統(tǒng)的安全性。

      用戶設(shè)置:允許用戶更改密碼和修改圖像,圖像存儲(chǔ)在SQL中。

      項(xiàng)目說明

      初次運(yùn)行與登錄

      首次運(yùn)行WenAntdUI時(shí),它會(huì)自動(dòng)初始化一個(gè)Sqlite數(shù)據(jù)庫,并在運(yùn)行目錄下創(chuàng)建data.db文件。可以使用默認(rèn)的登錄賬戶admin和密碼admin快速進(jìn)入系統(tǒng),開始體驗(yàn)各項(xiàng)功能。

      集成啟動(dòng)方式

      應(yīng)用WenAntdUI,可以使用頂級(jí)語句:

      App.Run(); // 只需要此代碼即可啟動(dòng)一個(gè)項(xiàng)目
      
      // services 主要是注入服務(wù),將項(xiàng)目控件注入到服務(wù)中。
      App.Run(services =>
      {
          services.AddControlServices(Assembly.GetExecutingAssembly());
      });
      // AddControlServices 內(nèi)部封裝了Control注入功能,只需要傳遞程序集即可
      
      // 很多開發(fā)項(xiàng)目,需要使用注冊(cè)機(jī)功能,也只需要在 App.Run修改,即可擁有一個(gè)完整的注冊(cè)機(jī)功能,硬件信息生成唯一注冊(cè)碼
      App.Run(services =>
      {
          services.AddControlServices(Assembly.GetExecutingAssembly());
      }, true); // 此處增加參數(shù)
      

      加密解密

      加密解密KEY請(qǐng)自行生成替換 Wen.Core.Helps AesRsaHelp 中的內(nèi)容:

      public static string RsaFromPem { get; set; } = @"-----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==";
      

      功能集成

      內(nèi)部集成了枚舉、字典等樣式識(shí)別,全局采用注入方式。Page控件可以使用注入方式,直接調(diào)用:

      [Description("角色管理")] // 此處為菜單選擇注釋
      public partial class SysRolePage : UserControl
      {
          private readonly IFreeSql fsql;
          private readonly 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 只需要一行代碼即可實(shí)現(xiàn)一個(gè)表的增刪改查。

      this.adminTable1.SetColumns<SysRole>();
      
      [Index($"index_{nameof(SysRole)}_{nameof(RoleName)}", nameof(RoleName), true)]
      public class SysRole
      {
          /// <summary>
          /// 獲得/設(shè)置 角色名稱
          /// </summary>
          [DisplayName("角色名稱")]
          [Col] // 自動(dòng)編輯功能,需要在屬性上面加上 Col 特性
          [Key]
          public string? RoleName { get; set; }
      
          /// <summary>
          /// 獲得/設(shè)置 角色描述
          /// </summary>
          [DisplayName("角色描述")]
          [Col]
          public string? Description { get; set; }
      }
      

      1、自定義構(gòu)建列

      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、查詢數(shù)據(jù)

      this.adminTable1.QueryData = async e =>
      {
          e.IsExpand = true;
          return await fsql.Select<SysMenuDto>()
              .WhereIf(!string.IsNullOrWhiteSpace(e.QueryText), a => a.Name.Contains(e.QueryText))
              .ToTreeList();
      };
      this.adminTable1.Query(); // 手動(dòng)執(zhí)行查詢
      

      字典管理

      支持增刪改查操作。

      菜單管理

      支持增刪改查、頁面控件、自定義樣式。開發(fā)中無需考慮 new,可以使用注入方式,在構(gòu)造函數(shù)中使用:

      public partial class UserControlTestTable : UserControl
      {
          public UserControlTestTable(IFreeSql fsq1)
          {
              InitializeComponent();
              adminTable1.SetColumns<SysDict>();
          }
      }
      // 需要提前注入,若是采用插件方式開發(fā),此處可以調(diào)用外部插件直接注入dll文件
      App.Run(services =>
      {
          services.AddControlServices(Assembly.GetExecutingAssembly());
      }, true);
      

      完成注入后即可在菜單中選中使用。

      角色管理

      支持增刪改查及權(quán)限分配。

      用戶管理

      支持增刪改查、角色分配、密碼重置。

      用戶信息設(shè)置

      支持更改密碼、修改圖像,圖像存儲(chǔ)在SQL中。

      封裝組件演示

      1、前后端分離增刪改查

      2、圖像選擇組件

      3、字典選擇組件

      4、上傳功能集成組件

      5、下載功能集成組件

      6、Model編輯組件

      7、雙向綁定

      8、Auth組件(按鈕權(quán)限)

      注意:前后分離通用查詢方式雖然方便,但出于安全考慮,不集成在 AdminTable。若需要使用,只要替換增刪改查代碼即可。

      1、查詢數(shù)據(jù)

      需要提供類型、搜索內(nèi)容、頁碼、單頁數(shù):

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

      2、更新數(shù)據(jù)

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

      3、刪除數(shù)據(jù)

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

      4、插入數(shù)據(jù)

      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.KK)
          .Add(a => a.Dict)
          .Add(a => a.KKd)
          .Add(a => a.Typ)
          .Add(a => a.TestEditControlTest, content: new TestEditControl())
          .Add(a => a.Check);
      

      更新數(shù)據(jù):

      this.modelEditControl1.Model = obj;
      

      Auth組件(按鈕權(quán)限)

      在設(shè)計(jì)頁面拖入 Auth 控件,然后點(diǎn)擊按鈕,按鈕上就會(huì)多一個(gè)權(quán)限屬性。

      AdminTable 增刪改權(quán)限設(shè)置方法:

      this.auth1.SetAuth(this.adminTable1, "useradmin");
      // 菜單中請(qǐng)?jiān)O(shè)置權(quán)限 useradmin:edit,useradmin:delete,useradmin:add
      

      項(xiàng)目源碼

      Giteehttps://gitee.com/AntdUI/wen-antd-ui

      總結(jié)

      WenAntdUI框架基于AntdUI,集成了多種實(shí)用功能,通過簡(jiǎn)潔的集成方式和豐富的組件庫,為開發(fā)者提供了一站式的管理后臺(tái)開發(fā)解決方案。不管是初始化與登錄、項(xiàng)目結(jié)構(gòu)與啟動(dòng)、數(shù)據(jù)演示與配置,還是功能集成與組件使用,WenAntdUI都表現(xiàn)出了極高的易用性和靈活性。對(duì)于希望快速開發(fā)管理后臺(tái)系統(tǒng)的團(tuán)隊(duì)來說,WenAntdUI無疑是一個(gè)值得嘗試的選擇。

      最后

      如果你覺得這篇文章對(duì)你有幫助,不妨點(diǎn)個(gè)贊支持一下!你的支持是我繼續(xù)分享知識(shí)的動(dòng)力。如果有任何疑問或需要進(jìn)一步的幫助,歡迎隨時(shí)留言。

      也可以加入微信公眾號(hào)[DotNet技術(shù)匠] 社區(qū),與其他熱愛技術(shù)的同行一起交流心得,共同成長!

      posted @ 2025-10-31 10:37  小碼編匠  閱讀(454)  評(píng)論(1)    收藏  舉報(bào)
      主站蜘蛛池模板: 国产一区二区三区不卡视频| 日韩精品一区二区三区色| 欧美变态另类zozo| 亚洲日韩av无码中文字幕美国| 国产网友愉拍精品视频手机| 天堂在线中文| 最新国产精品中文字幕| 亚洲欧美偷国产日韩| 日韩精品无遮挡在线观看| 人妻精品久久久无码区色视| 亚洲国产另类久久久精品小说| 国产精品七七在线播放| 日韩一区二区三区精彩视频| 亚洲粉嫩av一区二区黑人| 国产福利在线观看免费第一福利| 久久天堂无码av网站| 97中文字幕在线观看| 亚洲国产午夜精品福利| 亚洲成色在线综合网站| 草草浮力影院| 久久99久国产精品66| 乱中年女人伦av三区| 欧美变态另类牲交| 欧美丰满熟妇bbbbbb| 国产精品永久在线观看| 亚洲人成网站在线在线观看| 亚洲精品成人福利网站| 四虎国产精品永久在线下载| 中文字幕国产精品一区二| 欧美韩中文精品有码视频在线 | 国产极品精品自在线不卡| 猫咪AV成人永久网站在线观看| 国产高清在线男人的天堂| 亚洲中文字幕第一页在线| 精品国产av一二三四区| 国产精品视频一区二区不卡| 女人高潮被爽到呻吟在线观看| 滦平县| 亲子乱aⅴ一区二区三区| 亚洲大尺度无码专区尤物| 国产真实露脸乱子伦原著|