摘要: 前言 给大家推荐一个轻量级的、支持插件的综合网络通信库:TouchSocket。 TouchSocket 的基础通信功能包括 TCP、UDP、SSL、RPC 和 HTTP。其中,HTTP 服务器支持 WebSocket、静态网页、XML-RPC、WebAPI 和 JSON-RPC 等扩展插件。 此外 阅读全文
posted @ 2024-09-09 10:55 小码编匠 阅读(3713) 评论(8) 推荐(37)
摘要: 前言 在平时的开发中随着我们系统应用不断地迭代变的复杂,对应用的实时监控变得越来越重要。实时监控不仅可以帮助我们快速定位问题,还能在出现问题时及时采取措施,减少业务中断的时间。 本文将介绍一个名为WatchDog的.NET开源实时应用监控系统,它可以帮助我们轻松实现对.NET应用的实时监控。 项目介 阅读全文
posted @ 2024-08-27 11:14 小码编匠 阅读(5036) 评论(15) 推荐(39)
摘要: 前言 Gradio.NET 是 Gradio 在 .NET 平台上的移植版本。Gradio 是一个开源的 Python 包,用于快速构建机器学习模型、API 或任意 Python 函数的演示或 Web 应用程序。 Gradio.NET 继承了 Gradio 的核心理念,以.NET 开发习惯和熟悉的方 阅读全文
posted @ 2024-08-26 10:33 小码编匠 阅读(2569) 评论(11) 推荐(17)
摘要: 前言 在当今日益数据化的世界中,信息的检索和搜索功能对于各种应用来说变得至关重要。 无论是电子商务网站、企业资源规划系统、还是内容管理系统,高效的搜索功能都是提升用户体验、促进业务发展的关键。 因此,选择合适的搜索组件成为了开发人员和项目管理者必须面对的重要任务。 在.NET 生态系统中,存在着多个 阅读全文
posted @ 2024-05-07 15:58 小码编匠 阅读(665) 评论(0) 推荐(2)

前言

在数字化转型浪潮中,高效且安全的权限管理是后台系统的核心基石。传统方案或依赖臃肿的三方框架,或难以满足细粒度权限需求。

今天推荐一款完全独立开发、基于前沿技术栈开发的RBAC权限系统。它摒弃了现成Admin框架的束缚,以 ".NET 9 + React 18" 双引擎驱动,深度融合按钮级权限与数据权限控制,并原生支持多租户架构,为开发者与企业提供高可控性、易扩展的后台管理基座。

项目介绍

风汐管理系统一款开源的通用后台权限解决方案,由作者独立设计并实现,未使用任何第三方Admin框架。

其核心目标是为个人开发与企业提供一套高效、美观、易上手的管理系统基座。系统深度集成RBAC(基于角色的访问控制)模型,支持细粒度的按钮操作权限与数据范围权限,并内置多租户隔离机制,满足SaaS化部署需求。

项目采用严格挑选的稳定技术栈(.NET 9 + React 18),确保代码具有优秀的扩展性、可维护性与快速定制能力,在为.NET + React 技术生态贡献高质量实践范例。

项目功能

风汐管理系统提供丰富的功能模块,涵盖了从用户认证到权限管理的各个方面:

角色管理:支持创建、编辑和删除角色,分配权限。

权限管理:提供细粒度的权限控制,支持按钮级别和数据级别权限。

菜单管理:允许管理员自定义系统菜单,配置显示顺序。

日志管理:记录用户的操作日志,便于审计和问题排查。

系统监控:查看在线用户,确保信息传达及时。

多租户支持:每个租户拥有独立的数据存储,互不影响。

项目特点

1、支持多租户:每个租户的数据相互隔离,确保数据安全。

2、按钮级别权限控制:精确控制用户对页面元素的操作权限。

3、简洁高效的用户界面:采用现代化设计语言,提升用户体验。

4、模块化的系统架构:各功能模块独立开发,便于维护和扩展。

5、可读性高代码结构:代码编写遵循最佳实践,易于理解和修改。

项目技术

