XAF視頻教程來啦,已出7課


 
 
XAF交流學習群內的兄弟錄制了視頻,他沒有博客,委拖我發至博客園,希望能讓更多的開發人員受益.快速開發企業級應用的好工具!
 
 

 
 
 


 
 
XAF入門 07 報表設計
 
 
 

XAF優缺點介紹

 

一、一次編碼,多種平台同時使用

通過一次代碼編碼寫,可以同時產生四種項目:

1,Web項目(b/s)

2,win項目(c/s)

3,平板電腦(beta)

4,移動端(beta)

其中web/win是兩個項目,3,4都是web項目,只是使用了不同的適應界面可以在移動設備和平板電腦上進行瀏覽操作等。

在Sliverlight剛出現的一段時間內,XAF曾試圖支持Silverlight版本,不過由於HTML5的興起,微軟至今應該把Sliverlight放到角落里了,所以也導致了Dev公司不支持Sliverlight了。不過他們有些Sliverlight的控件。

WPF也算是不死不活的狀態,至少我看到的應用很少。VS除外,那是MS自己的東西:D

sliverlight如果沒有HTML5的出現,是個不錯的東西,太可惜了,HTML5的興起,又將我們拉回該死的javascript開發中來了。

二、數據庫支持

這應該是XPO的優點,支持14種數據庫,SqlServer,Oracle,MySql,DB2.....常見的庫都支持了。切換數據庫時,無需修改源碼,當然如果你開始用了Oracle並且手工調用了SQL語句,在sqlserver中肯定是不能正確執行的。

支持Entity Framework,雖然我不用這個,但是DEV還是支持了,可能是因為M$太強的原因吧。

三、國際化本地化支持

XAF支持多國語言版本,應用程序開發完成后,可以在應用程序模型中生成各種語言的本地化翻譯文件,這也算是高大上的支持了吧。

四、自動機制

•由領域對象開始
•自動建立數據庫
•自動建立界面
▫列表界面
▫詳細界面
▫搜索界面
•內置增刪改查,無需SQL編程
五、AOP應用
AOP是面向方面的應用,XAF中被應用到了極致,比如,系統內置的 保存按鈕,無論你有多少個業務對象,只要這一個保存按鈕,它們的行為是一致的,都是保存到數據庫的表中去,如果你需要修改保存按鈕的文字,只要在一個地方修改,整個系統中都變了。
 
模塊化應用:
假如我們開發一個Excel數據導入功能,同樣,我們可以應用於所有業務對象中去,做一次導入功能,所有地方立即使用。XAF內置了非常豐富的元數據,我們可以使來用。
 
控件的復用:
系統中有很多地方需要用到一個控件,比如時間選擇,XAF默認沒有這些控件時,我們可以開發出來,並可以設置為默認控件,例如應用到Timespan類型上去,只需一步,整個系統都會應用此控件。
 
XAF中有許多這樣的自動機制,能一次解決的,堅決不用做兩次,拒決重復,拒決復制。
 
六、元數據管理
 
元數據是指我們的程序中代碼自身的信息,比如類叫什么名字,它繼承自哪個類,實現了哪些接口,有哪些Attribute,有哪些屬性?
是在,在.net中,用反射可以取得到這些信息。在信息系統開發中,這個元數據會得到擴展,比如這個類將會在界面上顯示的文字是什么,填寫數據時有哪些要求,過濾條件是什么等等 。
你會說,這不就是我們自己寫的代碼嗎?
在XAF中這些信息也是需要維護的,我們在給客戶寫程序時是在幫助客戶管理他們的信息。他們是信息化水平提高了。但我們自己的代碼,自己的系統本身也是一個信息量龐大的需要管理的內容。我們如果不是處處考慮規划程序本身的內容,那后面亂做一團也是很正常的事情了。
看面向對象的軟件設計中,不正是使用了各種概念對這些內容進行了規划嗎?
於是有了一個名詞叫元編程,也是讓人着迷的東西。
 
那么元數據管理有什么用呢?它還是和AOP概念結合使用方顯功效的。
比如:我想讓所有擁有“名稱”屬性的類型,都在界面顯示為紅色,我們可以使用編程方式
復制代碼
foreach(var x in classes)
{
       if(x.members.contains('名稱')){
    var member = x.members["名稱"];
    member.backColor = Color.Red;
  }
}
復制代碼

 

