Abp vNext发布v2.3!
在全球范圍內(nèi)病毒籠罩的日子里,我們發(fā)布了ABP框架v2.3, 這篇文章將說明本次發(fā)布新增內(nèi)容和過去的兩周我們做了什么.
關(guān)于新冠病毒和我們的團(tuán)隊
關(guān)于冠狀病毒的狀況我們很難過.在Volosoft的團(tuán)隊,我們有不同國家的遠(yuǎn)程工作者在自己家里工作.從上周開始,我們已經(jīng)完全開始在家遠(yuǎn)程工作,包括我們的主要辦公室的員工.
我們相信并祈禱人類會在很短的時間內(nèi)克服這個問題.
關(guān)于發(fā)布周期
從ABP v2.1.0開始,我們開始每兩周的周四發(fā)布功能版本.本次是該決定后的第3次發(fā)布,我們看到這種方式目前運轉(zhuǎn)良好,并提高了我們的靈活性.
我們將繼續(xù)每兩周發(fā)布功能版本(如v2.4,v2.5).另外,如果需要我們會隨時發(fā)布熱修復(fù)版本(如v2.3.1,v2.3.2).
ABP框架v2.3.0新增內(nèi)容
我們已在這兩周的開發(fā)周期內(nèi)通過393次提交完成和合并了 104個issue和pull request.
我將介紹這個版本加入的一些新功能和改善.
React Native移動應(yīng)用程序
我們終于完成了react native移動應(yīng)用程序.目前,它可以讓你登錄,管理用戶和租戶.它利用ABP框架相同的設(shè)置,授權(quán)和本地化系統(tǒng).
應(yīng)用程序的一些截圖:
它沒有太多的功能,但它是你的移動應(yīng)用程序一個完美的起點,因為它是完全集成到后端并支持多租戶.
Angular TypeScript代理生成器
從我們的Angular應(yīng)用程序中調(diào)用服務(wù)器中的REST端點是很常見的.這種情況下,我們一般創(chuàng)建服務(wù)(在服務(wù)器上包含各個服務(wù)的方法)和模型對象(對應(yīng)服務(wù)器上的DTO).
除了手動創(chuàng)建這樣的與服務(wù)器交互的服務(wù)外,我們可以使用像NSWAG工具來為我們生成服務(wù)代理.但是NSWAG有以下幾個我們遇到的問題:
1.它產(chǎn)生一個大,單一的.ts文件;
2.當(dāng)你的應(yīng)用程序增長時,它變得太大了.
3.它不適合ABP框架的 模塊化方式.
4.它創(chuàng)建了有點丑陋的代碼.我們希望有一個干凈的代碼(就像我們手寫的).
5.它不能生成服務(wù)器端聲明的相同的方法簽名(因為swagger.json不能準(zhǔn)確地反映后端服務(wù)的方法簽名).我們已創(chuàng)建了公開服務(wù)器端方法約定的端點,來允許客戶端生成更好的客戶端代理.
因此,我們決定創(chuàng)建一個ABP CLI命令來自動生成typescript客戶端代理(#2222),用于在ABP框架中開發(fā)REST API.
它用起來很簡單.只需要在你Angular應(yīng)用程序的根文件夾運行以下命令
abp generate-proxy
它只會為你自己的應(yīng)用程序的服務(wù)創(chuàng)建代理.它(默認(rèn))不會為你使用的應(yīng)用程序模塊創(chuàng)建代理.有幾個選項.參見CLI文檔.
復(fù)合主鍵的CRUD應(yīng)用服務(wù)
CrudAppService是一個很有用的基類,用來為你的實體創(chuàng)建CRUD應(yīng)用服務(wù).不過,它不支持復(fù)合主鍵的實體. AbstractKeyCrudAppService是新開發(fā)的基類以支持復(fù)合主鍵的實體.更多信息請瀏覽文檔.
添加模塊的源代碼
應(yīng)用程序啟動模板帶有一些應(yīng)用模塊, 以Nuget和NPM包的方式預(yù)先安裝了 .
這樣做有幾個重要的優(yōu)點:
1.當(dāng)新版本可用時, 你可以 輕松地升級 這些模塊.
2.你的解決方案更干凈,這樣你就可以專注于自己的代碼.
但是,當(dāng)你需要對一個依賴的模塊大量定制時,就不如它的代碼在你的應(yīng)用程序中那么容易.為了解決這個問題,我們引入了一個ABP CLI的新命令, 在你的解決方案中用代碼替換Nuget包.用法很簡單:
abp add-module --with-source-code
該命令以源代碼方式添加模塊, 或者如果模塊已經(jīng)以包引用方式添加了, 則替換為源代碼.
建議在使用此命令前保存你的更改到源代碼控制系統(tǒng), 因為它會修改很多你的代碼.
此外,我們也創(chuàng)建了文檔來說明如何定制依賴的模塊而不改變它們的源代碼(見下面的部分).仍然建議以包的方式使用模塊,以便在以后可以輕松升級.
免費模塊的源代碼是MIT許可,所以你可以自由更改它們并添加到您的解決方案中.
切換到預(yù)覽版
ABP框架正在迅速發(fā)展,我們經(jīng)常發(fā)布新版本.不過,如果你想更緊密地追隨它,你可以使用每日預(yù)覽包.
我們創(chuàng)建了一個ABP CLI命令來輕松地為你的解決方案更新到最新的預(yù)覽包.在你的解決方案的根文件夾中運行以下命令:
abp switch-to-preview
它會修改所有ABP相關(guān)的NuGet和NPM包的版本.當(dāng)你需要時你也可以切換回最新穩(wěn)定版:
abp switch-to-stable
更多信息請瀏覽ABP CLI文檔.
文檔改進(jìn)
擴(kuò)展/定制依賴應(yīng)用模塊
我們創(chuàng)建了一個巨大的文檔來說明如何定制模塊依賴而不改變其源代碼.參見文檔.
除了文檔以外,我們已經(jīng)修訂了所有模塊(#3166),來使他們的服務(wù)更容易擴(kuò)展和定制.
1.EF Core遷移指南
最近,我們創(chuàng)建了一個指南,說明ABP啟動模板所使用的遷移系統(tǒng). 該指南還介紹了如何定制遷移結(jié)構(gòu),拆分你的模塊跨多個數(shù)據(jù)庫,復(fù)用一個模塊的表,等等.
2.從 ASP.NET Boilerplate遷移
如果你有建立在 ASP.NET Boilerplate的解決方案,我們創(chuàng)建了一個指南,試著幫助遷移你的解決方案到新的ABP框架上.
其他一些功能
1.框架
添加 IRepository.GetAsync和 IRepository.FindAsync方法(#3184).
2.模塊
當(dāng)創(chuàng)建新租戶時獲取管理員的密碼和電子郵件地址,租戶管理模塊(#3088).
集成Elastic全文檢索, 文檔模塊(#2901).
新的Quartz后臺工作者模塊(#2762)
3.示例
微服務(wù)演示添加多租戶支持(#3032).
所有的功能, 改善和BUG修復(fù), 請瀏覽發(fā)布說明.
下一步?我們未來幾個月的目標(biāo)如下:
完成文檔和示例,寫更多的教程.
使框架和現(xiàn)有模塊的更加可定制和可擴(kuò)展.
集成gRPC和為所有預(yù)置模塊實現(xiàn)gRPC端點(#2882).
為ABP框架創(chuàng)建Blazor UI, 并在所有模塊和啟動模板中實現(xiàn)它(#394).
為預(yù)置模塊添加新功能,并為ABP商業(yè)版創(chuàng)建新模塊.
更多細(xì)節(jié)請瀏覽GitHub里程碑.
總結(jié)
以上是生活随笔為你收集整理的Abp vNext发布v2.3!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET Core开发实战(第27课:定
- 下一篇: 如何创建一个自定义的`ErrorHand