风汐管理系统的技术栈选用了当前最为前沿和稳定的工具与框架,具体包括:

  • .NET Core:作为后端开发的基础框架,提供了强大的性能和安全性。

  • PostgreSQL:作为数据库管理系统,支持复杂查询和大数据量处理。

  • FreeSql:用于简化数据库操作,提供ORM支持。

  • Aop:面向切面编程,用于实现横切关注点的分离。

  • Redis:用于缓存和会话管理,提高系统响应速度。

  • EventBus:事件总线机制,方便异步通信和解耦。

  • AutoMapper:对象映射工具,简化数据转换过程。

  • Serilog:日志记录库,支持多种输出方式。

  • React:前端开发框架,支持组件化开发。

  • Ant Design:UI组件库,提供丰富的组件和样式。

  • Vite:前端构建工具,优化开发体验和生产性能。

  • Sass/SCSS:CSS预处理器,增强样式的复用性和可维护性。

项目代码

1、服务自动注册

实现了注册接口

实现ISingletonDependency将以单例注入

public interface ISingletonDependency
{
}

实现ITransientDependency将以瞬时注入

public interface ITransientDependency
{
}

实现IScopedDependency将以作用域注入

public interface IScopedDependency
{
}

类上标记依赖注入DenpendencyInjectAttribute

/// <summary>
/// 自动注入,标记此特性的类会被自动注册到依赖注入容器中 <br/>
/// 如果AsSelf为false且Interfaces为空,则不会注册
/// </summary>
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
public sealed class DenpendencyInjectAttribute : Attribute
{
    /// <summary>
    /// 注册方式
    /// </summary>
    public DenpendencyType Way { get; init; } = DenpendencyType.Scoped;

    /// <summary>
    /// 是否将当前类作为自身类型注入
    /// </summary>
    public bool AsSelf { get; init; }

    /// <summary>
    /// 实现的接口类型,如果不为空且AsSelf=false,则会将当前类注册为这些接口的实现;
    /// </summary>
    public Type[]? Interfaces { get; init; }
}

2、当前租户

public interface ICurrentTenant
{
    string? TenantId { get; }
}

注入ICurrentTenant接口,在启用多租户功能时,并且请求头中含X-Tenant时;多租户中间件会自动解析X-Tenant的值到TenantId

3、如何启用多租户

在MultiTenancyConsts.cs文件中将IsEnabled改为false

public static class MultiTenancyConsts
{
    /// <summary>
    /// 是否启用多租户(不做成配置,常量硬编码更好)
    /// </summary>
    public const bool IsEnabled = true;
}

为什么使用作者常量硬编码更好?因为一个系统从开始就必须考虑好是否需要多租户模式。

项目预览

1、在线预览地址:https://crackerwork.cn

2、预览账号admin/123qwe* (请注意,预览模式下屏蔽了非GET请求,仅供查看演示)

3、项目文档

项目效果

系统通过简洁高效的用户界面和强大的功能模块,极大地提升了用户的操作体验。

以下是部分系统截图展示:

1、系统登录

2、系统首页

3、组织架构

4、系统管理

5、数据字典

6、系统监控

项目源码

GitHub: https://github.com/fancyxnet/fancyx-admin

Gitee: https://gitee.com/fancyxnet/fancyx-admin

大家可以通过克隆仓库获取源码,并根据自己的需求进行二次开发或定制化修改。

总结

风汐管理系统(fancyx-admin)代表了.NET全栈开发的深度实践。它以完全独立开发之姿,融合.NET 9的高性能与React 18的现代化交互,打造出一套功能完备(RBAC+多租户)、体验卓越、扩展自由的权限管理基座。

其核心价值不仅在于提供按钮级与数据级的精细权限控制,更在于通过模块化设计与详实文档,为大家提供了清晰的技术蓝图与定制自由。

关键词

.NET9、React18、RBAC、权限管理、多租户、PostgreSQL、FreeSql、Ant Design、Vite、Sass/SCSS、独立开发、按钮级权限、数据权限

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。

