[譯]ABP vNext介紹


譯者注

ASP.NET Boilerplate是.Net平台非常優秀的一個開源Web應用程序框架,在國內也有大量的粉絲.

近日, 本人在github上閑逛, 發現ASP.NET Boilerplate團隊又悄悄的建立了一個新項目: ABP vNext

從名稱可以看出來, 這是ASP.NET Boilerplate的下一代框架. 那么, 為什么要開發這個新框架? 之前的框架還會繼續維護嗎?

ASP.NET Boilerplate團隊的領導者hikalkan前幾天發布了一篇博客(使用的就是ABP vNext搭建的博客系統), 詳細的說明了這些問題.

本人將這篇文章翻譯過來, 共享給各位讀者粉絲. 全文使用Google翻譯+手工潤色, 不足之處, 請多包涵.

原文地址:https://abp.io/blog/abp/Abp-vNext-Announcement

轉載請注明原譯者(WAKU)和出處(https://www.cnblogs.com/waku/p/9708769.html)


ABP vNext介紹

介紹

過去的一段時間,我們正在設計一個新的主要版本的ASP.NET Boilerplate框架。現在,是時候與社區分享了。我們非常興奮,相信你也是。

命名

框架的名稱保持不變,除了我們將其僅稱為“ABP”而不是“ASP.NET Boilerplate”。因為,“Boilerplate(樣板)”會導致誤解,並沒反映出它是一個框架(而不是樣板代碼)。我們繼續使用“ABP”名稱,因為它是當前ASP.NET Boilerplate框架的繼承者,除了它是完全重寫的。

如何開始

我們已經創建了一個啟動模板。您可以從abp.io/Templates創建一個新項目並開始開發。欲了解更多信息,請訪問abp.io

為什么要完全重寫?

為什么我們花了寶貴的時間從頭開始重寫它而不是增量更改和改進。為什么?

ASP.NET Core

當我們第一次介紹ABP框架時,那是2013年(5年前)!那時候沒有.Net Core和ASP.NET Core,也沒有Angular2 +。ABP發布后,它們都是從頭開發的。

ASP.NET Core引入了許多內置解決方案(擴展庫),用於依賴注入,日志記錄,緩存,本地化,配置等。它們實際上獨立於ASP.NET Core,可用於任何類型的應用程序。

我們之前使用第三方庫和我們自己的解決方案來滿足這些要求。在它們發布后我們立即集成到ASP.NET Core功能中。但這是集成,而不是在這些擴展庫之上構建ABP框架。例如,當前的ASP.NET Boilerplate依賴於Castle Windsor進行依賴注入,即使它已集成到ASP.NET Core的DI系統中。

我們希望依賴這些新的擴展庫而不是第三方和自定義解決方案,這會改變框架的基本結構。

自身模塊化

雖然目前的ABP本身已經是模塊化的,並且包含許多包,但我們仍然希望將功能分解為更細粒度的nuget包。

例如,核心Abp包包含許多功能,如DDD類,審計,授權,后台作業,事件總線,json序列化,本地化,多租戶,線程,時間等......我們希望將所有這些功能拆分到各自的包中並使它們可選。

放棄對傳統技術的支持

是的,新的ABP框架將不支持ASP.NET MVC 5.x,Entity Framework 6.x和其他傳統技術。

這些傳統技術會由Microsoft維護,但不會再添加任何新功能。因此,如果您仍在使用這些技術,則可以繼續使用當前的ASP.NET Boilerplate框架。我們將繼續維護它,修復錯誤並添加新功能。

刪除對這些傳統庫的支持將提高我們的開發速度(因為我們目前正在復制我們的某些功能的工作)並專注於.Net Core和ASP.NET Core。

新的ABP框架將基於.net standard。因此,仍然可以在新的ABP框架中使用完整的.net framework或.net core。

目標

我們從社區學到了很多東西,並且有開發當前ASP.NET Boilerplate框架的經驗。新的ABP框架有着重要而令人興奮的目標。

應用程序模塊化

第一個目標是提供良好的基礎設施來開發應用程序模塊。我們將模塊視為一組應用程序功能,具有自己的數據庫,自己的實體,服務,API,UI頁面,組件等。

我們將創建一個包含免費和付費應用程序模塊的模塊市場。您還可以在市場上發布自己的模塊。更多信息即將推出。

微服務

我們正在設計新的ABP框架可方便的開發微服務並使它們相互通信。

我們正在設計應用程序模塊,以便它們可以作為微服務單獨部署,或者可以嵌入到單個應用程序中。

我們正在為此創建規范/最佳實踐文檔

主題和UI組合

新的ABP框架將基於最新的Twitter Bootstrap 4.x提供主題基礎設施。我們開發了一個僅使用普通Bootstrap 4.x樣式的基本主題。它是免費和開源的。我們還在開發高級和付費主題。

UI組合是主要目標之一。為此,主題系統將提供菜單,工具欄和其他可擴展區域,以允許其他模塊交互(contribute)。

ORM / 數據庫無關性和MongoDB集成

雖然當前的ASP.NET Boilerplate框架已經實現了ORM /數據庫無關的存儲庫(Repository)模式,但身份集成模塊(以Abp.Zero*命名的包)與EF以外的ORM一直運行的不太好。

使用新的ABP框架,最終目標是完全抽象的底層數據存儲系統和開發與EF Core無關的模塊。

我們將MongoDB作為第一級別的數據庫,並在沒有任何關系數據庫或ORM假設的情況下設計實體和存儲庫。

更多可擴展性

新的ABP框架為內置服務提供了更多的擴展點和覆蓋的能力。

一些功能

在本節中,我將介紹新ABP框架的一些令人興奮的新功能。

Bootstrap Tag Helpers

我們正在創建一個庫將twitter bootstrap 4.x元素/組件包裝到tag helper中。例:

<abp-card>
    <img abp-card-image="Top" src="~/images/my-dog.png" />
    <abp-card-body>
        <abp-card-title>Card title</abp-card-title>
        <abp-card-text>
            <p>
                This is a sample card component built by ABP bootstrap
                card tag helper. ABP has tag helper wrappers for most of
                the bootstrap components.
            </p>
        </abp-card-text>
        <a abp-button="Primary" href="#">Go somewhere &rarr;</a>
    </abp-card-body>
</abp-card>

“abp-*”標簽是ABP tag helper,用於簡化為Bootstrap 4.x編寫HTML。

動態表單

動態表單tag helper允許您為給定的模型類動態地創建表單。例:

<abp-dynamic-form abp-model="@Model.PersonInput" submit-button="true" />

輸出:

目前支持最常用的輸入類型. 更多類型正在開發中。

虛擬文件系統

虛擬文件系統允許您將視圖,頁面,組件,javascript,css,json和其他類型的文件嵌入到模塊程序集/包(dll)中,並在任何應用程序中使用。在應用程序中您的虛擬文件就像物理文件一樣, 完全的集成在ASP.NET Core中。

更多信息請參閱關於虛擬文件系統相關文檔

動態捆綁和壓縮系統

動態捆綁和壓縮系統運行在虛擬文件系統上,並且允許模塊以模塊化,動態和強大的方式創建,修改和交互捆綁包。一個例子:

<abp-style-bundle>
    <abp-style type="@typeof(BootstrapStyleContributor)" />
    <abp-style src="/libs/font-awesome/css/font-awesome.css" />
    <abp-style src="/libs/toastr/toastr.css" />
</abp-style-bundle>

這段代碼通過包含bootstrap(及其依賴項,如果有)和另外兩個css文件來動態創建一個新的樣式包。這些文件在生產環境中捆綁和壓縮,但將在開發環境中單獨添加。

有關更多信息,請參閱文檔

分布式事件總線(Distributed Event Bus)

在當前的ABP中,有一個IEventBus服務來觸發和處理應用程序內的事件。除了這個本地事件總線,我們還創建了一個分布式事件總線抽象(和RabbitMQ集成)來實現分布式消息傳遞模式。

動態C# HTTP客戶端代理

ABP已經為所有HTTP API創建動態JavaScript代理。該功能也存在於新的ABP框架中。此外,它現在可以為所有HTTP API創建動態C#代理。

未來的工作

上面提到的所有東西都已經開發出來了。但是,我們還有一些想法尚未着手。

單頁應用程序(Single Page Applications)

我們在設計新框架時考慮到了SPA這一點。但是,我們還沒有嘗試過任何SPA框架,我們還沒有為它准備一個啟動模板。

ASP.NET Boilerplate(當前版本)和ASP.NET Zero會如何?

我們有專門的開發和支持團隊積極致力於ASP.NET Boilerplate和ASP.NET Zero項目。這些項目有一個很大的社區,我們也從社區中獲得了貢獻。

我們將在很長一段時間內繼續為這些項目進行改進,添加新功能和修復錯誤。因此,您可以安全地繼續使用它們。

新的ABP可用在生產環境嗎?

還沒有。我們的第一個目標是使基本功能穩定,然后逐步完成其他功能。

我們會經常發布新版本,每個新版本都可能會有重大變化。我們將在發行說明中寫下重大更改。

我們目前將其定義為實驗性質。但我們希望這不會持續很長時間。我們無法確定一個准確的日期,請關注我們的發布。

包和版本控制

新的ABP框架將從v1.0開始,而不是遵循當前的ASP.NET Boilerplate版本, 以反映它是一個重寫的事實。

我們會經常發布它。你可以期待許多重大變化,直到v1.0。從v1.0開始,我們將注意不要在1.x版本中引入重大更改。

當前ABP的包名稱以Abp前綴開頭(如Abp.EntityFrameworkCore)。新的包名稱以Volo.Abp前綴開頭(如Volo.Abp.EntityFrameworkCore)。

我應該用哪一個?

如果您正在創建一個新項目,我們建議您繼續使用當前的ASP.NET Boilerplate框架,因為它非常成熟,功能豐富且可用於生產環境。

如果您願意接受重大變化並希望體驗新框架,那么您可以從新的ABP開始。我們不建議在臨近截止日期和在短期內上線的項目上使用它。

貢獻

就像當前的ABP框架一樣,您可為新框架做出貢獻。

  • 您可以發送代碼或文檔的拉取請求。
  • 您可以撰寫關於它的博客文章或教程。
  • 您可以嘗試並分享您的經驗。
  • 您可以提出改進和功能請求。
  • 您可以報告錯誤和其他問題。

聯系/鏈接

官方網站:abp.io
Github:github.com/abpframework
Twitter:@abpframework


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM