久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Prism研究(for WPF & Silverlight) 1

 nikybook 2015-07-07

Prism研究(for WPF & Silverlight)

目錄

一. Prism概述

二. Prism評(píng)估

三. Prism文檔導(dǎo)讀

四. 從Hello World開(kāi)始

五. Prism中的術(shù)語(yǔ)和概念

六. Prism中的模式

七. Module

八. View

九. Event

十. Command

十一. Service

十二. Multi-Target

十三. Acceptance Test

十四. 自定義活動(dòng)

十五. RI源碼分析

十六. UI設(shè)計(jì)規(guī)則

十七. 部署和發(fā)布

十八. CodePlex問(wèn)題匯總

 

一.Prism概述

Prism是Composite Application Guidance for WPF的簡(jiǎn)稱(chēng),,是用于WPF和Silverlight的企業(yè)級(jí)框架,,由微軟P & P(patterns & practices)小組設(shè)計(jì)。

Prism不是橫空出世的,,它的前身是CAB——這是專(zhuān)門(mén)為Winform開(kāi)發(fā)而設(shè)計(jì)的框架,。后來(lái),在2008年6月,,P & P小組推出了Prism的第1個(gè)版本,,專(zhuān)為WPF而設(shè)計(jì)的。而在2009年2月,,則推出了Prism的第2個(gè)版本,,同時(shí)適用于WPF和Silverlight,也就是我這個(gè)系列所要探討的,。

Prism安裝

Prism只是由幾個(gè)dll組成,,對(duì)WPF而言是6個(gè),對(duì)Silverlight而言是5個(gè),。因此使用者不需要額外安裝項(xiàng)目模板到VS2008中,,只要在項(xiàng)目中添加對(duì)它們的引用即可。

以下是使用Prism所需要的相關(guān)資源:

1. 下載Prism框架

下載地址:http://www.microsoft.com/downloads/details.aspx?FamilyId=6DD3D0C1-D5B4-453B-B827-98E162E1BD8D&displaylang=en

這是一個(gè)綠色的包,。所以安裝后,,會(huì)解壓到一個(gè)用戶(hù)指定的目錄(我指定的名字是PRISM,放在桌面上),,截圖如下:

image

目錄下都是些蝦米東東呢,?

· CAL中是Prism框架的源碼——理解Prism的最重要的參考。

· LIB中是CAL中Prism框架源碼Build生成的dll,,也就是產(chǎn)品。用戶(hù)可以直接把這個(gè)項(xiàng)目下的dll添加引用到自己的項(xiàng)目中,,就能使用Prism框架了,。

· QuickStart,這是一組快速上手的Demo,。從HelloWorld開(kāi)始,,還涉及到Module、View,、Event,、Commond和Multi-Target等5大類(lèi)10多個(gè)小例子。

· RI是一個(gè)成熟的虛擬股票交易程序的源碼,,有WPF和SilverLight兩個(gè)版本,。

· ChartControls是RI所引用到的自定義控件(如餅圖)。

· AcceptanceTestLibrary目錄是Acceptance Test(驗(yàn)收測(cè)試)這個(gè)dll的源碼,。后面我們會(huì)提及什么是Acceptance Test以及如何使用,。

· 所有的bat文件都指向QuickStart,、CAL和RI中的.sln文件,也就是說(shuō),,是打開(kāi)各個(gè)項(xiàng)目的快捷方式,。

2. 下載Prism文檔

在上面的安裝包中其實(shí)就應(yīng)該有這個(gè)文檔了,即:

Composite Application Guidance for WPF and Silverlight - February 2009.chm

如果沒(méi)有,,請(qǐng)到以下地址下載:

http://www./CompositeWPF/Release/ProjectReleases.aspx?ReleaseId=14982

這份305頁(yè)的文檔詳細(xì)地介紹了Prism的一切內(nèi)容,。記住,一定要下載Feb 2009的那個(gè)版本哦,。

注:我的這個(gè)系列文章也是基于這份文檔的,。但是文檔畢竟只是用來(lái)Release給客戶(hù)看的,所以套話廢話很多,,并且有“老王賣(mài)瓜”之嫌,,所以我要寫(xiě)這個(gè)系列,刪繁就簡(jiǎn)是一方面,,同時(shí)還涉及到自己的一些心得,,以及我在工作中的遇到的諸多疑難雜癥。

Prism吹水

Prism的優(yōu)點(diǎn)如下:

· 把界面(Interface)與邏輯相剝離,,從而美工和程序員可以各按其事,,互不干擾。這個(gè)想法有點(diǎn)烏托邦,,因?yàn)閃PF程序員和超女一樣滿(mǎn)大街都是,,但Blend美工在國(guó)內(nèi)鳳毛麟角,不要奢望在你的Team中有這樣的一個(gè)人,。

