程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Composite Application Guidance for WPF(1)--概覽

Composite Application Guidance for WPF(1)--概覽

編輯:關於.NET

什麼是Composite Application Guidance for WPF(以下簡稱Prism)

我們想象一下,在復雜的企業級開發中,我們的開發規模非常的大,以至於我們需要將其分解成多個小的模塊,以便分發給不同的人,甚至是在不同地方的團隊分別進行開發和測試,最後我們在將這些相對獨立的模塊集成起來形成一個完整的應用。所以我們需要找到一種方法來幫助我們劃分和組織這些模塊,以使他們相對獨立(低耦合),當然,我們也需要找到一種較好的方式讓模塊之間進行通訊。

這個問題最早被CAB所關注(如果你不了解CAB/SCSF,可以參考這裡或這裡,如果你不了解Composite Application,可以參考這裡),但稍稍了解一下CAB,我們會發現事實上其是為Windows Forms開發所設計的,不能很好地支持WPF。可能有人會說其能找到某些方法讓WPF在CAB框架中運行得不錯,的確,這我很了解,因為我現在手頭的項目便是這麼干的。但我要說的是,將拖拉機改造成跑車也許也能Work,但它畢竟還是拖拉機,其優勢在於收割小麥而不是載著你去參加聚會。

於是,從今年年初開始,P&P 小組就開始為WPF尋找一種Composite Application方案,其類似於CAB(但不是CAB的for WPF版本),於是便有了我們這裡要討論的Composite Application Guidance for WPF (Prism)

與CAB的區別

其實,剛開始接觸到Prism的時候,我也以為其是CAB的WPF版本,但後來發現:不是。其是為了WPF實現Composite Application而全新打造的Composite UI Framework,Prism官方文檔中是這樣說的:(英文原文在這裡,我為大家簡單翻譯一下,別見笑,我的英文不好,嘿嘿):

這並不是CAB的一個新版本,而是一個全新的從頭開始打造的開發庫和開發指南,目的在於幫助你開發新的WPF Composite application,雖然說其不是CAB的新版本,但,其借用的CAB的一些核心概念,比如Modularity,UI Composition,Services,Dependency injection(依賴注入),以及Event brokering等,這樣概念是打造Composite Application和Prism所必需的。之所以要這樣做(打造一個全新的框架)是由於以下幾個原因:

l  Prism匯集了大量用戶反饋:這些年來,P&P Team收到了很多很好的關於CAB的反饋,有積極的也有消極的。很多反饋說其太重量級,太復雜,太緊耦合,並且很難搞定。並且customers expressed a need for an approach that allows incremental adoption of the library and to work with existing libraries. The patterns & practices team determined that the best way to address the concerns and tackle the new ideas was with a clean break.

lCAB並不支持WPF。盡管你可以找到一些方法來上WPF在CAB上Work,但,CAB並不是建立在發揮WPF核心優勢基礎之上的。事實上在很多情形下,CAB引入的許多機制恰恰原產於WPF,比如說WPF是一attached property來實現UI Composition就是比目前CAB中的一下方式更輕量級些。另外,WPF天生就是與Windows Forms不同的模式,其比起傳統的使用控件的方式而言有著更多更靈活的方式來組合你的UI,WPF也引入了一些諸如模板(Template)的方式來控制你的界面繪制。

lCAB依賴於Windows Forms 開發經驗,而WPF的開發卻有著不通的模式(關於WPF開發模式的內容就不翻譯了哈,可以參考我的這篇文章)

我該何去何從:

很簡單,可以參考下面的建議:

如果你需要開發一個Composite Windows Forms Application,那麼可以考慮CAB/SCSF

如果你需要開發一個Composite Windows Forms Application,但又想在上面使用一些WPF內容,那麼可以考慮CAB/SCSF 和 WPF interop

如果你需要遷移一個已存在的Composite Windows Forms Application到WPF,可以考慮CAB、SCSF和Smart Client Contrib(這可以創建WPF的View)

如果你想開發一個Composite WPF Application或者將一個已存在的WPF項目升級到Composite WPF Application,那麼你可以考慮使用本文所介紹的Composite Application Guidance for WPF

Prism環境與資源下載

Downloads Composite Application Guidance for WPF

Composite Application Guidance for WPF Documentation (also included with the above download)

Related Download ManifestManagerUtility for ClickOnce Getting Started Getting Started with the Composite Application Guidance

Overview

Stock Trader Reference Implementation

QuickStarts

Hands-On Lab

Community Feedback and Support CodePlex Community Site License End User Licensing Agreement (EULA)
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved