打造一款非常适合二次开发的前后端分离系统
在当今的软件开发领域,前后端分离架构已成为主流趋势。于是设计构建了一个基于.net8 和 Vue3 的真前后端分离的管理系统。
设计思路
现有的各种开源或其他的类似的前后端分离系统,其实在我看来并没有真正的分离,大多数都需要服务端返回前端需要的路由进行配合,在此不再赘述,说一下我的设计思路。
服务端 不再关心客户端的任何实现,只针对功能,开放接口,同时通过“功能管理”,控制用户调用接口的的权限。
客户端 无需再和服务端约定路由等相关内容,直接根据接口,获取功能编码,通过唯一的“功能编码”挂载路由以及控制界面功能,
技术选型
服务端 .Net8 提供了强大的性能、稳定性以及跨平台支持,其丰富的功能和高效的开发效率为系统奠定了坚实的基础。我们充分利用其特性,构建了可靠的后端服务。
客户端 Vue3+ElementUi-plus,赋予了系统出色的用户交互体验。Vue3 的组件化架构使得界面开发更加灵活和高效,能够快速构建出美观且功能强大的前端页面。
在整个搭建过程中,我们精心设计了前后端的通信机制,确保数据的流畅交互。同时,对系统的安全性、稳定性和可扩展性也进行了深入的考量和优化。于是一款基于abp+pureadmin的项目PurestAdmin横空出世了。
项目结构
为了更好的提供完美的使用体验以及后续开发的便利,项目采用现有的优秀项目进行微调拼接
前端项目采用开源项目vue-pure-admin
后端项目使用abp组件,重新构造了一个更简单易用的项目
项目特色
项目不做任何业务型的功能,尽量做到下载即用,方便广大的开发者进行快速业务开发,无需再为搭建项目框架而烦恼!
项目打破传统rbac构思,不再使用后端配置前端的各种菜单路径,真正做到 前后端分离
重新设计了token的刷新机制,实现 单token无感刷新功能
项目设计了基于角色所拥有接口的权限验证,让服务端可对接更广泛的需求
基于SignalR+sessionStorage实现的在线用户功能。可完美展现每一个在线的客户端
项目相关
项目总结
项目从规划到落地,大概经历了五六次的重构,每一次都是项目的推到重来。在每一次的设计重构中,都饱含了我对这个项目殷切的期盼以及高标准的要求,力求打造一个更通用更易用的标准化管理平台模板。在技术上,使用模块化的方案,减轻项目的层级依赖。拒绝过度封装,使用知名的开源组件,让大家遇到问题可以有迹可循。以本项目为基础的衍生项目已经落地生产,以某客户定制crm系统为,稳定运行5个月,无重启,无事故性异常!