SilverLight可以看作是WPF的一個(gè)簡化版本,或者一個(gè)輕量版本。
SilverLight是基于瀏覽器插件的,在瀏覽器中運(yùn)行,服務(wù)器端不需要部署任何環(huán)境,客戶端只需要安裝Runtime瀏覽器插件,無須安裝.net Framework 3.0。所以,SilverLight的運(yùn)行環(huán)境不受操作系統(tǒng)和瀏覽器的種類限制(更準(zhǔn)確的說,是受到較少的限制)。
WPF可以編寫Web程序或者桌面應(yīng)用程序,可以直接編譯為獨(dú)立運(yùn)行的.Exe文件。WPF運(yùn)行時(shí)必須安裝.net Framework 3.0。這就要求WPF目前運(yùn)行的操作系統(tǒng)必須是Windows Vista或者Windows XP SP2。
此外,SilverLight作為WPF的一個(gè)輕量級的版本,比WPF削減了很多功能。
比如,WPF支持直接在XAML中綁定觸發(fā)來觸發(fā)動畫,而SilverLight就只能通過托管代碼或者Javascript來進(jìn)行。
另外,WPF直接支持3D效果和3D鏡頭變換,但是SilverLight就不支持這個(gè)了。
Silverlight原名WPF/E 就是WPF Everywhere 是WPF的一個(gè)子集。
由于名稱的關(guān)系, WPF與WPF/E一直被認(rèn)為是類似的東西。 其實(shí)兩者除了呈現(xiàn)UI的部分使用的是共通語言 XAML 之外,兩者在本質(zhì)上有很大的不同。甚至,XAML對WPF與Silverlight有不同的意義,也不能算是兩者間"共通的語言。
XAML對WPF來說,是一種把.NET程序語言改用XML來描述的方式。換句話說,XAML用在WPF上,像是另外一種程序語言。與C#, VB , IronPython相似。所以XAML能做的, C# , VB一樣都可以做到。但是反過來, C# , VB 能做的,XAML不一定能做到,因?yàn)閄AML是為了配合開發(fā)工具,特別設(shè)計(jì)出來的一種語言,本身有他的局限性,所以還是得配合正規(guī)的程序語言,才能完成一個(gè)真正有用的程序。
但是以目前XAML所具備的能力,不靠C# , VB而做到平常簡單Flash可以做到的,應(yīng)該是沒啥問題。因此, Application = Code + Markup的作者Petzold才會把這本書的結(jié)構(gòu)寫成先用以C#來寫WPF程序,后半部才介紹XAML。 避免大家誤解 WPF = XAML。
XAML還可以用在WF上,所以并不局限于WPF。 如果用了XAML,以為這就是WPF的全部,就大錯(cuò)特錯(cuò)啰!
然而,XAML對Silverlight來說,本質(zhì)比較貼近SVG。XAML用來描述構(gòu)成畫面的結(jié)構(gòu)樹,然后配合Javascript去操作這顆表示UI的樹,以達(dá)到互動的效果。 所以對Silverlight來說, XAML像是用來擴(kuò)充HTML/CSS原本不足的一組Tag。就像Firefox之中,一樣可以用Javascript去操作SVG所描述的畫面,藉以達(dá)成多媒體效果。
WCF,你就先把它想成Web Service的下一代也沒什么問題。
WCF為Windows Communication Foundation,是Microsoft為構(gòu)建面向服務(wù)的應(yīng)用提供的分布式通信編程框架,是.NET Framework 3.5的重要組成部分。從功能的角度來看,WCF完全可以看作是ASMX,.Net Remoting,Enterprise Service,WebService,MSMQ等技術(shù)的并集。
WPF是Windows Presentation Foundation,微軟新發(fā)布的Vista操作系統(tǒng)的三大核心開發(fā)庫之一,其主要負(fù)責(zé)的是圖形顯示,所以叫Presentation(呈現(xiàn))。 WPF相對于WinForm,將美工(控件樣式設(shè)置)與實(shí)現(xiàn)(代碼的業(yè)務(wù)實(shí)現(xiàn))分開,是一種新的架構(gòu)方式。
VS2008新特性是.Net Framework 3.5。