本篇承接上篇内容,如果你不小心点击进来,建议从第一篇开始完整阅读,文章内容继承性连贯性。

构建NetCore应用框架之实战篇系列

一、设计原则


1、继承前面框架架构思维,设计以可读性作为首要目标。

2、技术架构上共分四层,分html层、controller层、helper层、db层,另外还有ef。

3、所有业务逻辑均在controller层实现,helper只做一些与业务无关的技术封装。

二、模块设计


1、html层:包括login,html,index.html两个页面。

2、controller层:AccountController封装所有与登录权限有关的方法。

3、helper层:LogHelper,SqlHelper,EncryptHelper,SSOClient,VerificationCode,HttpContext等方法。

大致分层架构

三、函数设计


1、重点讲一下SSOClient,封装登录过程相关信息。

2、SSOClient主要函数有IsLogin,Validate,SignIn,SignOut

3、SSOClient主要属性有UserId,User,Department,Roles

把登录过程封装,是为了提升扩展性,把登录抽象为一般较验、用户较验、登录三个环节,可以轻易接入外部登录。

当需要使用第三方登录时,只需要重写Validate即可。

4、AccountController包括以下函数:VerifyCode,Login

5、其它方法为辅助方法,可以查看代码调用链即可。

功能设计太复杂,文字介绍不清楚,还是直接看代码吧。一个登录功能看起来简简单单,实际上把该用的基本上都用上了。

四、源代码


本篇源码已经上传到GitHub上,本章内容在v1001分支上,Master不解释。进入源码

1、从Git上拉取分支v1001代码.

2、本地新建数据库

3、执行建表和数据脚本

4、运行

到此为止,框架的雏形已经基本形成,接下来会用两篇的内容进行总结。其中一篇总结整体架构,一篇重点讲源码结构。

最新文章

  1. hibernate用注解替代映射文件
  2. Agent理解
  3. express教程
  4. 服务器IP地址后修改SQL Server配置
  5. pcr free library 介绍
  6. 黄聪:mysql下使用update set from select
  7. NPOI操作EXCEL 类代码
  8. web前端开发随手笔记 - 持续更新
  9. APP如何设计才能适配iphone6/plus和iphone5
  10. TCP数据包结构
  11. Android中的layout_gravity和gravity的区别
  12. [Swift]LeetCode664. 奇怪的打印机 | Strange Printer
  13. sql server 行转列存储过程
  14. z分数
  15. mysql中engine=innodb和engine=myisam的区别(转)
  16. dede搜索页面上某些标签无法使用
  17. iOS设计模式 - 模板
  18. docker基本元素和底层实现
  19. Android-获取网络图片设置壁纸
  20. 计蒜客 UCloud 的安全秘钥(困难)(哈希)

热门文章

  1. Too Rich(贪心+DFS)
  2. 转)安装svn服务器
  3. 在IE10下,DropDownList的AutoPostBack不能触发
  4. 对于Android开发,啥是高级工程师?
  5. ubuntu下设置DNS服务器
  6. axios 设置拦截器 全局设置带默认参数(发送 token 等)
  7. easyui-从数据库读取创建无极菜单
  8. python list和函数之间的复制和原地址修改问题
  9. 如何使用css来让图片居中不变形 微信小程序和web端适用
  10. FreeTextBox备忘