做農(nóng)業(yè)的公司管理網(wǎng)站廣告推廣公司
??開(kāi)源博客項(xiàng)目Blog的App.Hosting項(xiàng)目為MVC架構(gòu)的,主要定義或保存博客網(wǎng)站前臺(tái)內(nèi)容顯示頁(yè)面及后臺(tái)數(shù)據(jù)管理頁(yè)面相關(guān)的控制器類(lèi)、頁(yè)面、js/css/images文件,頁(yè)面使用基于layui的Razor頁(yè)面(最早學(xué)習(xí)本項(xiàng)目就是想學(xué)習(xí)layui的用法,不過(guò)最新版本中前臺(tái)頁(yè)面換成了Vue3),同時(shí)定義項(xiàng)目所需的特性類(lèi)、中間件等。
??App.Hosting項(xiàng)目依賴(lài)App.Application項(xiàng)目,同時(shí)其安裝的Nuget包不多,僅包括Microsoft.AspNetCore.Mvc.Newtonsoft、Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation、Microsoft.VisualStudio.Azure.Containers.Tools.Targets
??App.Core項(xiàng)目的頂層文件夾如下圖所示,下面逐一概述其大致用途。
??Program.cs。項(xiàng)目的初始啟動(dòng)文件,初始化自動(dòng)注入、數(shù)據(jù)庫(kù)配置、數(shù)據(jù)映射、數(shù)據(jù)驗(yàn)證、數(shù)據(jù)緩存、Session設(shè)置、Cookie設(shè)置、中間件、路由等方面的設(shè)置。
??log4net.config。日志記錄模塊log4net的配置文件,配置記錄日志的層級(jí)、格式、輸出位置等信息。
??appsettings.json。項(xiàng)目配置文件,配置數(shù)據(jù)庫(kù)連接信息、緩存設(shè)置等信息。
??wwwroot文件夾。保存前后臺(tái)頁(yè)面所需的css、js、圖片等文件,其結(jié)構(gòu)如下圖所示,layui相關(guān)的文件即保存在其中的js文件夾中。
??Areas文件夾。其下級(jí)結(jié)構(gòu)如下所示,保存的是博客項(xiàng)目的后臺(tái)數(shù)據(jù)管理(博客管理、用戶(hù)管理、角色及權(quán)限管理等模塊)相關(guān)的控制器類(lèi)及頁(yè)面,后續(xù)會(huì)逐一學(xué)習(xí)并記錄各個(gè)模塊的頁(yè)面及后臺(tái)控制器類(lèi)的具體用法,本文中不再詳細(xì)介紹。
??Controllers及Views文件夾。保存前臺(tái)頁(yè)面(網(wǎng)站首頁(yè)、文章專(zhuān)欄、資源分享、點(diǎn)點(diǎn)滴滴、關(guān)于本站)相關(guān)的控制器類(lèi)及頁(yè)面,后續(xù)會(huì)逐一學(xué)習(xí)并記錄的前臺(tái)頁(yè)面及后臺(tái)控制器類(lèi)的具體用法,本文中不再詳細(xì)介紹。
??Middleware文件夾。保存異常處理中間件ExceptionHandlerMiddleware,該類(lèi)嘗試調(diào)用管道中的下一個(gè)代理或中間件,失敗的話(huà)則記錄日志,返回異常JSON或直接調(diào)轉(zhuǎn)到錯(cuò)誤頁(yè);
??Extensions文件夾。其中的ApplicationBuilderExtensions類(lèi)定義函數(shù)在項(xiàng)目啟動(dòng)時(shí)注冊(cè)異常處理中間件,而HttpContextExtensions類(lèi)則定義擴(kuò)展函數(shù)支持從請(qǐng)求數(shù)據(jù)中獲取Session數(shù)據(jù)、設(shè)置用戶(hù)登錄/登出信息等操作。
??Filters文件夾。其下級(jí)結(jié)構(gòu)如下圖所示,其中:
??WebController類(lèi)為前臺(tái)頁(yè)面對(duì)應(yīng)的控制器類(lèi)的抽象基類(lèi),提供統(tǒng)一的對(duì)象實(shí)例序列化為Json的操作函數(shù);
??AdminController為博客項(xiàng)目的后臺(tái)數(shù)據(jù)管理相關(guān)模塊的控制器類(lèi)的抽象基類(lèi),定義了相關(guān)的頁(yè)面處理及錯(cuò)誤處理函數(shù);
??AuthorizationAttribute類(lèi)和AllowAccessAttribute類(lèi)用于檢驗(yàn)用戶(hù)登錄和權(quán)限驗(yàn)證,主要用于后臺(tái)數(shù)據(jù)管理相關(guān)模塊的控制器類(lèi)函數(shù)的權(quán)限控制,如果函數(shù)沒(méi)有設(shè)置AllowAccess特性,則需按AuthorizationAttribute類(lèi)中的權(quán)限驗(yàn)證規(guī)則進(jìn)行權(quán)限驗(yàn)證,通過(guò)驗(yàn)證才能訪(fǎng)問(wèn)對(duì)應(yīng)函數(shù)。
??Models文件夾。保存前臺(tái)“點(diǎn)點(diǎn)滴滴”頁(yè)面顯示數(shù)據(jù)所需的時(shí)間軸(TimeLineDto)和事件(LineItem)數(shù)據(jù)類(lèi)定義。
參考文獻(xiàn):
[1]https://gitee.com/miss_you/Blog
[2]https://www.donet5.com/Home/Doc
[3]https://github.com/MapsterMapper/Mapster
[4]https://github.com/rivenfx/Mapster-docs