初識ABP vNext(2):ABP啓動模板

Tips:本篇已加入系列文章閱讀目錄,可點擊查看更多相關文章。html

前言

上一篇介紹了ABP的一些基礎知識,本篇繼續介紹ABP的啓動模板。使用ABP CLI命令就能夠獲得這個啓動模板,其中包含了一些基礎功能模塊,你能夠基於這個模板來快速開發。前端

開始

首先ABP CLI的安裝以及基本指令這些就不說了,官網上寫的很清楚。目前ABP的前端部分只支持ASP.NET Core MVC / Razor Pages和Angular,移動端支持React Native。vue

初學者建議跟着官網https://docs.abp.io/zh-Hans/abp/latest/Tutorials/Part-1?UI=MVC這個指引作一遍,體驗一下ABP開發的基本流程,雖然ABP開發流程幾乎都標準化了,照着官網的流程編寫代碼就能完成一個功能的開發,可是這個過程有些繁瑣,容易出錯。這裏推薦一個開源項目:https://github.com/EasyAbp/AbpHelper.GUI,這是一個ABP幫助工具,你只須要建立一個實體,剩下的代碼它均可以幫你生成。這個項目是https://github.com/EasyAbp下的一個子項目,EasyAbp是國內ABP愛好者建立的,裏面還有不少開箱即用的模塊,能夠關注一下。。。git

AbpHelper

使用AbpHelper來完成官網的例子很是容易,首先建立項目解決方案:github

AbpHelper提供了圖形化配置,自動幫咱們執行ABP CLI指令:數據庫

執行完成後,打開解決方案,先啓動Acme.BookStore.DbMigrator項目來初始化數據庫:ide

而後就能夠啓動Acme.BookStore.Web項目,這是APB啓動模板的默認界面:模塊化

接下來,在Acme.BookStore.Domain項目中建立Book實體,我直接從官網上覆制代碼。工具

public class Book : AuditedAggregateRoot<Guid>
{
    public string Name { get; set; }

    public BookType Type { get; set; }

    public DateTime PublishDate { get; set; }

    public float Price { get; set; }

    protected Book()
    {
    }
    public Book(Guid id, string name, BookType type, DateTime publishDate, float price)
        : base(id)
    {
        Name = name;
        Type = type;
        PublishDate = publishDate;
        Price = price;
    }
}

在Acme.BookStore.Domain.Shared項目中添加枚舉類BookType:ui

public enum BookType
{
    Undefined,
    Adventure,
    Biography,
    Dystopia,
    Fantastic,
    Horror,
    Science,
    ScienceFiction,
    Poetry
}

第一次使用須要安裝一下AbpHelper CLI:

選擇Generate CRUD,填入實體名稱和解決方案路徑,而後Execute便可:

生成代碼時可能會報這個錯(若是沒裝ef tools):

這時安裝一下ef tools就行了,dotnet tool install -g dotnet-ef

代碼生成完後,運行Acme.BookStore.Web項目:

使用默認用戶 admin/1q2w3E* 登陸系統,給admin角色分配BookStore相關權限:

而後就能夠看到book菜單了,包括基本的增刪改查界面:

至此就完成了一個基本功能的開發,AbpHelper確實很方便,他還有CLI版本,直接命令行操做。

模塊安裝

ABP的模塊化能夠實現插件式的開發,你能夠預先構建一些通用的模塊,好比日誌模塊,用戶模塊等等,當你之後須要時就能夠直接安裝到項目中。有一些由ABP社區開發和維護的開源免費的應用程序模塊,咱們能夠直接使用;好比我要使用官方的Blogging模塊,Blogging是用於建立精美的博客。

一樣使用AbpHelper來安裝:

安裝過程出了點小問題,提示找不到DbContext。。。不過不要緊,本身執行一下遷移命令就行。。。

Acme.BookStore.Web項目設爲啓動項,默認項目爲Acme.BookStore.EntityFrameworkCore.DbMigrations,而後執行:

Add-Migration AddedBlogging

Update-DataBase

接下來再次運行Acme.BookStore.Web項目,爲admin角色配置博客相關的權限:

而後就就能夠看到博客的相關功能:

Swagger:

固然,這些模塊不必定徹底符合你的要求,你可能須要稍做修改,ABP也容許你擴展實體,重寫服務包括重寫用戶界面,你能夠很方便的修改。這些後面再介紹,包括如何去開發這種模塊。。。

最後

EasyAbp上也有不少開源模塊,地址是:https://github.com/EasyAbp/EasyAbpGuide,目前這些模塊的UI部分都只支持MVC/Razor Pages,不支持Angular之類的。。。固然模塊不必定非要UI,一些Framework級別的模塊就不須要UI。基礎部分就寫到這裏,主要仍是須要認真看下官網,而後本身動手練習一下。下一篇將進入vue+ABP實戰部分。

相關文章
相關標籤/搜索