ASP.NET Core 2.0 MVC项目实战
一、前言
毕业后入职现在的公司快有一个月了,公司主要的产品用的是C/S架构,再加上自己现在还在学习维护很老的delphi项目,还是有很多不情愿的。之前实习时主要是做.NET的B/S架构的项目,主要还是用的那种传统的开发模式,只有一个项目用到了Web API,自己负责后端的接口功能实现。既然现在没办法改变现状,那就先改变自己吧。定了个计划,下班后慢慢的开始学习ASP.NET Core Web API和Vue,准备从前端到后端自己写一个小项目玩玩,毕竟代码这个东西,时间长了是会忘的。
嗯,有点扯远了。这个MVC项目是我的毕业设计,虽然写的比较烂,而且当时为了赶紧写完,代码的冗余程度有点高,但还是希望能给一些准备入门ASP.NET Core MVC的童鞋提供些借鉴吧。代码我放到Github上了,源码地址https://github.com/Lanesra712/Danvic.PSU,欢迎大神们拍砖,指出不足处。
二、项目介绍
毕业论文的课题是一个大学生的一个报名系统,主要是为了完成大学生报名过程中的一些数据维护,当然最后因为实在来不及了,好多都没做。。。项目主要使用到的相关技术如下所示:
项目框架:ASP.NET Core 2.0 MVC
ORM:Entity Framework Core(使用Code First)
数据库引擎:MySQL SERVER 5.7
权限验证:基于策略的权限验证(Policy-Based Authorization)
前端框架:AdminLte(一个基于Bootstrap的开源前端UI)
表格控件:Jquery Datatables
数据可视化组件:Echarts
日志记录:nlog
三、设计与实现介绍
项目架构采用的是多层架构,通过拆分不同的功能领域,实现各个功能间的相对独立,项目在VS中搭建完成后如下图所示。
01_Entity:实体层,包含PSU.Entity这一个系统组件,用于存储数据库中表所对应的C#对象实体。
02_Infrastructure:基础架构层,包含PSU.EFCore、PSU.Utility两个系统组件。PSU.EFCore类库通过引用Entity Framework Core来完成对于数据库的操作。PSU.Utility类库中包含系统开发过程中可能用到的帮助类文件。
03_Logic:逻辑层,包含PSU.Domain、PSU.Repository两个系统组件。PSU.Domain用于继承每个领域的接口类库(PSU.IService),实现领域接口中的功能。PSU.Repository用来实现PSU.Domain类库中所包含的对于数据库的操作。
04_Rule:规则层,包含PSU.IService、PSU.Model这两个系统组件。PSU.IService为系统领域功能接口类库,PSU.Model为视图所对应的数据充血模型,对应MVC模式中的实体Model。
Controller.PSU:控制器层,.NET Core类库,用来存放MVC模式中的各种控制器文件。
PSU.Site:表现层,ASP.NET Core MVC项目,项目主程序。
系统权限验证设计:
整个系统分为三种角色,分别为管理员、教职工、学生用户,通过使用Area搭建每个角色的页面,通过在Controller上添加Area特性,指定当前Controller属于的角色。在创建用户时,会指定用户的角色字段,当用户登录成功后,会根据用户角色进行Claim的创建,通过自定义的AuthorizztionHandler来实现对于当前系统的角色权限控制。
当用户登录成功后,会将当前的用户信息赋值给一个静态类(使用Session进行存储),对于判断用户是否登录,则是通过自定义一个控制器的基类,重写OnActionExecuting方法来实现对于用户是否登录的判断,实现代码如下。
权限验证代码如下截图所示:
控制器示例图:
基于策略的权限验证实现:
自定义验证Claim:
四、总结
接下来我要开始学习ASP.NET Core Web API和Vue了,希望可以保持住,能够不间断的在博客上分享自己的学习经历与见解。当学的差不多的时候,争取把这个项目精简,重构,让自己在成为更好的自己的路途上前进一大步。
因为也是第一次使用ASP.NET Core MVC进行项目的开发,所以遇到了一些自己没办法解决的东西,很感谢博客园里的各位大佬以及一些帮助我的大佬,正是因为有这么多乐于分享的人在,才能更好的推动.NET Core在国内的生态发展,在写毕业设计的过程中,参考了很多位博主的博文,真的是很感谢,致敬。
还是要推广下自己的个人博客啊,点击这里,去看看我的博客啊~~~
项目实现图如下。
原文地址:https://www.cnblogs.com/danvic712/p/9349583.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
ASP.NET Core 2.0 MVC项目实战相关推荐
- ASP.NET Core 2.0 : 三. 项目结构
ASP.NET Core 2.0 : 三. 项目结构 原文:ASP.NET Core 2.0 : 三. 项目结构 本章我们一起来对比着ASP.NET Framework版本看一下ASP.NET Cor ...
- ASP.NET CORE 1.0 MVC API 文档用 SWASHBUCKLE SWAGGER实现
from:https://damienbod.com/2015/12/13/asp-net-5-mvc-6-api-documentation-using-swagger/ 代码生成工具: https ...
- ASP.NET Core 技术内幕与项目实战读后感
前几天拿到了杨中科老师的新书<ASP.NET Core 技术内幕与项目实战>,迫不及待的"两"口气读完了.用一句话来总结,这是一本写给.NET开发者的非常实用的接地气的 ...
- Asp.Net Core 6.0 Mvc入门 图书查询系统 附带源码下载
Asp.Net Core 6.0 MVC 入门 简介 目标 第一章 创建Asp.Net Core Web应用 第二章 从Model开始 第三章 Model之后皆基架 第四章 运行应用 第五章 数据搜索 ...
- 《ASP.NET Core技术内幕与项目实战:基于DDD与前后端分离》读后感一
由于自己菜鸡,只能任由社会摆布,自学一段时间JAVA想去找JAVA工作,突然一份.NET Core的工作摆在面前,还好有点学历,虽然C#已经不太记得,领导仍然放我进去了.开始的一段时间,各种摸项目,也 ...
- ASP.NET Core 2.0 MVC 发布部署--------- ASP.NET Core 发布的具体操作
ASP.NET Core 发布的具体操作 下面使用C# 编写的ASP.NET Core Web项目示例说明发布的全过程. 1.创建项目 选择"文件" > "新建&q ...
- ASP .NET Core 2.0 MVC 发布到 IIS 上以后 无法下载apk等格式的文件
ASP .NET Core MVC 发布到 IIS 上以后 无法下载apk等格式的文件 使用.NET Core MVC创建了一个站点,其他文件可以下载,但是后来又需求,就把手机端的apk合适的文件上 ...
- ASP.NET Core 2.0 使用支付宝PC网站支付
概述 支付宝有比较多的支付产品,比如当面付.APP支付.手机网站支付.电脑网站支付等,本次讲的是电脑网站支付. 详细 代码下载:http://www.demodashi.com/demo/11730. ...
- ASP.NET Core 2.0 支付宝当面付之扫码支付
前言 自从微软更换了CEO以后,微软的战略方向有了相当大的变化,不再是那么封闭,开源了许多东西,拥抱开源社区,.NET实现跨平台,收购xamarin并免费提供给开发者等等.我本人是很喜欢.net的,并 ...
最新文章
- 区分什么是Apache、Tomcat,之间有什么关系?
- 【转】JNI学习积累之一 ---- 常用函数大全
- 用jsp开发web应用并不是一个高效率的选择
- 水滴公司更新招股书:发行价区间为10-12美元
- Rails源码笔记-ActiveSupport-core_ext-array
- 【问题解决:死锁】Lock wait timeout exceeded; try restarting transaction的问题
- gmail api 发送邮件_Node定时自动发邮件功能
- vue使用a标签下载文件_vue+iview 通过a标签实现文件下载
- python调用pyd_Python import / pyd / dll
- 小菜成长记---【proxy 代理模式 ---西门庆干潘金莲——王婆做代理】
- vulnhub靶机-DC7-Writeup
- latex如何绘制标准三线表 lllegal charactor in array arg 如何合并单元格?
- 北美Developer生存发展攻略
- 中国移动首次明确的LTE终端频率要求
- FreeType解析矢量字体存在的问题以及优化技巧
- 怎么下载微信朋友圈的ppt存为己用
- Vue掌握到什么程度才能进大厂?
- 中软国际面试题及答案
- php能做彩票走势图么,如何用EXCEL制作彩票走势图?
- 在线 加密解密 工具