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