ABP Framework V4.4 RC 新增功能介绍
新增功能概述
?啟動模板刪除?EntityFrameworkCore.DbMigrations?項(xiàng)目?CMS-Kit 模塊新增?動態(tài)菜單管理?功能?對象擴(kuò)展管理系統(tǒng)新增兩個(gè)擴(kuò)展方法:MapEfCoreDbContext?MapEfCoreEntity,分別對 數(shù)據(jù)上下文和實(shí)體 自定義映射配置。?文本模板系統(tǒng)新增 Razor 模板引擎 支持。?ABP CLI 新增3個(gè)命令:abp install-libs?abp prompt?abp batch?。
關(guān)注?ABP Framework?最新開發(fā)進(jìn)度,后面還會陸續(xù)發(fā)布新功能詳解、新功能示例等系列文章,敬請關(guān)注!?ABP Framework 研習(xí)社(QQ群:726299208)?專注 ABP Framework 學(xué)習(xí),經(jīng)驗(yàn)分享、問題討論、示例源碼、電子書共享,歡迎加入!
啟動模板刪除?EntityFrameworkCore.DbMigrations?項(xiàng)目
在這個(gè)版本中,對應(yīng)用程序的啟動解決方案模板做了一個(gè)重要改變:
原模板解決方案包含?EntityFrameworkCore.DbMigrations?項(xiàng)目,該項(xiàng)目中包含?單獨(dú)的DbContext類,負(fù)責(zé)數(shù)據(jù)庫遷移。
在v4.4版本中,我們決定從解決方案中刪除了這個(gè)項(xiàng)目。在新的解決方案結(jié)構(gòu)中,將?EntityFrameworkCore?項(xiàng)目用于數(shù)據(jù)庫遷移。
除了使?DbContext?統(tǒng)一外,使用了新的ReplaceDbContext屬性,替換了IIdentityDbContext和ITenantManagementDbContext接口,以使這些模塊能夠輕松地對倉儲進(jìn)行連接查詢。
CMS-Kit 動態(tài)菜單管理
CMS Kit是一系列可重用 CMS 系統(tǒng)功能模塊。當(dāng)前版本添加新功能:動態(tài)添加菜單,可以導(dǎo)航到任何頁面或Url。
CMS Kit 管理頁面?/Menus?進(jìn)行菜單管理。
發(fā)布網(wǎng)站顯示菜單
截圖使用的是 ABP Commercial 版本,此功能同時(shí)包含在 ABP Framework CMS Kit 應(yīng)用模塊中(主題不同)。
Razor引擎對文本模板的支持
文本模板[1]是通過使用模型(數(shù)據(jù))和模板在運(yùn)行時(shí)生成內(nèi)容的系統(tǒng)。它是在Scriban[2]模板引擎上運(yùn)行的。從這個(gè)版本開始,模板引擎我們有了第二個(gè)選擇:可以使用熟悉的 razor 語法來構(gòu)建和渲染模板。參見文本模板Razor集成[3]文檔,開始使用新的引擎。
DbContext/Entities 新的定制點(diǎn)
ObjectExtensionManager.Instance中增加了兩個(gè)新的擴(kuò)展方法:?MapEfCoreEntity?MapEfCoreDbContext,以重寫預(yù)建應(yīng)用模塊[4]的 EF Core 映射。
示例:更改?IdentityDbContext?的映射以重寫?IdentityUser?實(shí)體的映射
ObjectExtensionManager.Instance.MapEfCoreDbContext<IdentityDbContext>(modelBuilder => {modelBuilder.Entity<IdentityUser>(b =>{b.ToTable("MyUsers");b.Property(x => x.Email).HasMaxLength(300);}); });啟動模板包含?YourProjectNameEfCoreEntityExtensionMappings?類,用來添加上述代碼。
ABP CLI 新命令
ABP CLI在v4.4引入新命令:
?abp install-libs命令用于 MVC/Razor Pages和 Blazor Server 應(yīng)用程序,用于恢復(fù)?wwwroot/libs?文件夾。之前我們是通過運(yùn)行?yarn?和?gulp?命令來恢復(fù)該文件夾。雖然?install-libs?命令仍然使用?yarn(如果有的話,如果沒有呢?),但不再需要使用?gulp?了。?abp prompt命令可以用來打開 ABP CLI 的提示,并運(yùn)行多個(gè)命令,而不需要每次都指定 abp 命令。例如,如果你運(yùn)行abp prompt,那么你可以直接運(yùn)行install-libs而不是abp install-libs。使用exit來從?ABP提示符?中退出。?abp batch命令可用于用一個(gè)命令運(yùn)行多個(gè)ABP命令。準(zhǔn)備一個(gè)文本文件,將每個(gè)命令寫成一行(沒有abp命令前綴),然后執(zhí)行abp batch <batch-file>,比如:abp batch your_commands.txt命令來執(zhí)行該文件中的所有命令。
新增 appsettings.secrets.json 配置文件
在啟動模板中添加了?appsettings.secrets.json?配置文件,用來保護(hù)你的敏感/機(jī)密配置信息。在源碼控制中忽略這個(gè)文件(如果你使用git,通過添加到.gitignore),并且只在開發(fā)和部署環(huán)境中保留它。
ABP Framework 其他改進(jìn)
?#9350?提取了IRemoteServiceConfigurationProvider以獲得遠(yuǎn)程服務(wù)配置。可以替換該服務(wù)實(shí)現(xiàn)從任何來源獲得配置。?#8829?為分布式事件總線實(shí)現(xiàn)了錯(cuò)誤處理和重試。?#9288?在啟動模板中使用默認(rèn)的CORS策略,而不是一個(gè)命名策略。建議更新自己的方案,使之更簡單。?框架和模塊的本地化提供:印度語、意大利語、芬蘭語、法語和斯洛伐克語。
除此以外,還有很多改進(jìn)和錯(cuò)誤修復(fù)。請參閱4.4-預(yù)覽里程碑[5],了解該版本修復(fù)的所有問題和合并的推送。
項(xiàng)目中需要用到工作流,可以看看這篇文章:《基于 ABP Framework 使用 Elsa 工作流》[6]
發(fā)布免費(fèi)電子書:《Implementing Domain Driven Design》
六月初,為ABP社區(qū)出版了一本免費(fèi)電子書。這是一本實(shí)施領(lǐng)域驅(qū)動設(shè)計(jì)(DDD)的實(shí)用指南。
中文版已翻譯完成,為了大家方便閱讀,整理成了電子書?《基于ABP Framework 實(shí)現(xiàn)領(lǐng)域驅(qū)動設(shè)計(jì)》中文完整版_v1.0_iEricLee譯
請入群:ABP Framework 研習(xí)社(QQ群:726299208)在共享文件中下載。
新主題預(yù)告:LeptonX Theme
即將發(fā)布新主題,命名為LeptonX。該主題適用于 ABP Framework(免費(fèi)精簡版)和 ABP Commercial(商業(yè)專業(yè)版)。大概要等幾周發(fā)布第一個(gè)版本。
重點(diǎn)介紹免費(fèi)精簡版?LeptonX-lite?,將包含專業(yè)版所具有的大部分基本功能和組件。
精簡版和專業(yè)版之間的一些區(qū)別:
?導(dǎo)航欄:移動標(biāo)簽導(dǎo)航欄只在專業(yè)版提供。在精簡版中,用一個(gè)漢堡包菜單替換。?頁面布局:精簡版將只發(fā)布側(cè)面菜單布局,未來可能發(fā)布更多的布局,因?yàn)榛A(chǔ)設(shè)施可使開發(fā)和替換布局變得容易。?主題顏色:在專業(yè)版提供不同顏色選項(xiàng)和在運(yùn)行時(shí)改變顏色的能力。精簡版使用暗色構(gòu)建。
詳細(xì)信息參看介紹文檔[7]
關(guān)于下一版本
下一個(gè)主要版本:5.0,將基于?.NET 6.0?,預(yù)計(jì)在2021年底發(fā)布。計(jì)劃將在RC版本之前發(fā)布多個(gè)預(yù)覽/Beta版本。有關(guān)5.0版本的計(jì)劃細(xì)節(jié),請參見路線圖[8]。
References
[1]?文本模板:?https://docs.abp.io/en/abp/4.4/Text-Templating
[2]?Scriban:?https://github.com/scriban/scriban
[3]?Razor集成:?https://docs.abp.io/en/abp/4.4/Text-Templating-Razor
[4]?預(yù)建應(yīng)用模塊:?https://docs.abp.io/en/abp/latest/Modules/Index
[5]?4.4-預(yù)覽里程碑:?https://github.com/abpframework/abp/milestone/52?closed=1
[6]?《基于 ABP Framework 使用 Elsa 工作流》:?https://community.abp.io/articles/using-elsa-workflow-with-the-abp-framework-773siqi9
[7]?介紹文檔:?https://volosoft.com/blog/introducing-the-lepton-theme-next-generation
[8]?路線圖:?https://docs.abp.io/en/abp/latest/Road-Map
總結(jié)
以上是生活随笔為你收集整理的ABP Framework V4.4 RC 新增功能介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单体系统如何拆分为微服务
- 下一篇: NLog源码解读——StringBuil