ShenNiusModularity项目源码学习(16:ShenNius.Admin.Mvc项目分析-1)
ShenNius.Admin.Mvc项目是MVC模式的启动项目,包括了MVC模式下所需的所有的页面、控制器类、资源、js文件等数据,该项目仅依赖ShenNius.Admin.API项目,主要使用后者的ShenniusAdminApiModule模块类及一些依赖项目中定义的辅助类等。本文学习ShenNius.Admin.Mvc项目的结构及零散文件的用法,后续文章中逐步学习每个控制器类及对应页面的用法。
ShenNiusModularity项目的结构如上图所示,从下向上逐项介绍:
ShenniusAdminMvcModule文件为MVC模式的启动模块类,其依赖于ShenNius.Admin.API项目的ShenniusAdminApiModule模块类,后者在项目启动过程中根据启动项目的appsettings.json中的jwt设置来设置身份认证方式及路由映射方式。ShenNius.Admin.Mvc项目的appsettings.json中没有jwt设置,因此项目启动过程中设置使用基于Cookie的身份认证方式,同时设置基于area的路由映射,默认访问home/index地址。
Controller和Views文件夹内保存的是自媒体内容管理系统的主页面控制器类及页面,虽然默认路由是主页面,身份认证不通过时默认转到登录页面。
CustomerFileContentTypeProvider类自定义文件扩展名和MIME类型的映射关系,主要包括zip、less、xlsx等三类扩展名的映射关系,该类在ShenniusAdminMvcModule. OnApplicationInitialization函数内调用。
VerifyCode类用于生成验证码及验证码图片,前面文章中有详细介绍生成逻辑,主要用在sys/UserController类的OnGetVCode函数内。
WebExtension类定义了两个扩展函数,ToWebString按自定义格式输出日期字符串,TrimEnd函数用于在字符串A的末尾移除指定的字符串B并返回移除后的子字符串,该类主要用在页面中,在此不再一一列举。
Area文件夹下按系统管理(Sys)、CMS模块(Cms)、商城模块(Shop)分文件夹保存各自的控制器类及页面,后续文章中会逐一学习并记录。
wwwroot文件夹下包含以下子文件夹,分别保存自定义css文件、图标、第三方js库(jquery、layui、signalr、echarts、layui扩展库等)。
参考文献:
[1]https://gitee.com/shenniu_code_group/shen-nius.-modularity