內容
首先我們創建一個名為“Acme.PhoneBook”的項目。
本文檔是指南會同步開發您的項目。
我們建議你在開發之前准備備份下這份初始項目。
因為abpZero是基於abp的基礎框架衍生出的所以本文檔也是基於ABP的文檔作為標准開發的協同開發。 abp文檔鏈接
在閱讀本文檔之前, 建議先運行項目,並了解用戶界面。這將幫助您更好地理解此處定義的概念。最好是先看過ABP的文檔
解決方案結構(層)SOLUTION STRUCTURE (LAYERS)
當您創建並下載您的項目時,將通過一個解決方案結構如下所示 ︰
該解決方案中包含了6個項目類庫
-
Tests 文件夾中的 Tests類庫是一個測試項目包含了單元測試和集成測試。
-
Migrator Tools文件夾中的是遷移項目。它是一個控制台程序,可以執行數據庫遷移。
-
Application 應用程序項目包含應用程序邏輯 (如業務服務和 Dto)。
-
Core 核心項目包含領域層及類文件 (如實體和領域服務)。
-
EntityFramework EntityFramework 項目包含您 DbContext、 倉儲實現、 數據庫遷移和其他 EntityFramework 特定概念。
-
Web 項目包含了表現層 (如: JavaScripts,Css,以及視圖文件)
-
WebApi 項目包含了WebApi控制器,生成動態API。配合Swagger Ui生成可視化文件
Application 應用層說明
Asp.netZero 中包含了4個應用程序
- 基於MVC制作的前端:這個可以用來創建一個公共的web站點或者其他程序。
- 基於Angular制作的單頁面后台管理:需要使用用戶名和密碼才能登陸的應用程序。
- MVC搭建的多頁面后台管理:功能和Angular的單頁面功能基本一致,但是使用的技術為MVC和JQuery。
- 遷移:整個基於Codefirst來的,運行可以遷移數據庫
所以整個Application是基於兩個不同的體系結構制作的(SPA和MPA),你可以按照你自己的喜歡打造屬於自己的后台管理。你可以安全的從項目中刪除MPA或者SPA不會發生沖突。
多租戶
多租戶的使用可以輕松的構建Saas(Soft as a Service)翻譯為:“軟件即服務”,高大上的稱呼為“雲服務”。
使用此技術我們可以部署單個項目網站和單個/多個數據庫向多個客戶提供服務。每個租戶將有自己的角色、用戶和設置。
Asp.NetZero的代碼庫是默認開啟了多租戶貌似。如果我們正在開發單租戶項目,可以通過配置來禁用該功能。
- 當您禁用它的時候,所有的多租戶的功能將隱藏以及不可用。
- 如果你禁用了多租戶,將開啟單租戶,租戶名稱為“Default”。
啟用多租戶的話會有兩種類型的視角模式存在於項目中
- Host: 管理租戶和系統(俗稱上帝視角)
- Tenant(租戶): 使用程序功能的租戶。
ASP.NET Zero使用了 ABP的 (ASP.NET 樣板)“data filters”數據篩選器。
所以,當你正確的使用了"data filters"篩選器的接口來創建一個多租戶應用的話,ABP框架會自動隔離掉 租戶的數據信息。