前言

在去年完成基于ASP.NET MVC的后台管理系统后,刚好进入NetCore大面积被关注时期,同时对于框架的细节,页面美观度等方面还有很大的提升空间,所以决定基于NetCore3.1重构一版进行查漏补缺

项目地址:FastExecutorCore: 基于NetCore3.1开发后台管理系统框架(个人学习)

概述

先列举一下框架中前后端设计包含的功能,如下图所示

上述是我从已经完成的框架中整理挑选出来认为比较通用、常用的部分,单独一部分拿出来都是有很多功能点进行细化的,后续会大致梳理一下如何从零开发一个框架的思路

技术选型

技术选型对于框架后续开发使用的顺手程度与扩展方便性都有很大的影响,我这里ORM与IOC都是选择手动实现的,因为这是一个个人学习框架,我会将自己的之前积累的一些轮子尽量改造优化之后进行实践应用,了解到更多不足之处,一般选择第三方组件时的原则就是简单,简单,还是简单,能够快速上手,并且有自己结合业务封装的空间,才能提高框架的扩展性。鉴权与缓存我选择了使用Redis存储搭配StackExchange连接库,Redis支持多种数据结构能够灵活配合我们框架的实现思路。前端部分我选择了jquery+zui组件库进行开发,之前版本使用过vue+elementui本地化html的方式进行开发,在数据渲染及动态联动计算方面vue确实很方便,但我开发的后台管理系统的一个原则就是简单,所以并不会进行前后端分离部署(代码是分离的),一定程度上会浪费单页应用的特性,并且jquery在各种效果与三方组件库方面还是非常完善与强大的,基本遇到的问题能够有快速的解决方案,何乐而不为呢。

实现思路

完成一个表的增删改查

选择一张简单的表,我选择的是系统参数,没有任何业务关联,且可以包含字符,日期,数字等常用字段类型,可以掌握ORM的基本CRUD,接口接收传递参数形式,路由的个性化跳转等

Table组件/Form表单/模态窗口的使用

完成接口部分,我们需要将接口对接到具体页面,需要熟练掌握Table组件的数据绑定,自定义模板列,配合分页组件使用方式,模态窗口的打开/关闭/传递参数/回调/不同类型提示框的使用,Form表单的赋值与提交参数归并整合提交

前端Ajax请求与js/css版本的统一控制

完成一个表的功能后,我们需要对Ajax请求进行封装,控制请求的统一出处,便于后续对接身份鉴权(请求统一携带Token),针对前端缓存问题,我们可以对页面加载的js/css文件进行统一处理,加入版本号控制,避免后期发现问题到处改

统一接口返回与参数获取

进行框架开发比较重要的就是制定规范,规定好数据返回的统一格式有利于后续框架业务功能的页面快速批量生成修改,针对前端提交的数据后端接口需要统一处理,例如要支持json/form/url参数/文件的接收

DB层基类定义

针对不同表的增删改查需要进行泛型基类的定义,这样我们能够快速生成一个表的DB操作模板再根据具体需求去进行修改或者业务组合,且有利于进行缓存DB基类的扩展与统一操作

多个表组合业务功能模块开发

例如和可以进行部门-人员这两个表的开发,可以对后端接口业务组合操作的一个模式进行规范确定,上手ORM的事务使用,Form表单能够使用更多的UI组件,对前期没有考虑的方面进行补充优化

前端组件封装与二次开发

针对树组件/上传附件组件/富文本组件/数字输入框组件一般来说对于具体业务功能或者展现样式都或多或少有些缺陷,需要我们针对框架需求进行个性化修改,例如富文本我们需要对字体设置类型进行重新整理,对接附件接口实现图片上传等

身份鉴权

在完成了几个业务功能后,我们可以进行登陆/登出/鉴权/Token存储/Token认证/匿名访问/拦截器等功能的开发实现

业务堆叠

上述就是开发框架前期的一个基本思路,相当于完成了百分之五十,为后续的开发模式打下良好的基础,我们只要往上堆功能即可,例如登陆验证码/代码自动生成/日志管理/定时任务等

框架介绍

本次开发的后台管理框架主要核心功能及特点包含以下几块

1.组织架构:包括部门/人员/角色/模块及RBAC权限管理,引入兼职模块,人员可以兼职不同部门/人员

2.数据平台:统一管理表结构/代码项,提供表CRUD及页面代码的快速生成/导入导出迁移功能

3.扩展组件:集成定时任务及主页消息元件的动态渲染

4.支持附件的多库存储,多种策略存储

5.系统大部分功能都通过可视化界面操作,降低配置难度

6.内置数据表的缓存模板类,继承基类后一键支持缓存,且与事务操作结合优化,保证数据与缓存的强一致性

7.实现框架与业务项目代码分离,项目代码以插件化形式挂载在框架的发布包中,支持热更新

系统概略图如下:

总结

在开发框架过程中遇到很多难题,但是随着问题的逐步解决,会对某些平常工作中接触不到的知识领域有更多的了解,踩过的坑会被牢记,会养成良好的规划习惯,订好了规范,打好了基础,才能稳步前进。说是开发一个框架不如说是对于自己所掌握技能的一个整理与总结,形成自己的一套做事/开发的方法论,同时去丰富自己的一些理论知识,把那些只知道如何实现的功能去形象专业的表述出来,技术人员需要的不仅仅是技术,后续会在此框架基础上使用SpringBoot进行Java版本的开发与优化,加入工作流,消息通信等模块。到今年的7.1号就工作整整五年了,回顾一路走来没有特别大的波澜与突破,作为一个普通人能做的也只是脚踏实地,每天进步学习一点点,相信终有收获。

