ABP框架v2.0 和 ABP商業版
ABP框架2.0版已經在本周公布.這篇文章解釋了為什么我們發布了一個搶先主版本,和2.0版本中的變化.
除了v2.0版本,我們很高興地宣布ABP商業版,這是建立在開源ABP框架的之上的一套專業的模塊,工具,主題和服務.
ABP框架V2.0
為什么2.0,而不是1.2?
本來在V1.1.2發布后計划發布1.2版.然而,有報告稱1.x版在Linux上有一些性能和穩定性問題,尤其是當應用程序部署在低配CPU和內存的Linux容器上.
我們深入研究了這一問題,並已查明問題的根本原因與攔截async
方法的實現有關.此外,也有一些 async
套sync
的用法影響了線程池的優化.
最后,在社區在大力協助下我們解決了所有的問題.但是,我們也有一些重要的設計決策導致了一些破壞性變更,因為語義版本,我們不得不改變框架的主版號.
大多數的應用程序不會受到破壞性變更的影響,或者只需要做一些微小的修改.
破壞性變更
刪除了一些同步的API
一些攔截器需要使用async
的API.當他們攔截sync
方法時,他們需要調用async
套sync
.這最終導致了async
套sync
的問題.這就是為什么我們刪除了一些同步的API.
當你需要在async
方法中調用sync
方法時, async
套sync
這種模式是C#
一個經典問題.雖然有一些解決方法,但是都有相應的缺點,並建議不要寫這樣的代碼.你可以在網上找到關於這一話題的許多文檔.
為了避免這個問題,我們已經移除:
如果你遇到了編譯錯誤,只需使用這些API的async
版本.
始終async!
從v2.0開始,ABP框架假設你以async
方式編寫你的應用程序代碼.否則,一些框架的功能可能無法正常工作.
建議你的所有應用服務, 倉儲方法, 控制器動作(ontroller actions), 頁面處理器(page handlers)都是async
.
即使你的應用服務方法並不需要是async
,也將其設置為async
,因為攔截器需要執行async
操作(授權,工作單元等).你可以在不調用async
的方法中返回Task.Completed
.
示例:
public Task<int> GetValueAsync()
{
//這個方法沒有任何async調用
return Task.CompletedTask(42);
}
上述例子通常並不需要是async
因為它不執行async
調用.然而,將它設置為async
,這樣可以幫助ABP框架運行攔截器時避免出現async
套sync的調用.
此規則不強制你寫的每一個方法都是async
.這樣並不好而且很乏味.只在攔截的服務上需要(特別是應用服務和倉庫方法)
其他破壞性變更
查看發行說明中的破壞性變更.他們中的大多數都不會影響你的應用程序代碼.
新功能
本次發布還包含一些新的功能和一堆改進:
- #2597 新的
Volo.Abp.AspNetCore.Serilog
包. - #2526
C#
客戶端代理的客戶端驗證. - #2374
async
后台作業. - #265 管理應用程序關閉.
- #2472
IdentityServer
模塊實現DeviceFlowCodes
和TokenCleanupService
.
功能,改進和BUG修復的完整列表, 請查看發布說明.
文檔
隨着v2.0的發布,我們也完成了一些缺少的文檔.在接下來的幾周內,我們將主要關注文檔和教程.
ABP商業版
ABP商業版是建立在開源ABP框架之上的一套專業的模塊,工具,主題和服務.
- 除了ABP框架免費和開源模塊之外, 提供專業模塊.
- 包含一個漂亮的UI主題, 具有5種不同的樣式.
- 提供ABP套件; 一個讓開發更具有生產力的工具. 通過配置實體屬性, 它可以在幾秒內創建全棧的CRUD頁面. 更多的功能陸續開發中.
- 為企業提供高級支持.
除了這些標准的功能,我們會將提供定制服務.更多細節請參見commercial.abp.io網站.
ABP框架 vs ABP商業版
ABP商業版不是付費版本的ABP框架.可以把它當作為專業公司提供的附加套餐.你可以用它來節省時間和更快地開發產品.
ABP框架將永遠是開源免費的!
一個原則是,我們創建的主要基礎設施作為開源產品, 然后銷售額外的預制應用程序功能,主題和工具.類似於ASP.NET Boilerplate和ASP.NET Zero產品.
購買商業版許可極大地節省你的時間和精力,你可以專注於自己的業務,此外也可獲得專門的和優先的支持.同時,你也在支持ABP核心團隊,因為我們花了大部分時間來開發,維護和支持開源的ABP框架.
有了ABP商業版,ABP現在變為一個平台.我們稱之為ABP.IO平台, 其中包括開源ABP框架和ABP商業版.
演示
如果你想知道ABP商業版應用程序的啟動模板是什么樣,你可以很容易地創建一個演示,並看到它的實際效果.該演示包括所有的預制模塊和主題.
下面是一張IdentityServer管理模塊UI的截圖:
這是一張來自使用material設計風格主題的演示應用程序的截圖:
價格
你可以創建無限個工程/產品, 銷售給無限個客戶, 部署在無限台服務器上, 不受任何限制. 定價主要是基於開發人員個數,支持等級和源代碼需求上.有三個標准包;
- 團隊許可: 包括所有的模塊,主題和工具.允許最多3個開發者開發產品.可購買額外的開發者許可.
- 商業許可: 允許下載所有的模塊和主題的源代碼.此外,默認包含了5個開發者許可.可購買額外的開發者許可.
- 企業許可: 在商業許可上, 提供無限的專屬支持.
請查看價格頁面了解詳細信息.除了標准包以外,我們也提供定制服務和定制許可.如有任何問題,請聯系我們.
許可比較
許可價格是根據開發者數量,支持等級和源代碼訪問而變化的.
源代碼
團隊許可證不包括預制模塊和主題的源代碼.以NuGet和NPM包的方式使用所有這些模塊.通過這種方式,你可以很容易地通過更新包的依賴得到新功能和bug修復僅.但是不能訪問其源代碼.所以不能嵌入模塊的源代碼到你的應用程序里,和隨意修改源代碼.
預制模塊提供一定等級的定制和擴展,並允許你覆蓋服務,UI部分等.我們正在努力使他們更加可定制和可擴展.如果你無需在預制模塊中做很大修改的話,團隊許可是你理想的選擇,因為它更便宜,並且可輕松獲得新的功能和bug修復.
商業和企業許可允許你在需要時下載任何模塊和主題的源代碼.它們使用與團隊許可相同的啟動模板,所以所有的模塊都默認使用NuGet
和NPM
包.但是,在需要的情況下,你可以從一個模塊中刪除包的依賴,並嵌入它的源代碼到你自己的解決方案中,然后完全定制它.在這種情況下,當一個新版本可用時, 升級模塊將不會那么容易.當然, 你不必升級!但是,如果你願意,你也可以使用一些合並工具或Git的分支系統來做到這一點.
許可周期
ABP商業版許可是永久的,這意味着你可以永遠使用它繼續開發應用程序.
但是,下面的服務周期為一年:
- 高級支持一年后結束.你可以繼續得到社區支持.
- 一年后將不會得到模塊和主題的更新.你可以繼續使用最后獲得的版本.甚至可以在主版本內得到BUG修復和改進.
- 你可使用ABP套件一年.
如果想繼續獲得這些好處,可延長許可期限.續訂價格比正常價格低20%.
NDC London 2020
與去年一樣, 我們是著名的軟件開發會議NDC London的合作伙伴! 去年, 我們開展了ASP.NET Boilerplate和ASP.NET Zero主題:
今年,我們將着重於ABP.IO平台(開源ABP框架和ABP商業版).我們的展位會是這樣的:
如果你參加會議,記得要參觀我們的展位.我們將很高興來談一談ABP平台的功能,目標和軟件開發.
你想見ABP團隊嗎?
如果你在倫敦, 而且想和我們喝杯咖啡的話, 在2月1日的下午@hibrahimkalkan和@ismcagdas會在那.
想見面就給info@abp.io寫個郵件 😃