ABP 框架提供一個預構建的應用程序啟動模板。有兩種方法可以使用此模板創建新解決方案(Solution)。
## 官網配置和下載
您可以直接從[https://abp.io/get-started](https://abp.io/get-started)創建和下載解決方案。在這個頁面上,如圖,您可以輕松選擇**用戶界面**(**UI**) 框架、數據庫提供程序和其他可用選項:

值得一提的是此頁面上的選項,不同的配置會影響到不同的架構、結構和工具。
* **Project name**是 Visual Studio 解決方案(`.sln`文件)的名稱,也是項目的根命名空間。
* 對于**Project type**,有兩個選項,如下所示:
* **Module**模板用于創建可重用的應用模塊。
* **Application**模板用于構建 Web 應用程序。
**模塊**模板的詳情將在\[*第 15 章*\] 使用模塊化中介紹。在這里,我選擇了**應用程序**模板,因為我想創建一個新的 Web 應用程序,我們將在下一章中使用它。
截止目前,有四個**UI 框架選項可用,如下所示:**
* MVC/Razor Page
* Angular
* Blazor WebAssembly
* Blazor Server
您可以選擇最適合您的應用要求。我們將在本書的*第 4 部分*,用戶界面和 API 開發中介紹**MVC/Razor 頁面**和**Blazor**選項。您可以在 ABP 的官方文檔中了解有關 Angular UI 的更多信息。在這里,我選擇**MVC/Razor Page**選項作為示例。
目前,有兩個可用的數據庫提供程序選項,如下所示:
* Entity Framework Core
* MongoDB
如果選擇**Entity Framework Core**選項,則可以使用 EF Core 支持的任何 DBMS。我在這里選擇了帶有**SQLServer**選項的 EF Core。
ABP 還提供基于**React Native**的移動模板,一個由Facebook 提供的流行**單頁應用程序**(**SPA**) 框架。這本書暫不涉及移動開發,所以我將其保留為**None**。
最后,如果您想將您的 UI 與**HTTP API**做物理分離,可以選中**分層選項**。在這種情況下,UI 將沒有直接的數據庫連接,它通過 HTTP API 執行調用。你可以將 UI 和 HTTP API 分開部署。這里我們使用單體架構而不是分布式系統,雖然ABP 也支持這種分布式場景。
當您選擇完這些選項后,ABP 會創建一個完全可用的生產級別的解決方案,您可以在此基礎上開始構建您的應用程序。如果您稍后想要更改選項(例如,如果您想要使用 MongoDB 而不是 EF Core),您應該重新創建您的解決方案或手動配置相關 NuGet 包,目前沒有自動更改這些選項的方法。
除了從網站下載您的解決方案,對于喜歡命令行工具的用戶來說,還有另一種方法。
## 使用 ABP CLI
您可以使用ABP CLI 中的`new`命令創建新的解決方案。打開命令行終端并在空目錄中鍵入以下命令:
```
abp new ProductManagement
```
`ProductManagement`是解決方案名稱。此命令默認使用帶有 EF Core 的 SQL Server LocalDB 和 MVC/Razor 頁面 UI 創建 Web 應用。如果我想指定選項,我可以重寫相同的命令,如下所示:
```
abp new ProductManagement -t app -u mvc -d ef -dbms SqlServer --mobile none
```
如果要指定數據庫連接字符串,也可以傳遞`--connection-string`參數,如下例所示:
```
abp new ProductManagement -t app -u mvc -d ef -dbms SqlServer --mobile none --connection-string "Server=(LocalDb)\\MSSQLLocalDB;Database=ProductManagement;Trusted_Connection=True"
```
我們現在擁有一個架構完善、可用于生產的解決方案`ProductManagement`。下一節將展示如何運行此解決方案。
- 前言
- 第一部分
- 第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測試基礎設施
- 構建單元測試
- 構建集成測試