abp框架和abp商業版v2.7已經發布.我們沒有為2.4,2.5和2.6發布部落格文章,所以這篇文章也將涵蓋這幾個版本中新增內容和過去的2個月裡我們完成了什麼.
之前說過我們已經開始每兩個星期發布乙個新的次要功能版本,一般在星期四.我們的目標是盡快提供新功能.
在過去的7-8週裡, 我們在1,300+次提交中完成和合併了數百個issue和pull request, 這只是abp框架的庫.每日提交的次數不斷增加:
abp.io平台正在快速增長,我們從社群獲取的貢獻越來越多.
在過去的幾個版本中,我們主要集中在以nuget/npm包使用現有模組時, 提供擴充套件的方法,
物件擴充套件系統允許模組開發者建立可擴充套件的模組並允許應用開發者更容易地定製和擴充套件.
例如,你可以這樣為identity模組的user實體新增兩個擴充套件屬性:
objectextensionmanager.instance
.addorupdate(options =>
);
也很容易為這些屬性定義驗證規則:
objectextensionmanager.instance
.addorupdateproperty(
"socialsecuritynumber",
options =>
);});
你甚至可以編寫自定義**來驗證屬性.它會自動適用於應用服務, 控制器或頁面的引數物件.
實體的擴充套件屬性通常儲存在資料庫表的乙個單獨的json格式的字段中,但是你也可以輕鬆地使用ef core對映配置該屬性為乙個表字段:
objectextensionmanager.instance
.addorupdateproperty(
"socialsecuritynumber",
options =>
);
請參見有關該系統的詳細資訊物件擴充套件文件.
volo.abp.texttemplating是v2.7.0中新加入的包.此前,volo.abp.emailing包也有類似的功能,但它的功能是有限的,實驗性質的並且和傳送郵件緊密耦合在一起.
新文字模板包允許你定義基於文字的模板, 可以很容易地本地化和重用.你可以定義布局模板並且與其它模板共享.
目前,我們正在使用它傳送郵件.乙個需要傳送郵件的模組通常定義了乙個模板.如:
}
}
這是乙個典型的密碼重置郵件模板.
為所有郵件使用相同的布局是乙個典型應用.所以,你可以定義乙個布局模板.這是框架自帶的標準的布局:
}
布局中應該有乙個}
區域用來呈現子內容(就像mvc中的renderbody()
).
最終應用程式可以很容易地通過覆蓋模板內容來自定義它.
每當你需要渲染模板時,提供模板名稱和model來使用itemplaterenderer
服務.詳情請參見文字模板文件.我們甚至還為abp商業版建立了ui(請參見下面的相關章節).
abp框架的異常處理系統會自動處理異常並且為客戶端返回相應的結果.在某些情況下,你可能希望每當異常發生時有乙個**.通過這種方式,例如,你可以傳送郵件或採取基於異常的任何動作.
只需要在你的應用程式中建立乙個從exceptionsubscriber
派生的類:
public class myexceptionsubscriber : exceptionsubscriber
}
更多資訊請參見異常處理.
在之前的發布中框架也有很多小的功能和改進.這裡列舉幾個:
abp商業版的目標是基於abp框架專案提供預構建的應用程式功能,**生成工具,專業的主題,先進的示例和高階支援.
我們正在並行工作於abp商業版與abp框架功能對齊,並提供更多的模組,主題選項和工具.
本節將介紹abp商業版這邊有哪些進展.
模組實體擴充套件系統是相對於物件擴充套件系統(上面介紹的)的乙個更高階別的api,並提供了一種簡單的方法來向現有實體中增加擴充套件屬性.乙個新的擴充套件屬性可以很容易地自動成為http api和使用者介面的一部分.
例如:向identity模組的user實體中新增socialsecuritynumber
objectextensionmanager.instance.modules()
.configureidentity(identity =>
);//...該屬性的其它配置});
新屬性可以輕鬆地本地化和驗證.目前,它支援原始型別,如字串,數字和布林型,但我們計畫新增更多高階場景(如導航/查詢屬性).
請參閱模組實體擴充套件指南來了解如何使用和配置的詳細資訊.
其他擴充套件點
還有其他一些預先定義的點來定製和擴充套件依賴模組的使用者介面:
請參閱自定義模組指南,以了解所有可能的方式來定製依賴模組.
我們在v2.7中推出乙個新的模組:文字模板管理.它基本上是用來在使用者介面上編輯文字/郵件模板(在abp框架2.7中加入的),並儲存更改到資料庫中.
當建立新工程時, 這個模組已經預裝了.
審計日誌ui模組現在顯示所有應用程式中的實體變更, 帶有屬性修改的細節.
當點選實體的動作選單時, 你還可以檢視實體的歷史資訊:
我們正在建立abp商業版更多高階的示例應用程式.其中乙個是簡易crm, 將在幾天內提供給商業客戶.
這是乙個簡易crm儀錶盤的截圖:
具有帳戶,聯絡人,產品組,產品,訂單等.
我們將繼續改善現有模組和建立新的模組.除了上面介紹的新的文字模板管理, 還有:
更多abp商業版和abp框架的模組,主題和工具選項正在開發中.
我們(volosoft - abp.io平台背後的核心團隊),在abp框架和abp商業版上花費幾乎相同的精力,我們認為abp.io平台是乙個整體.
abp框架提供了所有的基礎設施和應用程式的獨立框架功能,使你更具生產力,專注於自己的業務**,並實現軟體開發最佳實踐.它為你提供不重複作業的乙個明確和舒適的開發經驗.
abp商業版提供內建功能,主題和工具, 如果你的需求涉及到這些, 就可以節省你的時間.除此之外還有框架的高階支援和預構建模組.
ABP框架 嵌入資源
文件目錄 本節內容 新增到嵌入式資源管理器 使用嵌入式檢視 使用嵌入式資源 重寫嵌入檔案 簡介 abp提供了乙個易用的方式,在你的web應用裡嵌入razor檢視 cshtml檔案 和其它資源 css,js,img.檔案 你可以使用這個功能建立包含ui功能的外掛程式 模組.建立嵌入檔案 首先,我們應當...
ABP框架 1 1 ABP總體介紹 入門介紹
abp是 asp.net boilerplate project asp.net樣板專案 的簡稱。asp.net boilerplate是乙個用佳實踐和流行技術開發現代web應用程式的新起點,它旨在成為乙個通用的web應用程式基礎 框架和專案模板。asp.net boilerplate 基於ddd的...
abp及實戰框架概述
接觸abp也快一年了,有過大半年的abp專案開發經驗,目前專案中所用的abp框架版本為0.10.3,最新的abp框架已經到了1.4,並且支援了asp.net core。關於abp框架有哪些特性 有什麼好處我這裡就不講了。如果你對abp不太了解請先去 abp官網 了解或者參考我的學習之路裡面的鏈結。在...