WTM框架详解

一、概述

WTM是一个基于ASP.NET Core和ElementUI的前后端分离的快速开发框架,包含基础模块如用户、权限、菜单、角色等的快速开发,提供了数据驱动界面自动生成、模型自动验证、代码生成器、可扩展插件、前后端分离等功能。

它可以帮助开发人员快速构建基于B/S架构的信息管理系统,增加代码的可维护性和可读性,减小开发成本和周期。

二、模块功能

以下是WTM框架中常用的模块功能:

1. 用户认证

WTM框架内置了用户认证功能,可以自定义用户实体、角色实体、资源申请实体,支持JWT、Cookie、Session等多种方式的身份验证机制。

2. 权限管理

WTM框架提供多种角色和权限控制方式,如角色继承、规则定制、资源管理,可以实现精细化的授权功能。

3. 模块化菜单管理

WTM框架支持快速生成左侧菜单栏,可以灵活配置菜单项、菜单图标,提供了简单的路由和重定向功能,支持嵌套菜单和权限控制。

4. 数据驱动界面生成

WTM框架提供了快速生成业务页面的功能,通过简单的配置即可自动生成对应的Vue/React页面,支持自定义前端框架和样式库。

5. 模型自动验证

WTM框架内置了数据验证模块,基于FluentValidation框架,支持链式验证、自定义验证器、错误返回等功能,方便进行参数校验和模型验证。

三、使用示例

1. 添加初始化配置

在ASP.NET Core项目的Startup.cs中添加WTM框架的初始化配置,如下所示:

    public void ConfigureServices(IServiceCollection services)
    {
        //添加WTM框架服务
        services.AddWTM(options =>
        {
            options.Global = new GlobalConfig
            {
                Author = "WTM",
                Mapper = MapperEnum.AutoMapper,
                ConnectionString = Configuration.GetConnectionString("DefaultConnection"),
                DbType = DbTypeEnum.SqlServer
            };
            options.InjectService = Assembly.GetAssembly(typeof(BaseService)).MakeInjectServices();
            options.Modules = new List
            {
                new ModuleConfig{
                    ClassName = "Demo",
                    Author ="WTM",
                    Area = "XXX",
                    Description = "Demo示例",
                    MiniProfiler = true,
                    Roles = "Admin, System, Developer",
                    UseCustomAuthorize = true
                }
            };
        });
    }

2. 生成业务页面

通过代码生成器快速生成业务页面,可以使用命令行工具或通过Web页面进行操作。

命令行操作:

    wtm codegen -f DemoEFContext -t Demo -a Demo -o D:\WTM-Demo -m Admin,System,Developer

Web操作:在Admin区域下的代码生成器中,输入项目名称、模块名称、数据源名称和生成路径,即可进行自定义配置的代码生成。

3. 扩展自定义功能

WTM框架支持插件化开发,可以通过继承框架提供的基础类和接口来实现自定义的功能,比如自定义数据驱动模板、自定义业务处理类等。

示例代码:

    public class MyModule : BaseModule
    {
        public override ModuleConfig Config => new ModuleConfig
        {
            ClassName = "MyModule",
            Description = "自定义模块",
            Author = "WTM",
            MiniProfiler = true,
            UseCustomAuthorize = true,
            Roles = ""
        };
        
        public override IMenu BuildMenu()
        {
            return this.MakeMenu(new MenuConfig
            {
                Order = int.MaxValue,
                Href = "/MyModule/Demo",
                Icon = "el-icon-menu",
                Text = "自定义模块",
                Children = new List()
            }) ;
        }
        
        public override IServiceCollection AddServices(IServiceCollection services)
        {
            services.AddTransient() ;
            return services;
        }
    }

四、总结

WTM框架是一个适用于中小型信息管理系统快速开发的框架,具有快速、灵活、可扩展等特点,能够方便地进行业务开发和维护,同时提高代码的可读性和可维护性。

原创文章,作者:KAOPD,如若转载,请注明出处:https://www.506064.com/n/361044.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
KAOPDKAOPD
上一篇 2025-02-24 00:34
下一篇 2025-02-24 00:34

相关推荐

  • Ojlat:一款快速开发Web应用程序的框架

    Ojlat是一款用于快速开发Web应用程序的框架。它的主要特点是高效、易用、可扩展且功能齐全。通过Ojlat,开发人员可以轻松地构建出高质量的Web应用程序。本文将从多个方面对Oj…

    编程 2025-04-29
  • Zlios——一个多功能的开发框架

    你是否在开发过程中常常遇到同样的问题,需要不断去寻找解决方案?你是否想要一个多功能、易于使用的开发框架来解决这些问题?那么,Zlios就是你需要的框架。 一、简介 Zlios是一个…

    编程 2025-04-29
  • agavi开发框架

    Agavi是一个基于MVC模式的Web应用程序开发框架,以REST和面向资源的设计为核心思想。本文章将从Agavi的概念、优点、使用方法和实例等方面进行详细介绍。 一、概念 Aga…

    编程 2025-04-29
  • Python unittest框架用法介绍

    Python unittest框架是Python自带的一种测试框架,可以用来编写并运行测试用例。在本文中,我们将从以下几个方面详细介绍Python unittest框架的使用方法和…

    编程 2025-04-29
  • com.alipay.sofa.bolt框架

    com.alipay.sofa.bolt框架是一款高性能、轻量级、可扩展的RPC框架。其广泛被应用于阿里集团内部服务以及阿里云上的服务。该框架通过NIO支持高并发,同时还内置了多种…

    编程 2025-04-29
  • Django框架:从简介到项目实战

    本文将从Django的介绍,以及如何搭建Django环境开始,逐步深入到Django模型、视图、模板、表单,最后通过一个小型项目实战,进行综合性的应用,让读者获得更深入的学习。 一…

    编程 2025-04-28
  • LuaEP:一款强大的Lua开发框架

    LuaEP是一个集成了可以快速开发web应用程序所需的组件的Lua开发框架。它以Lua语言为基础,提供了许多常用接口和库,使得开发者不需要从头开始编写web应用程序,而是专注于业务…

    编程 2025-04-28
  • Java持久层框架的复合主键实现

    用Java持久层框架来操作数据库时,复合主键是常见的需求。这篇文章将详细阐述javax.persistence复合主键的实现方式,并提供完整的示例代码。 一、复合主键的定义 复合主…

    编程 2025-04-27
  • AMTVV:一个全能的开发框架

    AMTVV是一个面向现代Web应用程序的全能开发框架,它可以让你的工作更加高效。AMTVV能够处理各种各样的技术栈,包括但不限于React、Angular、Vue和TypeScri…

    编程 2025-04-27
  • Python语言的MVC框架

    本文将从以下几个方面详细阐述Python语言的MVC框架: 一、MVC框架的基本概念 一般而言,MVC框架被分为Model,View,Controller三部分。Model代表数据…

    编程 2025-04-27

发表回复

登录后才能评论