· 把界面拆分成若干小的模塊(Module),,從而使模塊間的交互實(shí)現(xiàn)了最大的松散耦合,降低了“牽一發(fā)而動(dòng)全身”的風(fēng)險(xiǎn),。此外,,在部署的時(shí)候,也可以實(shí)現(xiàn)按需(OnCommand)加載和更新,,尤其是對(duì)Silverlight而言,,用戶(hù)只有在需要這個(gè)模塊的時(shí)候才會(huì)去下載,而不用長(zhǎng)時(shí)間等待所有的模塊加載完畢,。

· 模塊的拆分,,使得開(kāi)發(fā)和測(cè)試也可以獨(dú)立地進(jìn)行。這是因?yàn)镻rism使用了TDD的設(shè)計(jì)理念,,當(dāng)然我們?cè)陂_(kāi)發(fā)流程中也要follow這樣的思想去編程,,即“開(kāi)發(fā)未動(dòng),測(cè)試先行”,。

· 最大程度的實(shí)現(xiàn)了可復(fù)用(re-use),。尤其是日志關(guān)聯(lián)和權(quán)限管理,,是完全獨(dú)立于主邏輯的(在數(shù)學(xué)上,這叫垂直關(guān)系,,二者的叉積為零,,從而各自改變而互不影響)。

Prism只是一個(gè)框架,,所以它與以下技術(shù)無(wú)關(guān):

· 偶發(fā)連接(SmartClient的特性)

· 通信機(jī)制(這是WCF的職責(zé))

· 應(yīng)用程序性能

· 錯(cuò)誤處理機(jī)制

· 權(quán)限驗(yàn)證(可以使用MemberShip)

· 線程同步

· 版本控制

研究Prism的過(guò)程,,是對(duì)自身技術(shù)修為的一次洗禮。Prism的設(shè)計(jì)理念中充斥著大量的設(shè)計(jì)模式,,因此,,讀起來(lái)有如沐春風(fēng)之感。但是,,真正用起來(lái)就麻煩了,,往往一個(gè)簡(jiǎn)單的邏輯在Prism中就要很復(fù)雜,幾行代碼會(huì)變成幾百行——對(duì)于小型項(xiàng)目而言,,是不適合用這套框架的,。

我們可以從項(xiàng)目一開(kāi)始就使用Prism進(jìn)行開(kāi)發(fā),也可以對(duì)原有老的WPF或Silverlight項(xiàng)目進(jìn)行升級(jí),。我的切身感受是,,升級(jí)并不是很麻煩,只要想清楚這套框架的邏輯,,因此,,改變?cè)O(shè)計(jì)理念是很重要的。

Prism相關(guān)資源:

國(guó)內(nèi)對(duì)Prism的傳經(jīng)授道很早就開(kāi)始了,,比如說(shuō)博客園的周銀輝和張興浩,,他們分別在自己的項(xiàng)目中使用到這個(gè)框架,因此有豐富的心得體會(huì)以及大量的介紹性文章,,博客地址如下:

· 周銀輝:http://www.cnblogs.com/zhouyinhui

· 張興浩:http://www.cnblogs.com/Clingingboy

 

此外,,P & P 官方論壇也是很不錯(cuò)的地方,上面有來(lái)自全世界的反饋和TroubleShooting,,地址如下:

http://compositewpf./Thread/List.aspx

 

二.Prism評(píng)估

以下是對(duì)Prism文檔P7-P8的翻譯。

架構(gòu)師和開(kāi)發(fā)者需要花費(fèi)些時(shí)間以完全理解和評(píng)估Prism,。雖然 并不存在一種簡(jiǎn)單的方法對(duì)一個(gè)項(xiàng)目進(jìn)行評(píng)估,,但是這份文檔還是把評(píng)估的過(guò)程劃分為4個(gè)步驟:

1. 適合性分析(Fit Analysis)。判斷Prism是否適合于你的需要,。

2. 初始評(píng)估(Intial evaluation),。安裝、運(yùn)行并檢查Prism,。

3. 深度評(píng)估(In-depth evaluation),。對(duì)Prism進(jìn)行全部的檢查,。

4. 采納(Adoption)。將Prism集成到一個(gè)復(fù)雜的應(yīng)用程序中,。

步驟1:適合性分析

Prism是用來(lái)設(shè)計(jì)復(fù)雜的WPF和Silverlight應(yīng)用程序的,。下面的場(chǎng)景是你在使用Prism時(shí)應(yīng)該考慮的:

