WPF平臺開發(fā)客戶端優(yōu)勢點評
WPF平臺的出現(xiàn)為我們帶來非常豐富的功能實現(xiàn)。在這里將會為大家介紹一下有關(guān)概念。希望可以提高對大家WPF平臺的理解程度。WPF是一個用于開發(fā)富客戶端應(yīng)用程序的平臺。#t#
它是.NET 3.0框架的一部分,因此已經(jīng)在Windows Vista中內(nèi)置,此外它也能夠在Windows XP SP 2以及Windows 2003中安裝。
構(gòu)建WPF平臺用戶界面可以使用.NET對象模型,不過WPF也提供XAML——即eXtensible Application Markup Language——這是一種標記語言,使用戶界面的表現(xiàn)能夠獨立于其行為進行設(shè)計。
兩種做法實際上是等價的,XAML只是提供了一種額外的語法。不過XAML語法是方便工具創(chuàng)建和使用而設(shè)計的,這樣的工具能夠使設(shè)計人員直接進行用戶界面設(shè)計,而不需要任何編碼技能。
WPF平臺不是.NET框架中***套用于開發(fā)富客戶端的API。Windows Forms作為它的前輩,是構(gòu)建在Win32的窗口系統(tǒng)之上的.NET封裝層。盡管Windows Form在Win32之上添加了很多功能,但由于下層UI平臺的限制,用它進行開發(fā)有時依舊會縮手縮腳。
WPF沒有構(gòu)建在Win32的窗口系統(tǒng)上,而是構(gòu)建于DirectX之上,這就使得WPF能夠完全利用起本機顯卡的能力。然而WPF并非只能用于開發(fā)視覺效果非凡的應(yīng)用程序。
WPF的***優(yōu)勢,就是它將許多富客戶端的特性集成在同一個平臺上,其中大部分的獨立特性都單獨在其他UI技術(shù)中出現(xiàn)過。例如,WPF提供了構(gòu)建矢量動畫和視頻的能力,這原本一直是Flash所專長的。
WPF平臺提供了傳統(tǒng)的Windows控件,例如按鈕、列表框以及樹型控件等等,它們在Win32和Windows Forms中已經(jīng)出現(xiàn)了很多年了。此外WPF還提供了流式文本布局,這原來是HTML的能力(盡管目前WPF的文本渲染能力遠比HTML和CSS來的強大)。
一些面向HTML的技術(shù),例如JSP和ASP.NET,也曾使用過WPF中標記+后臺代碼的應(yīng)用程序構(gòu)建方式,不過它們只能提供最簡單的3D支持,但是OpenGL和DirectX長久以來就擁有強大得多的3D渲染能力。
WPF之前的技術(shù)都能各自獨當一面,但是很難在同一個應(yīng)用程序中使用不同的技術(shù)。例如,我們很難在Windows的按鈕和下拉菜單中使用Flash的動畫功能(Flash應(yīng)用程序一般使用自行開發(fā)的控件,但是它們很難與操作系統(tǒng)的當前主題進行統(tǒng)一,可用性也比較差,而它們的行為一般也和真正的控件不同);
我們也很難同時利用HTML中的流式文本布局和富客戶端中的數(shù)據(jù)綁定技術(shù)。一般說來,如果您希望混合使用不同的技術(shù),您的應(yīng)用程序需要被分割為多個獨立部分,而這幾個部分之間的通信會非常困難,甚至幾乎不可能實現(xiàn)。
相反,用WPF就容易多了。不幸的是,目前許多展示這種集成能力的WPF示例都有些脫離實際。在一個流式布局的文檔中嵌入一個普通的Windows按鈕,再加上一個包含立方體的標題,這個立方體還被一個完整的視頻動畫包裹起來,這種做法的確能夠說明同時使用不同的UI特性并非難事,但問題是,有誰會設(shè)計開發(fā)這樣一個應(yīng)用程序呢?
事實上,您一般不會將所有的UI功能集成在一個應(yīng)用程序中。這么做很容易讓人想起早期的Web,許多站點都不假思索地利用所有可能的HTML特性。這種做法相當可怕,很長時間以后人們才了解該如何使用合適的技術(shù)來構(gòu)建優(yōu)秀的Web應(yīng)用程序。
同樣道理,將WPF平臺的各種可視化特性進行隨意組合的確無比強大和靈活,但是使用其中有限的幾種已經(jīng)足夠開發(fā)出有用的應(yīng)用程序了。而且對于視覺效果一般的應(yīng)用程序開發(fā),WPF也提供了許多有用的支持。