在學習和使用OpenExpressApp過程中,經常有人問我需要哪些準備知識。本篇我將介紹一下有哪些知識和文檔可供大家參考的。
使用OpenExpressApp必備知識
- 熟悉C#語言
- 熟悉物件導向
- 熟悉CSLA架構
學習OpenExpressApp內部實現必備知識
- 熟悉WPF
- 瞭解WCF
- 熟悉架構,如分層、MVC、領域模型、ORM等
- 對參考和使用的第三方架構有所瞭解
對於語言和WPF,以及架構設計在此就不說了。由於OpenExpressApp大部分都是借鑒和使用第三方架構和控制項,而通過理解這些內容可以更好的理解OpenExpressApp架構,所以下面我將重點介紹一下這方面的內容。在SVN的【OpenSource\Doc】目錄下有架構參考和使用的一些資料,大家可以先去看看。
應用程式框架:XAF
OpenExpressApp借鑒了XAF的部分思想,所以對XAF的主要架構和思想進行瞭解有助於更加快速的學習OpenExpressApp。在【OpenSource\doc】目錄下有一個XAF的協助文檔"eXpressAppFramework.chm",XAF產品網站上也有線上協助。大家可以先看看如下一些章節:
Overview
Fundamentals
Tutorial/Business Model Design
Cocepts/UI Construction
輕量級ORM:Lite ORM
OpenExpressApp使用了CodeProject上的一個輕量級ORM,在【OpenSource\doc】目錄下有一個文
檔"CodeProject Lite ORM library (v2)_ Free source code and programming
help.mht "可以看看。這個ORM相對來說比較簡單,看完之後基本上就能夠瞭解如何使用了,所以在此也就不多說了。
UI組合架構:patterns & practices: Composite WPF and Silverlight
OpenExpressApp使用了Composite WPF來作為C/S用戶端架構,在【OpenSource\doc】目錄下有一個協助文檔"Composite Application Guidance for WPF and Silverlight - February 2009.chm ",大家可以先看看如下一些章節:
Design Concepts
Technical Concepts\ Bootstrapper
Technical Concepts\UI Composition
Technical Concepts\ Module
Technical Concepts\ Shell and View
Technical Concepts\Event Aggregator
CSLA
Expert C# 2005 Business Objects中文版(第2版)是國內現在唯一一本CSLA的翻譯書籍,翻譯的還可以,不喜歡看英語的可以先看這本書籍,前面幾張概念性的和後面應用案例可以先看,具體架構實現代碼感興趣的話最好也看看。
Expert C# 2008 Business Objects是CSLA的最新版本書籍,主要包括了對.Net 3.5的支援,對於WCF和WPF的最好看看,屬性等章節也可以看看。
目前OpenExpressApp是建立的CSLA架構之上的,所以掌握CSLA是能夠用好OpenExpressApp的前提,所以大家需要對CSLA有一個較好的瞭解。
WPF命令模式實現:WPF Command-Pattern
OpenExpressApp使用了CodeProject上的一個WPF命令模式的實現代碼,在【OpenSource\doc】目錄下有一個文檔"CodeProject WPF Command-Pattern Applied_ Free source code and programming help.mht "可以看看。這個Command封裝了WPF的Command,使用起來相對簡單,OpenExpressApp內部的Command將會適配到它的Command來使用。
WPF樹形清單控制項實現
國內的軟體一般都有樹形清單控制項,但通過尋找發現基本上沒有很好的樹形清單控制項可以直接使用,而要從頭實現起來又很麻煩,最好在別人的基礎上進行組合或者修改。OpenExpressApp的樹形清單控制項現在相對來說已經比較完善,後面會單獨寫一篇博文介紹。架構實現時主要引用了以下兩個代碼:
- A Versatile TreeView for WPF
在【OpenSource\doc】目錄下有一個文檔"CodeProject A Versatile TreeView for WPF_ Free source code and programming help.mht",這個TreeView是重新實現的一個物件導向的樹,而OpenExpressApp的核心思想之一就是OO,所以看到它就仔細看了看,發現還比較適合,所以就直接拿來用了。
- A complete WPF TreeListView control
通過繼承TreeView and TreeViewItem來產生一個樹形列表樣式,上面的標題連結blog上可以下載它的代碼,這部分代碼已經合并在OpenExpressApp代碼裡面了
WPF DataGrid控制項
OpenExpressApp使用了微軟在codeplex上WPF Tookit的DataGrid,在【OpenSource\doc】目錄下有一個文檔"CodeProject WPF DataGrid Practical Examples_ Free source code and programming help.mht "可以看看。
其它
WPF Dock控制項
一個類似VS的泊靠UI控制項,在【OpenSource\doc】目錄下有一個說明文檔"CodeProject WPF Docking Library_ Free source code and programming help.mht",網上文章連結
wpfcontrib
AutoGrid、NotifyIcon、TaskDialog
WCF傳輸內容壓縮
源碼在【OpenSource】目錄下的CompactMessageEncoder_src.zip
ClickOnce部署資訊清單修改工具
源碼在【OpenSource】目錄下的ManifestManagerUtility.zip,部署說明可以參考文檔"Composite Application Guidance for WPF and Silverlight - February 2009.chm "。CodeProject也有一篇文章介紹
更多內容: 開源資訊系統開發平台之OpenExpressApp架構.pdf