#前言#
感慨临近毕业,才感觉刚踏入编程的门槛,身为技术小白掌握的技术能力面对企业业务,认识到需要学习的还有很多很多,思来想去还是将第一个项目总结一下,日后将每一个项目学习的技术和工具记录下来,提升自身能力。
本次项目为练习项目,目的是对新知识的记录和总结,对重复的,较基础的不做详细解释。
一、项目需求分析与规划
在软件开发的初始阶段,项目需求分析与规划是至关重要的环节。这一过程不仅涉及将客户提出的需求准确地转化为具体的技术实现方案,还需要对项目的可行性进行全面评估,确保开发团队的技术栈能够支撑起这些需求。
游戏后台管理系统使用一般为服务器管理员、运维人员或游戏公司员工,该项目主要是帮助客户方便对员工、游戏数据的管理,以及相应权限访问设置等,这里项目只实现员工管理和权限模块,游戏管理,插入数据后使用基础的CURD语句实现游戏数据的管理。
二、环境准备
- 操作系统:windows系统
- 开发工具:Sql Server数据库2022、Visual Studio 2022开发工具、Typora(markdown文档编辑器)。
- 编程语言和框架:前端:LayUI框架、jQuery;后端:C#语言、ASP .NET MVC框架;数据库:Sql Server数据库。
三、项目开发
本次项目我分为五大模块,实现最基础的后台管理系统,VS创建MVC项目,浅提一下MVC优势
- 低耦合性:视图层和业务层分离,允许更改视图层代码而不用重新编译模型和控制器代码。
- 可重用性:视图和控制器可以重用相同的模型代码,从而减少代码重复。
- 易于维护:由于MVC模式将应用程序的不同功能分离开来,开发人员可以更容易地进行调试和维护。
- 并行开发:开发人员可以同时开发模型、视图和控制器,提高开发效率。
后台登录模块-LoginController
模块需求
-
确保系统的安全性,只允许授权用户访问。
-
支持用户通过用户名和密码进行登录。
-
支持登录失败后的错误提示。
操作过程
此次项目前端主要学习使用前端框架LayUI,完成大部分前端界面布局。
layui
是一个基于 jQuery 的前端 UI 框架,它遵循原生 HTML/CSS/JS 的书写形式,让 Web 开发变得更加快速和简单。layui
提供了丰富的 UI 组件,如表格(table)、表单(form)、弹出层(layer)等,非常适合快速开发后台管理系统界面。而jQuery
是一个快速、小巧、功能丰富的 JavaScript 库,它简化了 HTML 文档遍历和操作、事件处理、动画和 Ajax 交互,使得 Web 开发更加方便快捷。
这里使用的layui表单组件中的登录组件,就能快速完成一个简单好看的登录界面了,前端页面就完成了
登录当然需要有数据来验证,数据大多都保存在服务器的数据库中,这里我们使用的sqlserver数据库,在MVC项目中连接数据库也是十分简单的,创建ADO.NET实体数据模型,然后一直下一步选择要绑定的数据
实体模型提供了数据库表、视图、存储过程等数据库对象的高级抽象,使开发者能够使用强类型的实体类来操作数据。
有数据就可以进行数据判断或验证了,控制器(Controller)是视图(View)和模型(Model)之间的桥梁,在控制器可以调用相应的模型方法处理数据后,将处理结果传递给视图以进行展示。
这里的控制器登录验证其实就是对数据库查询,验证是否有此用户,如果验证成功就将当前用户存储在Session中并跳转到后台页面,如果会话结束或会话超时,Session会自动销毁,有效保证服务器性能;同时Session也是可以做非登录判断的,这里使用到了ActionFilterAttribute(筛选器)
ActionFilterAttribute 是ASP.NET MVC和ASP.NET Core中用于在控制器操作方法执行前后添加自定义逻辑的一个类,通过继承该类并重写类里OnActionExecuting方法,判断用户是否登录,若未登录便将控制器结果重定向至登录页面
导航布局模块-HomeController
模块需求
-
提供一个统一的、响应式的导航布局。
-
支持动态加载导航项,根据用户权限显示不同的菜单项。
-
提供导航项的嵌套和分组功能,便于管理复杂的页面结构。
-
支持侧边栏或顶部导航条等多种布局方式。
操作过程
这里作用当作布局页,实现不跳转页面,局部刷新页面,页面主体使用iframe标签实现
此模块还有修改密码,修改个人信息,退出登录等功能,都是实现最简单的功能,就不做展示了
基础信息管理模块-BasicInfoController
模块需求
-
管理系统的基础信息,如职位信息、机构信息和员工信息等。
-
支持数据的增删改查(CRUD)操作。
-
提供数据验证功能,确保输入数据的有效性。
-
支持EXCAL的数据转换,实现数据的导出和导入
操作过程
此模块下虽然有三个子菜单,主要功能还是对数据的增删改查,三个表格实现略有不同
职位管理菜单,使用了普通的单表查询
组织机构管理菜单,使用了单表的树形结构,使用递归实现
员工基本信息管理,使用了多表联合查询,linq连表查询
导入导出使用NPOI并参考网上的文章实现的
权限管理模块-AuthorityController
模块需求
-
管理员工的权限,包括角色定义、权限分配等。
-
权限验证机制,确保用户只能访问其权限范围内的资源。
-
设置用户、角色、菜单权限,在导航布局模块根据登录用户实现动态菜单。
操作过程
此模块需要对多表查询和表关系熟悉,这里使用两个表和一个关系表创建视图
菜单管理,设置菜单
角色菜单管理,设置角色所能查看的菜单
用户角色管理,设置用户是什么角色,可以拥有对应角色的权限
设置完权限,可以在视图编写C#代码,调用控制器方法,并将数据遍历出来,实现动态菜单
游戏管理模块-GameController
模块需求
-
管理游戏相关的数据,如游戏、角色、技能、皮肤、玩家数据等。
-
支持游戏的上下架操作,控制游戏的可访问性。
-
支持游戏内角色的创建和管理。
操作过程
此模块和以上模块实现相同,不多做模块展示了。
主要实现员工对游戏数据的操作。
四、项目总结
不考虑安全性,系统兼容性,性能等等问题外,一个游戏管理网站的功能算是实现了。项目不足有很多,功能和模块还不算完善,发现问题,解决问题缺少经验,发现到解决逻辑没有很清晰。
微软推出的WPF和.NET Core是现在掌握的WinForms和.NET MVC的功能升级版,实现了跨平台,功能更强大,掌握新技术,新框架跟进技术。
文章也不多碎碎念了,一个项目的结束,也是另一个项目的开始,现阶段太缺少经验了,只有一个项目一个项目的积累方能始终。