這只是一段偽代碼,如果用傳統的開發方式,每個界面這樣操作一次,可能會產生很多錯誤吧,最大的問題是,我們需要那么笨的處理日常問題嗎?
我們為什么沒有簡單方法,節省出時間,不做那種無聊的修改呢?
另外,元數據也是可以擴展的,內置的沒有提供的,我們可以自己實現。 
 
七、DomainComponents技術
通常被XAF開發人員簡稱為DC技術,DC技術是使用接口定義業務邏輯對象的,在EF中,我們通常是用class來定義一個業務對象,使用接口來定義業務邏輯會更快更簡捷,我認為最大的一個好處是實現了多繼承,如:
復制代碼
public interface 客戶{
......
}
public interface 公司{
}
public interface 個人{
}
 
public interface 公司客戶:公司,客戶
{
}
public interface 個人客戶:個人,客戶
{
}
復制代碼

 

這樣是多么簡單,如果使用class,只支持單繼承,另一個接口中的內容,只能手工再次重復敲出代碼,那是多么無聊的事情。
有一點小小遺憾的是,DC技術還不支持泛型機制,如果以后能夠支持,那它是完美的。在一個進銷存系統中,單據無比多,但無非是出庫類,入庫類,不出不入庫類,這三種,然后就有了各種可以想出來的組合,組合出了N多張單據,我們若是使用了DC技術,天空瞬間晴朗了。
 
八、內置功能模塊
一、權限模塊:
1.支持業務對象級別的權限,增刪改查看權限。
2.支持字段級權限,某個字段可讀可寫。
3.支持行級權限,某個業務對象中某些條件的記錄是否有權限進行 刪 、改、查看
4.支持上述4種混合權限
5.支持角色,並支持角色嵌套,即,角色3=角色2+角色1
二、審記模塊
用於實現業務對象的變更的每個環境,創建時間、修改時間、刪除時間,修改內容,每個屬性從什么值變更為什么值,何人操作的。
生成的記錄相當多,不過可以選擇性記錄,或自定義。
 
三、 Business Class Library Customization Module 業務對象支持

這是基礎模塊了,實現了業務對象的無SQL CRUD操作。
四、圖表模塊
可以實現各種圖表的顯示,柱狀圖,餅圖之類的,如果你用過DEV的控件,你就已經看過它的效果圖了。
五、Clone Objct模塊
實現了業務對象的復制,這是一個小模塊。
六、Conditional Appearance Module Overview
 條件外觀模塊,非常常用的模塊,實現全局的控制控件是否可用,可見,顏色、字體等 。
七、FileAttachment Module,文件附件模塊
用於管理附件文件,可以傳到數據庫中,也可以個性化為文件系統。
八、HTML Property Editor
在業務對象中可以使用html編輯器。
九、Notifications Module
提醒模塊,像outlook一樣,到達某時間給出一個彈出提醒,可以選擇推遲或取消,可以在業務模塊中進行個性化。
比如,到時間提醒去聯系客戶,更新訂單等操作。
十、KPI模塊
績效考核模塊,工作的朋友應該都被考核過吧,是標准的模塊,可以提供一些圖表。
十一、Maps模塊
支持地圖的顯示,這個我還沒有用過,不過看起來還不錯。
十二、Pivot Chart Module
交叉數據分析表+圖表模塊,在Excel中有交叉數據透視分析表,因為樣子長得一樣,我就這么翻譯了。
這個確實相當強大,客戶可操控性很強,要什么數據統計結果,隨心所欲,當然,客戶要願意操作。
這個模塊同時帶了圖表顯示,可以將Pivot中的數據同時顯示成圖表,很直觀。
十三、Pivot Grid Module
和上面的一樣,只有Pivot表格的顯示。
十四、報表模塊
當前版本是15.2了,新的功能不斷在增加,以前的版本中我們一直在等很多很好的功能。比如報表模塊,以前只能在win中做報表設計,現在web中也有了報表設計器了。
相當高大上。
十五、Scheduler 模塊
和Outlook中的日歷一樣。
十六、狀態機模塊
做簡單審批流用的,還不錯。
十七、TreeListEditor 
樹形列表模塊,這個也很常用。
十八、驗證模塊
這個使用頻率是最高的,必填驗證,唯一驗證等 ,你能想到的都有了。當然也提代了擴展接口。
十九、View Variant
讓一個業務對象有多種是顯示方式,並可以快速切換。比如圖表界面切換成樹形視圖。
二十、工作流模塊
就是工作流了,當前只在winform下可用。
 
九、缺點
 
1.需要學習
2.體系龐大


免責聲明!

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



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