一款基于.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%的重复劳动。

相关推荐
沛沛老爹13 小时前
跨平台Agent Skills开发:适配器模式赋能提示词优化与多AI应用无缝集成
人工智能·agent·适配器模式·rag·企业转型·skills
Sivan_Xin13 小时前
拒绝 If-Else 屎山:利用适配器模式(Adapter)构建第三方登录的“防腐层”实战
linux·python·适配器模式
短剑重铸之日15 小时前
《设计模式》第七篇:适配器模式
java·后端·设计模式·适配器模式
小码过河.5 天前
设计模式——适配器模式
设计模式·适配器模式
代码丰9 天前
项目里接了多个第三方 SDK 后,如何使用适配器模式+策略模式优化?(Adapter + Strategy)
java·适配器模式·策略模式
懵萌长颈鹿9 天前
适配器模式 (Adapter Pattern)
适配器模式
茶本无香10 天前
设计模式之八: 适配器模式解释及应用
java·设计模式·适配器模式
apolloyhl11 天前
Adapter 适配器模式
适配器模式
冷崖11 天前
适配器模式-结构型
适配器模式
进击的小头12 天前
结构型模式:适配器模式(C语言实现与底层实战)
c语言·适配器模式