你正在創(chuàng)建一個(gè)復(fù)合的應(yīng)用程序,通過(guò)一個(gè)集成的用戶(hù)接口來(lái)表示來(lái)自多個(gè)源的信息,。

你正在開(kāi)發(fā),、測(cè)試并部署相互獨(dú)立的模塊。

你的應(yīng)用程序今后將添加更多的View和函數(shù),。

你必須能夠快速安全地改變應(yīng)用程序,,以滿(mǎn)足企業(yè)級(jí)需要。

你的應(yīng)用程序是由多個(gè)小組合作開(kāi)發(fā)的,。

你的應(yīng)用程序是以WPF和Silverlight為目標(biāo),,并且你想要在這兩個(gè)平臺(tái)間共享盡可能多的代碼。

如果你的應(yīng)用程序并不需要這些場(chǎng)景中的一個(gè)或多個(gè),,那么Prism可能并不適合你,。例如,你的應(yīng)用程序由一些簡(jiǎn)單的界面組成,,或者你正在創(chuàng)建一個(gè)原型或演示應(yīng)用程序,,或者你的開(kāi)發(fā)人員并不熟悉這些觀念或也沒(méi)有實(shí)踐過(guò),并且也沒(méi)有時(shí)間去學(xué)習(xí),,那么Prism對(duì)你而言可能也是不適合的,。

為了判斷Prism是否為一個(gè)有潛力的框架,你需要理解這個(gè)框架所要解決的問(wèn)題,。下面的部分將幫助你執(zhí)行這樣的適合性分析,。

  • 什么時(shí)候使用Prism
  • 目標(biāo)和優(yōu)點(diǎn)
  • 模塊化設(shè)計(jì)概念
  • UI Composition設(shè)計(jì)概念
  • 適用的人群

應(yīng)該使用1到2個(gè)小時(shí)來(lái)完成這一步驟。

第2步:初始化評(píng)估

為了近距離接觸Prism,,你將要學(xué)習(xí)到更多關(guān)于Prism類(lèi)庫(kù)的設(shè)計(jì),,以決定復(fù)合的應(yīng)用程序框架是如何匹配到你的企業(yè)級(jí)解決方案框架的。你還需要通過(guò)開(kāi)發(fā)一個(gè)簡(jiǎn)單的“Hello World”應(yīng)用程序來(lái)看一下這些代碼,。

需要閱讀如下相關(guān)的主題:

Composite Application Library

Separated Presentation和Dependency Injection模式

容器(Container)設(shè)計(jì)概念

Container,、Services、Event Aggregator和UI Composition

第3步:深度評(píng)估

在決定為你的應(yīng)用程序使用Prism之前,,你可能想要執(zhí)行一次深度評(píng)估,。Prism推薦你評(píng)估QuickStart和Stock Trader RI,并考慮開(kāi)發(fā)一個(gè)基于概念的應(yīng)用程序,,以獲得對(duì)這個(gè)類(lèi)庫(kù)的深度理解,。在這一點(diǎn)上,你還應(yīng)該考慮到對(duì)該類(lèi)庫(kù)所需要的擴(kuò)展和優(yōu)化,,這將幫助你滿(mǎn)足你的企業(yè)級(jí)需求,。

在開(kāi)始你的proof-of-concept應(yīng)用程序之前,,Prism建議你閱讀下面相關(guān)的內(nèi)容:

技術(shù)概念:

Bootstrapper

Module

Shell and View

Commands

Communication

Multi-Targeting

檢查QuickStart

熟悉Stock Trader RI

當(dāng)你開(kāi)發(fā)自己的proof-of-concept應(yīng)用程序時(shí),你應(yīng)該閱讀相關(guān)的How to主題,。

第4步:采納

Prism具有一個(gè)明確的目標(biāo),,就是提供一個(gè)好的使用體驗(yàn)。為了完成這個(gè)目標(biāo),,Prism提供了下面的建議:

你可以使用或不使用Prism類(lèi)庫(kù),。例如,你可以只使用你所需要的服務(wù),。

你可以增長(zhǎng)性地添加Prism類(lèi)庫(kù)到你已有的WPF或Silverlight應(yīng)用程序中,。

你可以創(chuàng)建WPF和Silverlight應(yīng)用程序以共享盡可能多的代碼。

為了使用Prism,,你將要執(zhí)行下面的任務(wù):

決定你將如何使用類(lèi)庫(kù)的:按照原先的樣子,,或者,自定義適合你需要的類(lèi)庫(kù),。

對(duì)在Key Decision中描述的關(guān)鍵決定進(jìn)行決策,,并和Team的其它成員進(jìn)行交流。

培訓(xùn)你的開(kāi)發(fā)Team關(guān)于Prism的技術(shù),。開(kāi)發(fā)者應(yīng)該review下面的主題:以下省略

培訓(xùn)你的設(shè)計(jì)Team關(guān)于Prism的知識(shí),。設(shè)計(jì)者需要review下面的主題:以下省略

 

三.Prism文檔導(dǎo)讀

話說(shuō),哥哥閱讀這份300頁(yè)的英文文檔僅僅用了11天,,不是顯擺,,是因?yàn)轫?xiàng)目緊,要求盡快上手,,于是夜以繼日地研讀和實(shí)踐,,草草過(guò)了一遍。時(shí)至今日,,我終于發(fā)現(xiàn)設(shè)計(jì)模式的重要性,,很多地方大致看看UML圖就能理解其實(shí)現(xiàn),此外,,如果對(duì)Winform和ASP.NET都有所涉及,,也會(huì)使得學(xué)習(xí)Prism框架輕松很多,最后,,強(qiáng)調(diào)一下千萬(wàn)不要對(duì)WPF和Silverlight厚此薄彼,,雖然二者是不兼容的,但理念是相同的,,同時(shí)掌握不會(huì)耗費(fèi)太多精力,,反而會(huì)使你醍醐灌頂,,甘露灑心,。

言歸正傳,。本文檔目錄如下:

頁(yè)數(shù)

主題

描述

1-12

Overview

基本都是廢話,有價(jià)值的我都提取出來(lái),,參見(jiàn)我這個(gè)系列的前面兩章,。

13-27

Design Concepts

對(duì)Prism最基本概念的簡(jiǎn)單介紹,算是掃盲了,。建議看完QucikStart章節(jié)再返回來(lái)看一遍這幾頁(yè),,別有一番滋味。

28-41

Composite Application Library

對(duì)Prism框架的初步分析,?;臼窃诖邓2莶葑x過(guò)即可,,沒(méi)必要死摳概念,。

42-59

Stock Trader Reference Implementation

對(duì)Stock Trader RI這個(gè)以Prism為框架的開(kāi)源項(xiàng)目的初步分析,只能算是個(gè)引導(dǎo),,想搞明白還是要自己看源碼,。

60-78

Patterns in the Composite Application Library

Prism中涉及的5個(gè)新模式,Prism的精髓,,一定要仔細(xì)研讀這部分,。

79-126

Technical Concepts

Prism中涉及到的概念的詳細(xì)介紹,非常detail,,看不懂沒(méi)關(guān)系,,因?yàn)橄旅鎯烧戮褪窃谥v如何使用它們的例子。

127-148

Hands-On Lab

一個(gè)HelloWorld的例子,,一步步指導(dǎo)讀者完成,,分為WPF和Silverlight兩個(gè)版本。

149-197

QuickStarts

對(duì)Prism提供的QuickStart目錄中所有例子的分析,,建議結(jié)合Technical Concepts這一章一起看,。

198-246

Development Activities

由若干How to組成,其實(shí)就是Technical Concepts一章的翻版,,內(nèi)容都是重復(fù)的,,不看也罷。

247-252

Project Linker

介紹如何使用Project Linker來(lái)管理Multi-Target項(xiàng)目,,意義不大,,不看也罷。

253-261

UI Design Guidance Overview

Prism下設(shè)計(jì)和編程的隔離準(zhǔn)則,,Mock在Prism中的技巧,,等等。大多泛泛而談,所以我會(huì)在介紹到這里時(shí)補(bǔ)齊所有的例子,。

262-280

Deploying WPF Applications with ClickOnce

使用ClickOnce部署,、發(fā)布、更新WPF的方法,,和Prism主題無(wú)關(guān),,不看也罷。

281-282

Deploying Silverlight Applications

介紹如何部署Silverlight,,和Prism主題無(wú)關(guān),,不看也罷。

283-288

Customization Activities

介紹如何打造自己的活動(dòng),,兩個(gè)例子:如何創(chuàng)建一個(gè)自定義的Region Adapter,;如何使用自定義的日志管理器。

289-303

Upgrading from Previous Versions

介紹Prism版本的變革,,這是給那些使用過(guò)老的Prism的朋友看到,,對(duì)于入門(mén)者,略過(guò)它吧,。

304-305

Glossary

Prism術(shù)語(yǔ)匯總

看完我這份清單,,會(huì)發(fā)現(xiàn),其實(shí)精華內(nèi)容也就200頁(yè)不到的樣子,。最后,,是這份文檔的SiteMap,如果你看完了305頁(yè),,可以再回過(guò)頭來(lái)瞅瞅這個(gè)結(jié)構(gòu)圖,,查漏補(bǔ)缺:

clip_image004

 

未完待續(xù)。,。,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多