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