1. 程式人生 > >ABP項目啟動及源代碼結構

ABP項目啟動及源代碼結構

發現 啟動界面 splay 設計 database 技術 RM 在哪裏 lan

  在整體介紹ABP項目之前我們需要從官方網站下載模板項目,下載以後放到一個本地目錄下,啟動VS打開源代碼。具體下載的步驟如下:

一 創建ABP項目模板

  1 進入官方網站然後選擇特定的樣板項目。

  2 選擇特定的平臺以及特定的架構從而生成特定的模板。  技術分享圖片

  3 開始創建模板

技術分享圖片

二 創建數據庫並啟動運行項目

  在拿到整個項目的源代碼之後,我們仍然對整個項目缺少一個大概的了解,下面以我們創建的多頁面的框架為例,在拿到一個陌生的開源項目之前我們總希望能夠看到界面到底長成什麽樣?從而在大體上對這個項目有一個直觀的認識,但是要做到這一步你需要進行下面的幾個步驟。

  1 打開解決方案,還原Nuget包。

  具體步驟:在VS2017中打開創建項目--》右鍵解決方案--》還原Nuget包。

  2 修改本地數據庫的連接字符串。

  可能對Asp.Net Core項目不熟悉的可能還不知道在哪裏修改默認的配置,因為你會發現在整個項目中整個配置的方式和 Asp.Net MVC有一些不同,這裏找到你將要啟動的項目(示例中的啟動項目為MyMultiPageWeb.Web.Host),然後雙擊打開appsettings.json,然後我們選擇在這裏配置數據庫連接字符串。

技術分享圖片

  這裏需要特別註意的是Database是即將在SQL Server數據庫中生成的數據庫名稱。

  3 在Nuget管理控制臺中執行Add-Migration命令。

  A 打開程序包管理控制臺  技術分享圖片

  B 選擇默認的項目為XXX.EntityFrameworkCore技術分享圖片

  C 執行 Add-Migration 命令

技術分享圖片

  在這個過程中,如果執行成功會在XXX.EntityFrameworkCore項目下面的Migrations文件夾下面生成對應的遷移記錄。

  4 執行Update-Database更新到數據庫。

  最後一步也是最重要的一步就是在控制臺中輸入Update-Database命令(註:後面可以不需要接任意參數),待更新完成之後便會生成數據庫中的對應的表結構和種子數據,這樣就算是完成整個數據庫的生成工作了。

技術分享圖片

  在這些表中還有一張數據庫遷移的歷史記錄表(dbo_EFMigrationsHistory),其中記錄了整個數據庫歷史遷移的數據。

三 項目啟動界面截圖

  1 啟動MyMultiPageWeb.Web.Host項目。

技術分享圖片

  當前項目主要集成了時下非常流行的Swagger UI,主要用來生成Web API的文檔,能夠全方位的進行Web API的開發。

  2 啟動MyMultiPageWeb.Web.MVC項目

  這個項目是一個完整的官方提供的ABP Web項目,下面通過幾張截圖來了解一下,項目啟動時默認的用戶名:admin 、密碼為123qwe。

技術分享圖片

四 項目的源代碼結構

技術分享圖片

  整個項目的源代碼結構如上面所示,上面是項目的源碼,下面是項目的測試部分,整個項目的源代碼是遵循DDD(領域驅動設計)的開發思想來進行組織的,下面就這些項目來進行說明:

  MyMultiPageWeb.Application:應用層,主要包括定義和前臺進行交互的接口層,調用領域層中對應的接口,默認包括:驗證、配置、多租戶、角色、用戶、Session的一些操作,是整個Web API對外部提供調用的核心接口。

技術分享圖片

  MyMultiPageWeb.Core:領域層,對現實業務進行抽象,通過調用ORM層的提供的接口來對當前的User、Role、Tenant等一系列的管理操作,並對外提供統一的Manager接口,從而供應用層進行相關的操作,另外還提供了諸如驗證、配置、Feature、本地化等等一些列基礎接口。

技術分享圖片

  MyMultiPageWeb.EntityFrameworkCore:ORM層,該層顧名思義是使用EntityFrameworkCore來和SQL Server數據庫進行交互的核心邏輯,包括一些常規的各種CRUD操作,以及通過Model First模式創建數據庫,為數據庫提供種子數據等一系列操作。

技術分享圖片

  MyMultiPageWeb.Migrator:提供基於控制臺的數據庫遷移工具

  MyMultiPageWeb.Web.Core:這個部分主要是通過調用

技術分享圖片

MyMultiPageWeb.Web.Host:Swagger UI 集成Web API文檔工具

  MyMultiPageWeb.Web.Mvc:標準的Asp.Net Core MVC 項目,完整的前後端實現,這一部分將在後續進行一系列的分析和解讀。

ABP項目啟動及源代碼結構