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