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