初识ABP vNext(2):ABP启动模板
點擊上方藍字"小黑在哪里"關(guān)注我吧
AbpHelper
模塊安裝
前言
上一篇介紹了ABP的一些基礎(chǔ)知識,本篇繼續(xù)介紹ABP的啟動模板。使用ABP CLI命令就可以得到這個啟動模板,其中包含了一些基礎(chǔ)功能模塊,你可以基于這個模板來快速開發(fā)。
開始
首先ABP CLI的安裝以及基本指令這些就不說了,官網(wǎng)上寫的很清楚。目前ABP的前端部分只支持ASP.NET Core MVC / Razor Pages和Angular,移動端支持React Native。
初學(xué)者建議跟著官網(wǎng)https://docs.abp.io/zh-Hans/abp/latest/Tutorials/Part-1?UI=MVC這個指引做一遍,體驗一下ABP開發(fā)的基本流程,雖然ABP開發(fā)流程幾乎都標準化了,照著官網(wǎng)的流程編寫代碼就能完成一個功能的開發(fā),但是這個過程有些繁瑣,容易出錯。這里推薦一個開源項目:https://github.com/EasyAbp/AbpHelper.GUI,這是一個ABP幫助工具,你只需要創(chuàng)建一個實體,剩下的代碼它都可以幫你生成。這個項目是https://github.com/EasyAbp下的一個子項目,EasyAbp是國內(nèi)ABP愛好者創(chuàng)建的,里面還有很多開箱即用的模塊,可以關(guān)注一下。。。
AbpHelper
使用AbpHelper來完成官網(wǎng)的例子非常容易,首先創(chuàng)建項目解決方案:
AbpHelper提供了圖形化配置,自動幫我們執(zhí)行ABP CLI指令:
執(zhí)行完成后,打開解決方案,先啟動Acme.BookStore.DbMigrator項目來初始化數(shù)據(jù)庫:
然后就可以啟動Acme.BookStore.Web項目,這是APB啟動模板的默認界面:
接下來,在Acme.BookStore.Domain項目中創(chuàng)建Book實體,我直接從官網(wǎng)上復(fù)制代碼。
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:
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* 登錄系統(tǒng),給admin角色分配BookStore相關(guān)權(quán)限:
然后就可以看到book菜單了,包括基本的增刪改查界面:
至此就完成了一個基本功能的開發(fā),AbpHelper確實很方便,他還有CLI版本,直接命令行操作。
模塊安裝
ABP的模塊化可以實現(xiàn)插件式的開發(fā),你可以預(yù)先構(gòu)建一些通用的模塊,比如日志模塊,用戶模塊等等,當你以后需要時就可以直接安裝到項目中。有一些由ABP社區(qū)開發(fā)和維護的開源免費的應(yīng)用程序模塊,我們可以直接使用;比如我要使用官方的Blogging模塊,Blogging是用于創(chuàng)建精美的博客。
同樣使用AbpHelper來安裝:
安裝過程出了點小問題,提示找不到DbContext。。。不過沒關(guān)系,自己執(zhí)行一下遷移命令就行。。。
Acme.BookStore.Web項目設(shè)為啟動項,默認項目為Acme.BookStore.EntityFrameworkCore.DbMigrations,然后執(zhí)行:
Add-Migration AddedBlogging
Update-DataBase
接下來再次運行Acme.BookStore.Web項目,為admin角色配置博客相關(guān)的權(quán)限:
然后就就可以看到博客的相關(guān)功能:
Swagger:
當然,這些模塊不一定完全符合你的要求,你可能需要稍作修改,ABP也允許你擴展實體,重寫服務(wù)包括重寫用戶界面,你可以很方便的修改。這些后面再介紹,包括如何去開發(fā)這種模塊。。。
最后
EasyAbp上也有很多開源模塊,地址是:https://github.com/EasyAbp/EasyAbpGuide,目前這些模塊的UI部分都只支持MVC/Razor Pages,不支持Angular之類的。。。當然模塊不一定非要UI,一些Framework級別的模塊就不需要UI?;A(chǔ)部分就寫到這里,主要還是需要認真看下官網(wǎng),然后自己動手練習(xí)一下。下一篇將進入vue+ABP實戰(zhàn)部分。
總結(jié)
以上是生活随笔為你收集整理的初识ABP vNext(2):ABP启动模板的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 懂程序员的产品经理是什么样子?
- 下一篇: 关于Dapper实现读写分离的个人思考