ABP Framework V4.4 RC 新增功能介紹

原文鏈接:ABP Platform 4.4 RC Has Been Released

新增功能概述

  • 啟動模板刪除 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屬性,替換了IIdentityDbContextITenantManagementDbContext介面,以使這些模組能夠輕鬆地對倉儲進行連接查詢。

CMS-Kit 動態菜單管理

CMS Kit是一系列可重用 CMS 系統功能模組。當前版本添加新功能:動態添加菜單,可以導航到任何頁面或Url。

CMS Kit 管理頁面 /Menus 進行菜單管理。

image

發布網站顯示菜單

image

截圖使用的是 ABP Commercial 版本,此功能同時包含在 ABP Framework CMS Kit 應用模組中(主題不同)。

Razor引擎對文本模板的支援

文本模板是通過使用模型(數據)和模板在運行時生成內容的系統。它是在Scriban模板引擎上運行的。從這個版本開始,模板引擎我們有了第二個選擇:可以使用熟悉的 razor 語法來構建和渲染模板。參見文本模板Razor集成文檔,開始使用新的引擎。

DbContext/Entities 新的訂製點

ObjectExtensionManager.Instance中增加了兩個新的擴展方法: MapEfCoreEntity MapEfCoreDbContext,以重寫預建應用模組的 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 文件夾。之前我們是通過運行 yarngulp 命令來恢復該文件夾。雖然 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-預覽里程碑,了解該版本修復的所有問題和合併的推送。

項目中需要用到工作流,可以看看這篇文章:《基於 ABP Framework 使用 Elsa 工作流》

發布免費電子書:《Implementing Domain Driven Design》

六月初,為ABP社區出版了一本免費電子書。這是一本實施領域驅動設計(DDD)的實用指南。

中文版已翻譯完成,為了大家方便閱讀,整理成了電子書 《基於ABP Framework 實現領域驅動設計》中文完整版_v1.0_iEricLee譯

請入群:ABP Framework 研習社(QQ群:726299208)在共享文件中下載

新主題預告:LeptonX Theme

即將發布新主題,命名為LeptonX。該主題適用於 ABP Framework(免費精簡版)和 ABP Commercial(商業專業版)。大概要等幾周發布第一個版本。

重點介紹免費精簡版 LeptonX-lite ,將包含專業版所具有的大部分基本功能組件

精簡版和專業版之間的一些區別:

  • 導航欄:移動標籤導航欄只在專業版提供。在精簡版中,用一個漢堡包菜單替換。
  • 頁面布局:精簡版將只發布側面菜單布局,未來可能發布更多的布局,因為基礎設施可使開發和替換布局變得容易。
  • 主題顏色:在專業版提供不同顏色選項和在運行時改變顏色的能力。精簡版使用暗色構建。

詳細資訊參看介紹文檔

關於下一版本

下一個主要版本:5.0,將基於 .NET 6.0 ,預計在2021年底發布。計劃將在RC版本之前發布多個預覽/Beta版本。有關5.0版本的計劃細節,請參見路線圖

dotNET兄弟會-公眾號

專註.Net開源技術及跨平台開發!致力於構建完善的.Net開放技術文庫!為.Net愛好者提供學習交流家園!

image