也可以加入微信公众号[DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!

posted @ 2025-07-09 13:31 小码编匠 阅读(1111) 评论(4) 推荐(12)
摘要: 前言 随着数字化和信息化的发展,大文件传输在企业、科研以及个人用户中变得越来越常见。传统的文件传输方式在面对大文件(如几十GB甚至上百GB的视频、工程数据)时,常常因网络不稳定、程序崩溃等原因导致传输失败,而重新上传又浪费大量时间和带宽资源。 为了解决这一问题,本文推荐一个基于WinForm 和 . 阅读全文
posted @ 2025-06-23 09:23 小码编匠 阅读(1597) 评论(12) 推荐(14)
摘要: 前言 随着工业4.0和智能制造的发展,工业视觉在质检、定位、识别等场景中发挥着越来越重要的作用。然而,开发一个完整的工业视觉系统往往需要集成相机控制、图像采集、图像处理、AI推理、PLC通信等多个模块,这对开发人员提出了较高的技术要求。 推荐一个基于 .NET 平台的开源工业视觉软件框架OpenIV 阅读全文
posted @ 2025-05-29 10:31 小码编匠 阅读(1303) 评论(0) 推荐(3)
摘要: 前言 快速发展的互联网应用开发中,支付功能已成为各类平台不可或缺的一环。为了帮助大家更高效地接入主流支付渠道,推荐一套基于 .NET 开发的第三方支付 SDK。该 SDK 支持跨平台运行,适用于多种操作系统和设备,并提供对支付宝和微信支付的全面支持。 项目介绍 本SDK 以简化接入流程、提升开发效率 阅读全文
posted @ 2025-05-16 09:20 小码编匠 阅读(922) 评论(1) 推荐(6)
摘要: 前言 随着工业4.0的深入推进,越来越多的企业开始重视智能制造和自动化生产。在这个背景下,对具备C#和Halcon开发经验的专业人才需求也日益增长。 为了帮助广大 C#工业视觉开发的朋友更好地备战面试,掌握Halcon的核心技能,小编精心整理了20道高频Halcon面试题。 这些题目涵盖了Halco 阅读全文
posted @ 2025-04-08 09:27 小码编匠 阅读(1368) 评论(0) 推荐(5)
摘要: 前言 推荐一款基于.NET 9.0 全栈框架的新一代技术架构(Vue3+Element-Plus),开源低代码平台-Microi吾码。 平台不仅无限制地支持用户数、表单数、数据量及数据库数量,还通过跨平台兼容性实现了对多种开发语言的支持,并确保了在不同数据库间的无缝操作。 它还具备分布式部署能力,支 阅读全文
posted @ 2025-03-06 16:53 小码编匠 阅读(1145) 评论(1) 推荐(2)
摘要: 前言 2025年2月25日,微软正式推出 .NET 10 预览版 1,标志着这一跨平台开发框架迈入新里程碑。 本次更新聚焦 JIT 编译器优化、运行时性能提升和跨平台开发体验增强,同时引入多项开发者期待的功能改进。 无论是服务端应用、移动开发,还是桌面程序,.NET 10 都展现了强大的技术演进潜力 阅读全文
posted @ 2025-02-28 10:38 小码编匠 阅读(2308) 评论(8) 推荐(15)
摘要: 前言 自从 DeepSeek 大模型火了以来,网络上出现了许多关于本地部署的教程和方法。然而,要真正深入了解其功能和应用,还是需要自己动手进行一次本地部署。 DeepSeek 作为一个高效的自然语言处理模型,其本地部署能力为大家提供了灵活的应用场景。不管是开发私有化的 AI 应用,还是集成到现有的系 阅读全文
posted @ 2025-02-25 10:21 小码编匠 阅读(5277) 评论(4) 推荐(10)
摘要: 前言 最近 DeepSeek 可太火了,在人工智能领域引起了广泛的关注,其强大的自然语言处理能力和智能搜索功能让大家跃跃欲试。 对于 .NET 技术栈的开发来说,一个常见的问题是:能否在 .NET 程序中使用 DeepSeek? 答案是肯定的。 为了帮助 .NET 开发快速上手并充分利用 DeepS 阅读全文
posted @ 2025-02-21 15:32 小码编匠 阅读(2161) 评论(3) 推荐(11)
摘要: 前言 随着物联网(IoT)技术的迅猛发展,智能设备之间的互联互通变得越来越重要。 推荐一套基于 C# 的高效 IoT 系统,该系统运行在 Linux 开发板上,并支持 Modbus RS485 传感器、NPN/PNP 开关等所有符合 485 通讯协议的设备进行数据采集和指令发送。这套系统在为智能家居 阅读全文
posted @ 2025-02-14 10:25 小码编匠 阅读(1443) 评论(2) 推荐(7)
点击右上角即可分享
微信分享提示