一款基于.NET Core Web + Bootstrap的企业级快速后台开发框架。 内置模块如

一款基于.NET Core Web + Bootstrap的企业级快速后台开发框架。 内置模块如:用户管理、部门管理、菜单管理、角色权限设置、日志管理、新闻管理等。 在线定时任务配置;支持Sql Server、MySql和Oracle数据库。

最近在折腾企业级后台系统开发?给你安利个宝藏框架------基于.NET Core Web和Bootstrap的快速开发脚手架。这玩意儿内置了后台系统九成的标准配置,用户权限、部门架构、菜单路由这些破事,半小时就能给你整利索。

权限控制这块最有意思。框架里直接内置了基于角色的访问控制(RBAC),咱们看段控制器代码:

csharp 复制代码
[TypeFilter(typeof(AuthorizeFilter))]
public class UserController : BaseController
{
    [Permission("user:add")]
    public IActionResult CreateUser(UserDto dto)
    {
        // 添加用户的具体逻辑
    }
    
    [Permission("log:view")]
    public IActionResult GetLoginLogs()
    {
        // 查看日志的逻辑
    }
}

这个AuthorizeFilter可不是普通的授权验证,它能自动解析方法上的Permission特性。比如当用户调用CreateUser接口时,系统会先检查当前角色是否拥有"user:add"权限标识。这种声明式权限配置比传统if-else判断清爽多了,权限颗粒度直接精确到按钮级别。

数据库兼容性这波操作够骚。框架底层用EF Core做了抽象,切换数据库只需要改个配置字符串:

csharp 复制代码
services.AddDbContext<AppDbContext>(options => 
{
    var dbType = Configuration["Database:Type"];
    switch(dbType)
    {
        case "SqlServer":
            options.UseSqlServer(Configuration.GetConnectionString("Default"));
            break;
        case "MySql":
            options.UseMySql(Configuration.GetConnectionString("MySql"), 
                ServerVersion.AutoDetect(Configuration.GetConnectionString("MySql")));
            break;
        // Oracle配置同理
    }
});

遇到过凌晨三点手动执行SQL任务的抓狂时刻吗?框架自带的定时任务模块能救场。在管理界面配置个Cron表达式就能创建任务:

csharp 复制代码
// 定时清理日志任务示例
public class LogCleanTask : ITask
{
    private readonly LogService _logService;
    
    public LogCleanTask(LogService logService)
    {
        _logService = logService;
    }

    public async Task ExecuteAsync()
    {
        var days = 30;
        await _logService.ClearOldLogs(days);
        // 自动记录任务执行日志
    }
}

最爽的是新闻管理模块的动态表单设计。用Bootstrap+TagHelper实现的编辑器,后端配合动态表达式树处理查询:

csharp 复制代码
// 动态查询实现片段
public IQueryable<News> BuildQuery(NewsQuery query)
{
    var predicate = PredicateBuilder.New<News>(true);
    
    if(!string.IsNullOrEmpty(query.Title))
        predicate = predicate.And(n => n.Title.Contains(query.Title));
    
    if(query.Status.HasValue)
        predicate = predicate.And(n => n.Status == query.Status);
    
    return _context.News.Where(predicate)
           .OrderByDescending(n => n.PublishTime);
}

这套框架最牛的不是功能堆砌,而是开发体验优化。比如菜单管理自动生成路由树,部门数据继承自组织架构树,审计日志AOP自动记录操作明细。拿用户模块来说,从密码加密到权限缓存都做了性能优化,用户量上万的系统跑起来照样顺滑。

部署也简单,Dockerfile都给你准备好了。要搞微服务化?直接把认证模块拆成IdentityServer4服务,其他模块改造成Ocelot网关下的子服务就行。企业级开发那些破事,这框架至少能帮你砍掉70%的重复劳动。

相关推荐
雨中飘荡的记忆3 天前
设计模式之适配器模式详解
java·设计模式·适配器模式
口袋物联7 天前
设计模式之适配器模式在 C 语言中的应用(含 Linux 内核实例)
c语言·设计模式·适配器模式
明洞日记18 天前
【设计模式手册008】适配器模式 - 让不兼容的接口协同工作
java·设计模式·适配器模式
老鼠只爱大米21 天前
Java 设计模式之适配器模式:系统集成的万能接口
java·设计模式·适配器模式·adapter·java设计模式
小毛驴85022 天前
软件设计模式-适配器模式
电脑·适配器模式
朝新_23 天前
【统一功能处理】从入门到源码:拦截器学习指南(含适配器模式深度解读)
数据库·后端·mybatis·适配器模式·javaee
ruleslol1 个月前
java-接口适配器模式 & jsk8 接口默认实现
java·适配器模式
Yeniden1 个月前
【设计模式】适配器模式大白话讲解!
设计模式·适配器模式
紫荆鱼1 个月前
设计模式-适配器模式(Adapter)
c++·设计模式·适配器模式