前言: ABP框架經常在一些.NET群中聽群友提起,以前也瀏覽過官網,大致了解它是一個框架,直到今天本人才正式下載源碼入門 ...
經過兩個小時的ABP中文文檔入門(感謝各位辛勤的翻譯者) ,大致了解到 ABP框架提供了一些類似 Orchard的功能,如 日志,多租戶,事件總線,多語言等.
由於剛剛接觸ABP框架,下面來談談我對它的基本理解,不當之處敬請各位指正 :
Abp | Orchard | 作用 | |
項目定位 | 開發框架 | 內容管理系統(CMS)+開發框架 | |
基礎框架 | aspnetboilerplate(ABP.dll) (源碼) | Orchard.Framework | 兩者都不能獨立運行, 提供框架基礎架構 |
核心實現 | module-zero (源碼), 純庫,沒有UI實現部分,不能獨立運行 | Orchard.Core(核心模塊集合,里面的每一個文件夾均為一個模塊), 有UI實現. |
ABP提供常用的基礎功能,ABP有用戶,角色,多租戶,配置管理,Orchard有CMS相關的核心模塊 |
模塊生成 | module-zero-template(源碼),提供在線版. | Orchard.CodeGeneration(命令行) | ABP官網提供一個在線的模塊創建功能(地址),此生成器有兩個版本: 1.僅依賴核心ABP 2.依賴Module-Zero. ABP在創建模塊的時候並沒有提供輸入一些meta信息,而orchard可以. |
一直以來,很多.NET開發者都非常喜歡Orchard這個項目,但是部分有潔癖的開發者總是想方設法將它剝離成一個干凈的框架,如OrchardNoCms,
如今ABP可能是你最佳的選擇:
1 .ABP擁有非常類似Orchard的項目結構(筆者甚至認為ABP的靈感取自Orchard).
2. 功能上也提供與Orchard同等的特性, 如多租戶,模塊,日志,用戶,角色,授權等.
3. ABP沒有附帶任何額外的業務代碼, 用戶與角色這樣核心功能也在是Zero模塊中實現 ,如果你不喜歡可以不用.
利用ABP框架進行二次開發,如果不關注框架本身,直接使用線上的地址生成模塊下載到本地, 再用nuget下載 Abp.dll和 Abp.zero.dll(可選)及其它三方依賴就可以直接開發Web應用程序.
ABP框架為企業用戶提供一個付費的后台管理實現 : aspnetzero(地址,$699,$1699,$2799 三種license) , 利用這個增值模塊, 你可以擁有一套基於Bootstrap的后台管理UI來管理多租戶及用戶角色等基本信息,當然你也可以使用它開發其它功能.
好了最后再說一句:
Abp尚在主力開發期,截止目前還未到達1.0版,接口變更很頻繁,如果用於產品環境將要面臨升級與不升級的糾結中!
如果你非侵入式的進行ABP二次開發,升級時改動略小, 如果是侵入式的,那么升級將是非常痛苦的事情!
Orchard是一個經歷6年的項目,由微軟ASP.NET小組成員主刀, 目前進入主力維護優化期,接口非常穩定,而且使用Orchard開發,可以盡可能的非侵入(本人一直是非侵入堅持者),
模塊間並不需項目依賴,即使需要調用另一個模塊的方法(模塊通信),也可以使用Orchard強大的事件總線實現!
下面來一張ABP架構簡圖