DevEasy Framework

.NET开发框架 | 让开发更简单 | 让创造更自由

点击进入框架
.NET Core
Vue
Element Plus
微服务架构
85%

提升开发效率

兼容手机

响应式设计

1000+

用户下载学习

核心技术特性

🔐 内置权限框架

RBAC权限模型 + JWT认证,开箱即用的权限管理系统,支持细粒度权限控制。

🎯 代码生成器

一键生成Controller/Service/Mapper,支持自定义模板,解放复劳动。

📊 通用组件

集成数据字典、文件上传、导入导出等高频组件,专注核心业务开发。

框架代码优雅
负载均衡
权限控制
JWT授权
Dapper
Web API
Serilog
Axios HTTP
Swagger
角色
资源

// 框架代码示例 - 只需关注业务逻辑
[ApiController]
public class OrderController : BaseController
{
    private readonly IOrderService _orderService;
    
    public OrderController(IOrderService orderService)
    {
        _orderService = orderService;
    }

    [HttpPost]
    [Authorize]  // JWT授权验证
    [Permission("order:create")]  // 权限点控制
    public async Task CreateOrder([FromBody] OrderDto dto)
    {
        // 无需关注权限验证、日志记录、异常处理
        // 专注核心业务逻辑
        var order = new Order 
        {
            Items = dto.Items,
            TotalAmount = dto.Items.Sum(x => x.Price * x.Quantity)
        };
        
        // 框架自动处理审计字段、数据验证等
        await _orderService.CreateAsync(order);
        
        return ApiResult.Success();
    }
}

// JWT权限验证示例
public class JwtMiddleware
{
    private readonly RequestDelegate _next;
    private readonly JwtSettings _jwtSettings;

    public JwtMiddleware(RequestDelegate next, JwtSettings jwtSettings)
    {
        _next = next;
        _jwtSettings = jwtSettings;
    }

    public async Task Invoke(HttpContext context)
    {
        var token = context.Request.Headers["Authorization"].FirstOrDefault()?.Split(" ").Last();
        if (token != null)
            await AttachUserToContext(context, token);
        await _next(context);
    }

    private async Task AttachUserToContext(HttpContext context, string token)
    {
        try
        {
            var tokenHandler = new JwtSecurityTokenHandler();
            var key = Encoding.ASCII.GetBytes(_jwtSettings.Secret);
            
            // 验证 Token
            tokenHandler.ValidateToken(token, new TokenValidationParameters
            {
                ValidateIssuerSigningKey = true,
                IssuerSigningKey = new SymmetricSecurityKey(key),
                ValidateIssuer = true,
                ValidateAudience = true,
                ValidIssuer = _jwtSettings.Issuer,
                ValidAudience = _jwtSettings.Audience,
                ClockSkew = TimeSpan.Zero
            }, out SecurityToken validatedToken);

            var jwtToken = (JwtSecurityToken)validatedToken;
            var userId = jwtToken.Claims.First(x => x.Type == "id").Value;
            var roles = jwtToken.Claims.Where(x => x.Type == "roles").Select(x => x.Value);
            var permissions = jwtToken.Claims.Where(x => x.Type == "permissions").Select(x => x.Value);

            // 将用户信息附加到 Context
            context.Items["User"] = new { Id = userId, Roles = roles, Permissions = permissions };
        }
        catch
        {
            // Token 验证失败
        }
    }

企业级功能特性

🚀 微服务架构

基于.NET Core,支持微服务架构,集成Swagger接口文档,快速构建分布式应用。

🔐 权限管理

完善的RBAC权限体系,支持多租户、数据权限、API权限等精细化控制。

📊 代码生成

智能代码生成器,支持自定义模板,一键生成前后端代码,提升开发效率。

开始使用 DevEasy

立即体验开发框架强大功能