咱們與來自世界各地的客戶合做,咱們發現許多客戶但願在他們的解決方案中實現相似的功能。咱們收集了一些最多見的請求,並建立了一個可重用的模塊,咱們但願與你們分享!git
歡迎您在應用程序中下載,使用,修改和分發這些模塊,以用於我的或商業應用程序。若是您決定使用這些模塊,咱們會詢問如下內容:github
這些模塊是使用XPO開發的,並非實體框架友好的。它們按原樣提供,不提供任何形式的擔保。咱們但願您會發現它們對您的解決方案有用。數據庫
目前,您能夠下載Visual Studio項目並將其包含在您的解決方案中。在模塊中引用它們,並像在任何其餘XAF模塊中同樣經過Module Designer包含它們。某些功能須要從DevExpress中包含其餘模塊,以下所示。express
若是您願意,能夠從GitHub上的Llamachant Framework(XAF)存儲庫中獲取它們框架
擴展功能 |
||
審計跟蹤查看 | Win和Web | |
審計跟蹤恢復(實驗) | Win和Web | |
跟蹤對象 | Win和Web | |
Singleton Business Objects | Win和Web | |
視覺組件 |
||
字體大小 | 只Win | |
標籤中的收集計數 | Win和Web | |
SVG皮膚調色板 | 只Win | |
工具欄選項 | Win和Web | |
列表視圖行處理選項 | Win和Web | |
刪除非聚合集合(連接和取消連接) | Win和Web | |
打開對象動做標題 | 只Win | |
摘要面板選項 | 只Win | |
平滑的啓動畫面加載 | 只Win |
許多人將審計跟蹤模塊添加到他們的解決方案中,但毫不容許用戶與之交互。在此模塊中,您能夠啓用該選項以從任何詳細信息視圖查看審計跟蹤。View Audit Trail操做在Tools容器中可用,併爲用戶提供一個包含完整審覈歷史記錄的彈出窗口。管理View Audit Trail操做的可見性有3個設置:None,All,UserSpecific。這些選項在Model文件的Options節點中可用。若是要使「審計跟蹤」操做特定於用戶,請在自定義用戶類上實現IAuditTrailUser接口。編輯器
咱們都有那個電話,其中一個用戶錯誤地刪除了一條記錄,須要回覆記錄。使用XPO的延遲刪除選項,記錄被標記爲已刪除而不是實際被刪除。惟一的複雜因素是對象之間的連接一般在刪除過程當中被清除。這可能致使數小時試圖追逐全部舊關係。使用此新模塊,您能夠快速搜索和還原已刪除的對象及其全部相關對象。這被認爲是實驗性的,因此首先備份你的數據庫。此模塊還須要完整審覈和有效的延遲刪除策略才能正常工做。咱們建議您將此做爲技術人員的最後手段 - 而不是用戶手中。在「模型文件」的「選項」節點中啓用此選項。ide
咱們但願將此功能視爲Audit Trail Junior。建立,修改和刪除信息直接存儲在對象表中的對象上,這樣您就能夠快速查看誰作了什麼。咱們建議您建立自定義Base對象並實現ITrackedObject接口。使用TrackedObjectHelper快速設置跟蹤對象的詳細信息。咱們將此做爲一個帶幫助程序的接口提供,所以您能夠輕鬆地將跟蹤添加到不從您本身的自定義Base對象繼承的對象。工具
咱們的客戶一般不會按名稱要求這些,但咱們將Singleton Business Objects添加到咱們建立的幾乎全部應用程序中。從本質上講,單例業務對象被設計爲一個只有一個的業務對象。這是一種直接在數據庫中存儲設置的好方法,能夠由最終用戶快速配置。咱們所作的是阻止顯示這些對象的列表視圖,而是向用戶顯示詳細信息視圖。咱們還阻止用戶建立或刪除這些對象。學習
要實現單例業務對象,請在對象上實現ISingletonBO接口。字體
咱們的客戶要求一種方法來增長應用程序字體大小。使用咱們的模塊,您能夠從「模型文件」中的「選項」節點啓用「字體大小」操做。您還能夠在名爲「字體大小」的「選項」下的新節點中定義新的字體大小。此解決方案僅適用於Win應用程序,由於Web修改將經過CSS完成。
這是咱們添加到全部應用程序的一個可視元素,由於它能夠幫助用戶理解和定位他們的數據。包含集合的任何選項卡組項將在選項卡名稱中顯示該集合中項的計數。若是集合中存在項目,此功能還提供了使選項卡標題變爲粗體的選項。在「模型文件」的「選項」節點中啓用這些選項。
DevExpress在其組件的第17版中引入了SVG外觀。咱們首先對「Bezier」主題的外觀印象深入,由於它很是乾淨,簡潔,並在對話框周圍吹噓一些漂亮的陰影。直到咱們閱讀了更多關於新SVG主題選項的內容,咱們才意識到在這個主題中隱藏了更多的主題選項。爲了解鎖這些新的Palette選項,咱們在DevExpress網站上提供了一個控制器,其中包含一些控制器的微小變化。選擇SVG主題後,默認狀況下可使用此操做。
若是要隱藏用戶的工具欄並阻止它們再次顯示,請在列表視圖上使用新的ToolbarVisible和AllowToolbarVisibilityToggle選項。若是將AllowToolbarVisibilityToggle設置爲false,工具欄將消失並再次顯示再次顯示的操做。
在某些狀況下,您不但願用戶從列表視圖中打開詳細信息視圖。咱們在模型中添加了一個選項以啓用此功能。嘗試在列表視圖的模型中設置AllowOpenDetailView選項。
咱們常常看到用戶刪除對象而不是在使用非聚合的集合時將其與集合取消連接。對於那些不熟悉聚合與非聚合集合的人,能夠這樣考慮:聚合集合是集合中的項目只能屬於包含集合的對象的集合。一個例子是客戶端上的聯繫人列表。非聚合集合是能夠將項目拉入或推回到項目池中的集合。例如,參加會議的工做人員名單。從視覺上看,Aggregated和Non-Aggregated集合之間的惟一區別是Link和Unlink操做的可用性。在功能上,它們的行爲不一樣,特別是在克隆和刪除過程當中。若是刪除具備聚合集合的項目,全部聚合項目也將被刪除。若是要克隆項目,還會克隆聚合集合中全部項目的副本。
防止在非聚合集合上刪除的選項能夠在2個位置設置:
雖然這是一個很是小的項目,但它常常出現。默認狀況下,OpenObjectAction的標題是「Open Related Record」。由於它位於功能區或視圖的工具欄中,因此咱們所談論的相關記錄並不老是很清楚。爲了解決這個問題,咱們更新標題以在選擇項目時顯示對象類型名稱。所以,若是您單擊「聯繫人詳細信息視圖」中的「客戶」屬性,則該操做將顯示「Open Client」。您能夠在模型文件中的「本地化」 - >「文本」 - >「OpenObjectWithCaption」項中更改標題格式。
在模型文件的「選項」節點中啓用ShowTypeNameInOpenObject選項以啓用此新標題更新。最後,若是您已經或須要建立本身的繼承自OpenObjectController的控制器,請將其更改成繼承自OpenObjectCaptionController。
所以,咱們常常發現本身試圖肯定列表視圖中有多少項,或列的總和是什麼,但爲了啓用網格頁腳(咱們稱之爲摘要面板),您必須進入模型而且爲該視圖啓用它。此選項容許您經過右鍵單擊列標題在網格中打開或關閉面板。目前,這些選項可用於網格列表編輯器和樹列表編輯器。能夠在「模型文件」的「選項」節點中或「模型文件」中的各個「列表視圖」節點上全局啓用這些選項。
品牌化應用程序老是一個好主意。建立啓動畫面有幾個選項,如DevExpress在文章如何使用自定義啓動畫面中所述。咱們一直傾向於在啓動畫面上添加Marquee Progress Bar,由於一個小動畫對最終用戶有很大的影響。咱們還但願提供有關加載過程當中發生的狀況的更新。爲了簡化此過程,咱們添加了CustomSplashScreen對象,您可使用該對象顯示自定義初始屏幕並經過平滑動畫接收更新。
要實現自定義初始屏幕:
文件類型:ZIP