我們使用 Visual Studio 或代碼編輯器打開解決方案`ProductManagement.sln`、創建數據庫并運行 Web 應用程序。您將看到如下圖所示的解決方案結構:

該解決方案是包含多個項目的分層結構。測試文件夾包含測試這些對應層的項目。這些項目中有一些是類庫,有一些是可執行應用程序:
* `ProductManagement.Web`是 Web 應用程序。
* `ProductManagement.DbMigrator`用于應用數據庫遷移和種子數據初始化。
在創建數據庫之前,您可能需要檢查并更改數據庫連接字符串。
## 連接字符串
連接字符串在`ProductManagement.Web`和`ProductManagement.DbMigrator`項目的`appsettings.json`文件中定義,包括服務器、數據庫名稱和憑據。如以下代碼片段所示:
```
"ConnectionStrings": {
??"Default": "Server=(LocalDb)\\MSSQLLocalDB;Database=ProductManagement;Trusted_Connection=True"
}
```
默認連接字符串使用`LocalDb`,一個輕量級、與 SQL Server 兼容的數據庫。它安裝在 Visual Studio 中。如果要連接到另一個 SQL Server 實例,需要更改連接字符串。
## 創建數據庫
該解決方案使用 EF Core 的 Code First 進行數據庫遷移。因此,我們可以使用標準`Add-Migration`和`Update-Database`命令來管理數據庫更改。
`ProductManagement.DbMigrator`是一個控制臺應用程序,可簡化在開發和生產環境中創建和遷移數據庫。它還提供數據初始化,比如創建默認登錄使用到的`admin`用戶和角色。
右鍵單擊該`ProductManagement.DbMigrator`項目并選擇**設置為啟動項目**命令。然后,使用*Ctrl*+*F5*運行項目,無需調試即可運行。
**關于初始遷移**
如果您使用的是 Visual Studio 以外的 IDE(例如 JetBrains Rider),則首次運行可能會遇到問題。在這種情況下,可以在項目`ProductManagement.DbMigrator`目錄中打開一個命令行終端并執行`dotnet run`命令。下次,您就可以像往常一樣在 IDE 中運行它。
數據庫已經準備好了,我們可以運行應用程序來查看界面 UI了。
## 運行 Web 應用程序
設置`ProductManagement.Web`為啟動項目,并使用*Ctrl*+*F5*運行它(無需調試即可啟動)。
>[success] 溫馨提示:*Ctrl*+*F5*,不調試運行
除非調試它們,否則強烈建議在不調試的情況下運行應用程序,因為這樣會快得多。
接著會打開一個登錄頁面,如以下屏幕截圖所示:

默認用戶名是`admin`,默認密碼是`1q2w3E*`。可以在登錄之后進行更改。
ABP 是一個模塊化框架,啟動解決方案已經安裝了基礎模塊。在開始構建您的應用程序之前,最好先探索一下預構建的模塊功能。
- 前言
- 第一部分
- 第1章 現代軟件開發和 ABP 框架
- 企業級 Web 開發的挑戰
- ABP框架的能力清單
- 第2章 ABP框架入門
- 安裝 ABP CLI
- 創建新解決方案
- 運行解決方案
- 探索預構建模塊
- 第3章 逐步開發開發ABP應用
- 創建解決方案
- 定義領域對象
- EFCore和數據庫映射
- 定義應用服務
- 測試產品
- 產品列表
- 創建產品
- 編輯產品
- 刪除產品
- 第4章 探索 EventHub解決方案
- 應用介紹
- 架構探索
- 方案運行
- 第二部分
- 第5章 探索ABP基礎架構
- 了解模塊化
- 使用依賴注入系統
- 配置應用程序
- 實現選項模式
- 日志系統
- 第6章 數據訪問基礎架構
- 定義實體
- 定義倉儲庫
- EF Core集成
- 了解 UoW
- 第7章 探索橫切關注點
- 認證授權
- 用戶驗證
- 異常處理
- 第8章 體驗 ABP 的功能和服務
- 獲取當前用戶
- 使用數據過濾
- 控制審計日志
- 緩存數據
- 本地化用戶界面
- 第三部分
- 第9章 理解領域驅動設計
- 介紹 DDD
- 構建基于 DDD 的 解決方案
- 處理多個應用程序
- 了解執行流程
- DDD的通用原則
- 第10章 領域層 Domain
- 領域事件案例分析
- 聚合和實體的設計原則和實踐
- 實現領域服務
- 落地存儲庫
- 構建規約(Specification)
- 領域事件
- 第11章 應用層 Application
- 落地應用服務
- 設計 DTO
- 理解各層的職責
- 第四部分
- 第12章 MVC/Razor 頁面
- 主題系統
- 綁定和壓縮
- 導航菜單
- Bootstrap標簽助手
- 創建表單并驗證
- 使用模態窗口
- 使用JS API
- 調用HTTP API
- 第13章 Blazor WebAssembly UI
- 什么是Blazor
- ABP Blazor UI
- 驗證用戶身份
- 理解主題系統
- 使用菜單
- 使用基本服務
- 使用UI服務
- 消費HTTP API
- 使用全局腳本和樣式
- 第14章 HTTP API 和實時服務
- 構建HTTP API
- 使用HTTP API
- 使用SignalR
- 第五部分
- 第15章 落地模塊化
- 理解模塊化
- 構建支付模塊
- 安裝模塊
- 第16章 實現多租戶
- 理解多租戶
- 多租戶基礎設施
- 使用功能系統
- 何時使用多租戶
- 第17章 構建自動化測試
- 了解ABP測試基礎設施
- 構建單元測試
- 構建集成測試