序
本來以爲SmartClient Software factory(以下簡稱SCSF)已經發布了不短的時間了,在網上應該有不少它的資料,結構找了幾天還是失望了,網上的資料很少,而且多數好點的資料只有E文的。那也沒所謂了,關鍵是連E文的資料也是說的比較簡單,即使是MSDN也說的不是很好,最後還是隻能自己來研究,用了半個月左右的時間,終於對SCSF有一點了解了,這裏把一些例子寫下來,讓自己有個參考,也讓其他人可以提出點意見給我,由於水平有限,錯誤是難免的,希望各位牛人提出意見了,下面是準備瞭解的技術點,主要是針對準備開發的項目所去做的瞭解,其他更多的技術點暫時不研究了,這裏是後邊幾篇文章的例子,喜歡可以下載看看(SCSF實例):
|
名稱 |
解決問題 |
1 |
Shell/Shell Application |
主要解決視圖表現方式的統一風格問題 |
2 |
WorkItem/SmartPart |
主要解決業務邏輯的模塊化和插件化問題,以及符合MVC/MVP模式開發的要求 |
3 |
UIElement/ UIElement adapter |
依然爲了解決界面表現風格一致和UI擴展問題 |
4 |
Command |
主要解決在開發中對於對象事件委託的廣播問題,能讓一個事件在IOC容器中實現給多個對象共享的問題 |
5 |
Event Broker |
主要解決事件的發佈和訂閱功能 |
6 |
SmartPartInfo |
視圖的描述信息和SmartPart對應,Smartpart可根據不同的場景使用不同的Smartpartinfo,並且可以定義Smartpart的顯示屬性 |
7 |
Service |
這是CAB的基礎功能,包括一些基礎的服務還有可以進行服務的擴展等,主要解決項目中的隊列問題,離線處理問題,異步調用問題,調度問題,權限問題等等,所有這些問題都可以通過自定義來擴展或如果CAB或SCSF本身提供的話則直接使用都可 |
8 |
State |
相當於SESSION的功能,讓一些公用信息能在模塊或類之間進行傳遞,實現項目的狀態管理和多入口代碼執行需求 |
這裏要說明的是,SCSF的核心其實就是Composite UI Application Block(Cab),這些技術點就是經過SCSF封裝過的CAB的技術,這次先寫這8個技術點,後邊還會有一些其他的技術點(包括自定義WorkSpace等)在後續補上。好了,廢話少說,先說說第一個技術點吧:
SHELL描述和實例
Shell和Shell Application是一個外殼宿主程序,所有的模塊的調用和組合都是從這裏提供的接口開始的,在這裏我們可以定義好整個系統的視圖風格或根據不同的需求進行風格上的切換。如圖三所示,Shell已經把整個框架和結構都定義好了,而其他的模塊只要看具體位置放進去即可。下面我們通過一個實例來了解SHELL的建立方法。
圖三 Shell的結構關係圖
1. 利用SCSF建立一個解決方案:
圖2.2.1
圖2.2.2
命名爲SCSample,按確定。
SCSF會自動創建SOURCE部分的項目,同時定義了其中的SHELL,其中ShellForm爲表現視圖,ShellApplication則爲控制類,它繼承了已經過SCSF包裝後的抽象類SmartClientApplication 。 App.config和ProfileCatalog.xml爲兩個配置文件,其中我們只要關注後者即可。完成以後我們直接運行就可以看圖2.2.3:
圖2.2.3
當我們需要使用一個自定義視圖時,則可以通過創建Layout模塊來實現,創建Layout模塊:
圖2.2.4
圖2.2.5
圖2.2.6
Shell和Layout這兩部分基本不用進行代碼編寫。但需要在配置文件中進行設置,定義“Layout”部分,其他只需要對視圖進行編輯,讓後邊所有的模塊都以這種框架方式顯示即可。