大鹏一日同风起,扶摇直上九万里,加油!

NetCore3.1开发后台管理系统框架思路与实现相关推荐

  1. vue + element ui 的后台管理系统框架_从零开始搭建 VUE + Element UI后台管理系统框架...

    点击右上方红色按钮关注"web秀",让你真正秀起来 前言 后台管理系统前端框架,现在很流行的形式都是,上方和左侧都是导航菜单,中间是具体的内容.比如阿里云.七牛云.头条号.百家号等 ...

  2. 【Vue 快速入门】从零开始搭建 VUE + Element UI后台管理系统框架

    [Vue 快速入门]从零开始搭建 VUE + Element UI后台管理系统框架 前言 后台管理系统前端框架,现在很流行的形式都是,上方和左侧都是导航菜单,中间是具体的内容.比如阿里云.七牛云.头条 ...

  3. 后台管理系统框架bootstrap中文版

    简介: 后台管理系统框架bootstrap中文版 网盘下载地址: http://kekewl.cc/8TLdhidu7gi0 图片:

  4. vue3.0 结合element ui 开发后台ui框架

    vue3.0 结合element ui 开发后台ui框架,根据element ui 官网步骤安装出现报错信息,解决方法: 按照element UI官网步骤, 启动vue 3.0项目:npm run s ...

  5. SpringBoot后台管理系统框架

    SpringBoot后台管理系统框架 SpringBoot后台管理系统功能介绍 登录 注册 用户列表和添加功能 只是个框架 实现了shiro权限控制, 详细的shiro使用 一个模板项目系统 只有少量 ...

  6. 【博主推荐】html后台管理系统框架(附源码)

    html后台管理系统框架(附源码) 提示:内含有九套系统框架静态源码,包括列表,表单,曲线图,地图,报表,统计,弹框,加载等所有日常应用:不同的风格,炫酷的界面,可以直接嵌入自己的项目,并使用. 框架 ...

  7. web常用通用组件+Axure后台管理系统框架模板+大屏数据可视化元件库+智慧社区管理系统大屏+图表组件+表单组合+智慧数据看板+通用大屏图表原件库+电脑端常用组件

    作品介绍:web常用通用组件+Axure后台管理系统框架模板+大屏数据可视化元件库+智慧社区管理系统大屏+图表组件+表单组合+智慧数据看板+通用大屏图表原件库+电脑端常用组件 Axure原型演示及下载 ...

  8. 后台管理系统框架搭建 | CRUD实现 | MP代码生成器 | Swagger2在线文档

    day01 微信商城后台管理系统框架搭建 | CRUD实现 | MP代码生成器 | Swagger2在线文档 创建项目 项目名含大写字母会报异常 啥都不选 之后点完成 根项目的pom依赖如下,部分依赖 ...

  9. xadmin开发后台管理系统常见问题

    Xadmin开发后台管理系统 点我下载xadmin的demo 关注公众号"轻松学编程"了解更多. 添加小头像 https://blog.csdn.net/qq_34964399/a ...

  10. c#chart背景透明_C#+Layui开发后台管理系统

    我是笑林新记,分享一下我一套C#开发的后台管理系统,希望对大家有帮助!欢迎关注微信公众号:笑林新记 后台开发语言:C# 前端框架:layui 前天用毛笔笔画制作了一个毛笔字效果的Logo,主要是给后台 ...

最新文章

  1. python使用matplotlib可视化、自定义Y轴轴标签刻度旋转的角度(customize degree rotating axis tick labels in matplotlib)
  2. (节点分类)四大图数据集AIFB,MUTAG,BGS,AM数据集获取
  3. Away3D 的实体收集器Bug
  4. 【LeetCode笔记】199. 二叉树的右视图(Java、二叉树、层序遍历)
  5. LaunchScreen原理
  6. 新云网站管理系统最新版注入漏洞
  7. configure 查看默认安装路径
  8. 电大考计算机和英语,2016年电大+年电大计算机_英语_网考小抄.doc
  9. Win10 图标 显示不正常解决办法
  10. MATLAB中text函数使用
  11. 全国计算机等级考试c语言编程题,全国计算机等级考试C语言编程题(附答案)
  12. 键盘上特殊符号的中英文名称
  13. 变态Java系列 String
  14. java web租车系统_JavaWeb在线租车服务系统项目源码(福利)
  15. alm系统的使用流程_ALM用户使用手册..doc
  16. 485通讯的校验和_232/485转CAN 智能协议转换器
  17. C++实现otsu算法
  18. linux udev 激活usb网卡,linux – 用于USB设备的udev规则并忽略其他设备
  19. 计算机一级在上网题中怎么新建文本文件,计算机一级上网题教程 计算机基础知识题库...
  20. 电脑入门必懂的常识7

热门文章

  1. 使用码云(Gitee)进行开源代码管理
  2. 计算机绘图cad期末考试试题,机械CAD/CAM期末考试复习资料[机械CAD/CAM]
  3. EICU数据库安装教程
  4. 我国无线2.4g及5g信道-个人笔记
  5. J2Cache+Spring注入配置参数,无需读取固定路径下的j2cache.properties配置文件
  6. 【超详细】私有仓库Gitlab的安装与使用详细教程
  7. HTML页面跳转及参数传递
  8. 外卖点餐系统(App及后台)
  9. 解决SQLServer2008安装失败最直白的解决方式
  10. firefox改html内容,Firefox 中的 HTML5 音视频