程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> XAF應用開發教程(四)應用程序模型,xaf應用開發

XAF應用開發教程(四)應用程序模型,xaf應用開發

編輯:C#入門知識

XAF應用開發教程(四)應用程序模型,xaf應用開發


XAF是重量型框架,確實夠重量的,方方面面都做得規規矩矩。

如果看了前面三節,可能會認為,這N多的Attribute到底都是從哪裡來的?到底有多少這樣的Attribute?如果不夠用了怎麼辦?等著官方開發嗎?

好吧,我不是為了解決上面的這些問題的,從另一個角度來看一下我們的應用程序吧!

我們回過頭來看看解決方案中的項目都是做些什麼用途吧:

XAF的默認項目結構中,XCRMDemo.Module中寫了代碼,就會同時生成了web和win項目。

也就是說,上圖中的模塊是從上到下的繼承關系。

但實事上,做過開發的朋友都知道,web中顯示的textbox和win中顯示的textbox是完全不同的控件,一個是html支持的,一個是winform中的控件。

XAF只是把他們做成了同一個名稱的控件,讓類型與控件有了對應關系,但有些時候,Web下面和Win下面可能並沒有一個同樣功能的控件,比如我使用了第三方的控件Excel編輯控件,但我只找到了Win版本,沒有Web版本,這時,我們只能把控件擴展寫到XCRMDemo.Win.Module中去。

再來看看應用程序模型,展開XCRMDemo.Module項目,雙擊Model.DesignedDiffs.xafml文件,可以看到:

如果你是從上面章節中下載的源碼,請編譯一次ctrl+shift+B

可以看到,這裡可以控制著應用程序中的方方面面功能。

其中,ActionDesign,是對按鈕進行設置的,比如之前開發中使用過的New按鈕,Save,SaveAndClose等等。

假如我們想要開發的系統僅有中文,也可以直接在這裡修改進行漢化。

為了展示效果,我做個簡單的修改設置:

如上圖所示,我將Cancel的標題,即為在界面上顯示的文字修改為“取消”

並用同樣的方法將,Delete,New,Save等幾個按鈕都做修改。

可以看到已經有了變化。

 

Views:這個是使用頻率很高的結點,可以設置視圖的多數信息,布局,控件可用,按鈕隱藏等等 。

在XAF中,共有4種視圖類型:

列表視圖

詳細視圖

搜索視圖

DashboardView

其實在過去的章節中,除了DashboardView以外,我們都已經見過了。例如上圖就是列表視圖,點擊新建按鈕,出現的就是詳細視圖。

在客戶類中,點擊選擇客戶分類的彈出窗口,就是搜索視圖。

視圖都是根據業務模型推導出來的。也就是說,在BOModel中做的設置,將會生效於BOModel的視圖,舉例說明:

我們已經寫了客戶類,在界面上任何地方顯示的都是“客戶”這兩個字,下面我們把文字改成客戶信息。

看列表視圖效果:

看詳情視圖效果:

可以看出列表和詳細視圖經過一次修改都被改變了,這裡只是演示標題,看起來是非常簡單的,但如果要修改的是其他信息,這個過程其實是非常有用的,一次修改多處變化,不用像普通的開發一樣反復的修改很多次。

來再看看視圖的修改:

按圖上的路徑打開詳細視圖設置,可以看到右側的屬性設置窗口,其中包含了很多設置,AllowDelete\AllowEdit\AllowNew這些,可以直接控制視圖上的按鈕顯示情況。

此時修改Caption,則只會影響詳細視圖了。

 

BOModel是用於模型的設置,指我們建的類,客戶,業務對象,DomainObject這些名詞都對應著模型,只是叫法不同。

CreatableItems:這裡面的模型會在界面上出現一個下拉框,點擊後直接調用了新建功能,顯示出詳細視圖。

ImageSources:在導航菜單、各種視圖中,會使用到圖標信息,這裡列出了相關信息。

Localization:這裡列出了一部分需要本地化的內容。

NavigationItems:之前在代碼中使用過[NavigationItem("基礎信息")]這樣的Attribute,事實上它是指示此處的NavigationItems的創建,是個樹形結構,可以更直觀的進行操作修改出想要的結構。

Validation:可以看到系統中用到的所有驗證規則,這裡還沒有演示過,後續將在代碼中給出示例。

ViewItems:系統已經存在的編輯器與類型的對應關系,一般不會在這裡作修改。

 

QQ:4603528 QQ群:50185791

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved