什么是WPF,經(jīng)??床┛吞靡约?a target="_blank">博客園的朋友,我相信眼睛都快磨出繭子來(lái)了。WPF嘛,就是現在稱(chēng)之為Windows Presentation Foundation,小名叫Avalon的那個(gè)東東,為了更好的實(shí)現Windows Vista體驗的基礎層架構,是.NET 3.0的一部分。如果一句話(huà)以蔽之,就是一個(gè)更有生產(chǎn)力的、更統一的用來(lái)管理用戶(hù)界面、文檔及多媒體等的模型。再仔細說(shuō)說(shuō),更有生產(chǎn)力就是指開(kāi)發(fā)豐富實(shí)用外觀(guān)不費勁,易于快速開(kāi)發(fā),而更統一則是指開(kāi)發(fā)B/S以及C/S可
講到WPF,就要提到XAML,XAML是WPF的聲明性語(yǔ)言,提供對界面、文檔以及多媒體等界面層邏輯的渲染。而且XAML可以直接在IE中打開(kāi)(如右圖)。同時(shí),還有一種XBAP方式(如左圖),也可以在IE中打開(kāi)。兩者會(huì )有一些異同,這在下面會(huì )做表述。
那么WPF/E呢,可能知道者就比較少了。這里面的E是指的Everywhere,也就是可以讓W(xué)PF到處可以運行。我們知道,WPF本身是WinFX也就是現在的.NET 3.0的一部分,所以想要運行WPF,客戶(hù)端必須安裝.NET 3.0,而.NET 3.0的安裝條件是Windows XP、Windows Vista、Windows Server 2003、Windows Longhorn Server之四大金鋼。那么你如果想讓W(xué)PF
而WPF/E,小名Jolt,目前正在緊鑼密鼓的開(kāi)發(fā)當中,一些細節尚未披露,目前可以知道的是它是使用Javascript來(lái)實(shí) 現,用來(lái)使其可以跨平臺、跨瀏覽器、跨設備來(lái)使用。它也同樣采用有些異構化的XAML來(lái)編寫(xiě)(主要添加了一些特殊的Javascript標記)。
對于開(kāi)發(fā)人員來(lái)說(shuō),喜歡究根問(wèn)底。這些方式,.EXE, .XAML,.XBAP還有WPF/E到底有何異同?在各種場(chǎng)合下面應該如何使用呢?我相信很多人會(huì )非常好奇。雖然看了很多DEMO,相信也有一些朋友在一些細節上還是有很多模糊。在青島的時(shí)候,我做了下面這個(gè)表(當時(shí)展波兄也通過(guò)越洋電話(huà)提供免費支持),希望對大家有幫助。
| .EXE | XAML | XBAP | WPF/E | |
| IE宿主運行 | No | Yes | Yes | Yes |
| 支持其它瀏覽器 | No | No | No | Yes |
| 支持其它操作系統 | No | No | No | Yes |
| 跨設備 | No | No | No | Yes |
| 支持業(yè)務(wù)邏輯 | Yes | No | Yes | Yes |
| 需要.NET 3.0 | Yes | Yes | Yes | No |
希望對大家理解這些概念有所幫助。
補記:關(guān)于.NET 3.0的命名,我個(gè)人總覺(jué)得是一個(gè)敗筆,因為.NET 3.0必須依賴(lài)于.NET 2.0的存在,沒(méi)有.NET 2.0,則無(wú)法使用.NET 3.0,所以可以說(shuō).NET 3.0=.NET 2.0+WPF+WCF+WWF+WCS+...。同時(shí)原計劃中的3.0有可能會(huì )被命名為3.5,而3.5倒不必依賴(lài)于3.0了,不然就沒(méi)完沒(méi)了了。據說(shuō)當初之所以改名字是怕別人混淆,怎么剛推完.NET,又開(kāi)始推WinFX了?歸納到同一品牌下我沒(méi)有異議,但突然直接升級為3.0,倒使得此事有些讓人混淆了,甚至有些同事至今都分不清WinFX與.NET 3.0的區別。
聯(lián)系客服