偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Silverlight 之重

開發(fā) 前端
Silverlight依靠.Net平臺,使用C#高級語言代替JavaScript腳本語言,實現(xiàn)了強大的客戶端計算能力、支持多線程,繼承了WPF豐富的樣式、控件、特效與動畫,更可控的瀏覽器適應(yīng)性,更安全的沙箱模式,客戶端嵌入式數(shù)據(jù)庫等,這就是本期要給大家介紹的重點—Silverlight之重。

請大家不要覺得奇怪,架構(gòu)的輕與重永遠都是相對而言,雖然Silverlight相對于傳統(tǒng)C/S架構(gòu)有更加輕型的運行時環(huán)境,但相較于Html+JavaScript等傳統(tǒng)B/S架構(gòu)確實具有更加龐大的基礎(chǔ)類庫支持。Silverlight依靠.Net平臺,使用C#高級語言代替JavaScript腳本語言,實現(xiàn)了強大的客戶端計算能力、支持多線程,繼承了WPF豐富的樣式、控件、特效與動畫,更可控的瀏覽器適應(yīng)性,更安全的沙箱模式,客戶端嵌入式數(shù)據(jù)庫等,這就是本期要給大家介紹的重點—Silverlight之重。

自上世紀(jì)90年代以來,Html+JavaScript幾乎占據(jù)了Web應(yīng)用的全部,在近20年的發(fā)展過程中,一大批工具化的JavaScript框架應(yīng)運而生,比如輕量級的JQuery、重量級的ExtJs和Dojo等都為開發(fā)者建立Web應(yīng)用提供了多種選擇。 ExtJs框架有強大的UI展現(xiàn)層,已經(jīng)在Turbo CRM等企業(yè)級應(yīng)用中有實際案例,而Dojo有IBM、Oracle等大公司撐腰,Struts2更將Dojo集成在客戶端框架中,該框架甚至還支持離線瀏覽。

雖然以上框架已經(jīng)具有相當(dāng)可觀的基礎(chǔ)庫支持,但Silverlight的架構(gòu)卻擁有更加重量級的高級語言支持,使得它可以完成JavaScript框架所不能實現(xiàn)的功能,Silverlight之重就體現(xiàn)在以下幾方面:

· 基于.Net平臺,擁有豐富的基礎(chǔ)類庫支持,可以快速構(gòu)建復(fù)雜的企業(yè)級應(yīng)用

Silverlight擁有強大的.Net平臺支持,自Silverlight1.1使用.Net運行時環(huán)境以來,Silverlight類庫已經(jīng)得到極大的擴充,并集成了WPF、WCF、LINQ、DLR、COM等.Net平臺的優(yōu)秀技術(shù),下圖是MSDN上關(guān)于.Net for Silverlight的支持圖例。

silverlight

由于Silverlight使用了WPF展現(xiàn)層控件庫,使得Silverlight與WPF共享代碼不存在任何技術(shù)屏障,事實上Silverlight就是一種桌面應(yīng)用在Web上的輕量級實現(xiàn),即便存在一些差異,我們也可以通過下面的代碼將Silverlight應(yīng)用與桌面應(yīng)用粘合在一起。

  1. #if SILVERLIGHT  
  2.     dynamic excel = AutomationFactory.CreateObject("Excel.Application");  
  3. #else  
  4.     dynamic excel = Microsoft.VisualBasic.Interaction.CreateObject("Excel.Application", string.Empty);  
  5. #endif 

目前已經(jīng)有很多重型的企業(yè)級架構(gòu)實現(xiàn)了Silverlight與WPF共享類庫,比如Prism項目。

Silverlight運行時環(huán)境目前已經(jīng)有近千個可供使用的類,而ToolKit與大量的第三方工具程序集可以為Silverlight提供更加強大的后援支持。因此在RIA企業(yè)級應(yīng)用開發(fā)過程中,團隊可以通過.Net強大的基礎(chǔ)庫與工具集快速構(gòu)建出復(fù)雜的企業(yè)級應(yīng)用。

· 支持多線程,支持UI線程與后臺線程分離,具有更大的性能優(yōu)勢

Silverlight具有彼此分離的UI線程與后臺線程,可以將客戶端的耗時操作放在后臺線程中處理。這樣做有兩方面的收益:第一,由于沒有在UI線程中執(zhí)行耗時操作,避免了UI線程阻塞,提高了UI響應(yīng)速度;第二,由于沒有將操作放在服務(wù)器端運行,減少了網(wǎng)絡(luò)的調(diào)用開銷,同時通過使用客戶端資源降低服務(wù)器端壓力。Silverlight多線程可以通過多種方式實現(xiàn),比如Dispatcher、BackgroundWorker、ThreadPool都可以輕松創(chuàng)建后臺線程,并可以通過事件句柄實現(xiàn)線程間異步通信。(敬請期待本專欄第五期《Silverlight的多線程能力》)

· 豐富的服務(wù)器端通信能力

目前Silverlight支持TCP、UDP、Socket等網(wǎng)絡(luò)協(xié)議,以及HttpHandler、WebServices等多種應(yīng)用層協(xié)議,還可以通過WCF RIA Service數(shù)據(jù)“透明”訪問方式(通過向客戶端公開數(shù)據(jù)訪問層,屏蔽了通信層手工編碼)快速實現(xiàn)實體通信。

在原有應(yīng)用集成方面,如果服務(wù)器端使用.Net平臺,那么Silverlight客戶端程序可以重用原有通信方式,而不必對服務(wù)器端程序有較大改動,如果服務(wù)器端使用Java平臺,Silverlight也提供標(biāo)準(zhǔn)WebServices、Http、Socket多種交互方式進行通信,服務(wù)器端只要進行簡單的服務(wù)封裝就可以實現(xiàn)與Silverlight客戶端的數(shù)據(jù)通信。因此,Silverlight基于.Net提供了快速與服務(wù)器端程序集成的能力。事實上,在筆者所開發(fā)的項目中,已經(jīng)實現(xiàn)了Silverlight客戶端與.Net、J2EE(通過REST接口)、Tuxedo(通過SALT接口)的數(shù)據(jù)連通性。(敬請期待本專欄第六期《Silverlight與J2EE通信》)

· LINQ語言的支持

LINQ是一種開發(fā)高效的聲明式語言,開發(fā)者通過可以這種類似SQL的語言快速構(gòu)建數(shù)據(jù)邏輯,而避免了原有面向?qū)ο蟛僮髦械膹?fù)雜過程,當(dāng)然這只是LINQ的外在表現(xiàn)形式。其實LINQ申明式語言依賴于Lamda表達式,而Lamda表達式的背后是強大的表達式樹ExpressionTree,LINQ to Any的真正強大在于將數(shù)據(jù)邏輯的具體實現(xiàn)方式與書寫方式分離開,使開發(fā)者使用一種方式就可以訪問和操作各種數(shù)據(jù)對象。而Silverlight集成了LINQ語言,在實際的應(yīng)用開發(fā)中,開發(fā)者可以通過更加簡單的方式來實現(xiàn)復(fù)雜的業(yè)務(wù)邏輯;另一方面,Silverlight同樣集成了強大的表達式樹,使得開發(fā)者可以通過自行擴展表達式樹來構(gòu)建LINQ To Any的適配器,也可以使用表達式樹來構(gòu)建更加復(fù)雜的動態(tài)語法和動態(tài)LINQ。當(dāng)然,如果未來微軟將PLINQ的并行查詢語言集成到Silverlight中,那將使Silverlight的查詢性能更近一步。(敬請期待本專欄第七期《Silverlight輕量級查詢對比》)

· 客戶端嵌入式數(shù)據(jù)庫支持

Silverlight內(nèi)置IsolatedStorage可以操作獨立存儲中的數(shù)據(jù),但這還不足以實現(xiàn)復(fù)雜的數(shù)據(jù)操作,我們需要在Silverlight項目中引入第三方嵌入式數(shù)據(jù)庫程序集,實德Silverlight可以通過客戶端獨立存儲來建立客戶端嵌入式數(shù)據(jù)庫,實現(xiàn)在脫機狀態(tài)下存儲與管理數(shù)據(jù)。開發(fā)者可以通過嵌入式數(shù)據(jù)庫快速構(gòu)建純客戶端(包括桌面、移動設(shè)備等)的信息管理應(yīng)用,甚至實現(xiàn)基于嵌入式數(shù)據(jù)庫緩存的“云與端”應(yīng)用。目前支持Silverlight的嵌入式數(shù)據(jù)庫選擇已經(jīng)相當(dāng)廣泛,比如Siaqodb、EffiProz、Perst、Rapid Repository(WP7 DataBase)等都有專門針對Silverlight的嵌入式數(shù)據(jù)庫與管理工具。(敬請期待本專欄第八期《Silverlight嵌入式數(shù)據(jù)對比》)

· 動態(tài)語言支持

Silverlight對動態(tài)語言的支持分為:對JavaScript的互操作性、對dynamic動態(tài)類型的支持和DLR的集成。

在對JavaScript的互操作性方面,Silverlight可以通過System.Windows.Interop類集將其應(yīng)用程序中的控件暴露成Html DOM,實現(xiàn)內(nèi)部控件對外部JavaScript的可見性;Html反向可見性是通過System.Windows.Browser類集來實現(xiàn)的,Silverlight可以與Html對象或者JavaScript對象進行交互。Silverlight中支持dynamic動態(tài)類型,允許在運行時動態(tài)加載對象。通過Silverlight 集成了動態(tài)語言運行時環(huán)境DLR,目前支持IronPython、IronRuby、JScript等動態(tài)語言在Silverlight應(yīng)用程序中的執(zhí)行。

· 與COM的互操作

Silverlight脫瀏覽器應(yīng)用(OOB)可以在客戶端創(chuàng)建并操作COM對象,比如打開Word、Excel等所有在客戶端操作系統(tǒng)中注冊的COM組件,Silverlight5甚至允許在瀏覽器中調(diào)用Office COM對象,在OOB模式下更可以調(diào)用任何外部Windows應(yīng)用程序,并支持對USB設(shè)備與條形碼掃描器等更多外設(shè)的API調(diào)用。

· 3D引擎與豐富的多媒體控制

Silverlight基礎(chǔ)類庫包含MediaElement控件,可以在Silverlight程序中控制媒體對象,也可以通過System.Windows.Media類集對繪圖、文本和音頻/視頻內(nèi)容進行編程,比如通過Brush、ImageBrush、VideoBrush繪制更加豐富的媒體內(nèi)容;通過BitmapImage類自定義點陣圖片,實現(xiàn)諸如粒子效果的應(yīng)用;通過System.Windows.Media.Animation類集來創(chuàng)建動畫;通過System.Windows.Media.Effects實現(xiàn)模糊、陰影等多種視覺特效;通過System.Windows.Media.Media3D操作3D投射矩陣。

Silverlight5還將增加GPU3D加速的API支持,增加3D視覺特效,增加即時模式圖形API,允許將圖形圖像直接呈現(xiàn)到GPU,這些特性的加入將使Silverlight具有更強大的媒體展現(xiàn)能力。

· MEF擴展性管理框架的支持

MEF (Managed Extensibility Framework )擴展性管理框架,是.NET平臺下用于創(chuàng)建可擴展的輕型應(yīng)用程序的庫。在Silverlight SDK(C:\Program Files\Microsoft SDKs\Silverlight\v4.0\Libraries)中我們可以找到System.ComponentModel.Composition.dll與System.ComponentModel.Composition.Initialization.dll這兩個動態(tài)鏈接文件。在Silverlight項目中引用后,就可以使用MEF擴展性管理框架,該框架以聲明方式指定其功能,在運行時通過MEF 組合引擎發(fā)現(xiàn)部件。應(yīng)用程序無需硬編碼的引用或脆弱的配置文件即可利用相關(guān)部件,其依賴項注冊的實現(xiàn)方式甚至比基于配置的Spring還要簡單,Silverlight完全可以利用MEF構(gòu)建擴展性極強的企業(yè)級應(yīng)用。

由此可見,Silverlight擁有比JavaScript更為重型的框架支撐,通過Silverlight可以快速移植桌面應(yīng)用到Web端,也可以將Web應(yīng)用脫開瀏覽器執(zhí)行,或者構(gòu)建輕型的桌面應(yīng)用、移動設(shè)備應(yīng)用。應(yīng)該說Silverlight不僅僅是Web應(yīng)用,在MSDN的知識庫中,Silverlight已經(jīng)從Web開發(fā)節(jié)點轉(zhuǎn)到了.Net開發(fā)節(jié)點下,從這一點上可以看出微軟正在進行Silverlight轉(zhuǎn)型。

silverlight

而未來的Windows 8操作系統(tǒng)的瘦客戶端UI-“Jupiter”將采用Silverlight,該界面將允許運行在基于ARM CPU的平板設(shè)備上。Silverlight 4憑借優(yōu)秀的框架已經(jīng)獲得了InfoWorld評出的2011年度最佳RIA平臺獎項,未來Silverlight還將擔(dān)負Web應(yīng)用、移動應(yīng)用和桌面應(yīng)用的統(tǒng)一大業(yè),Silverlight之重也在于此!

原文鏈接:http://www.infoq.com/cn/articles/wl-silverlight-heavy

【編輯推薦】

  1. 微軟正式宣布Silverlight 5 Beta版新特性
  2. Silverlight開發(fā)的一些最佳實踐分享
  3. Silverlight程序集緩存巧妙設(shè)置 優(yōu)化用戶體驗
  4. 在Silverlight應(yīng)用程序中調(diào)試WCF服務(wù)
  5. Silverlight開發(fā)的15個最佳實踐
責(zé)任編輯:陳貽新 來源: InfoQ
相關(guān)推薦

2011-01-27 08:49:47

SilverlightWeb.NET

2011-03-09 15:16:06

SilverlightHTML

2010-09-10 09:08:54

Silverlight

2011-08-24 09:29:00

Silverlight

2010-08-06 15:44:28

Windows PhoWindows PhoSilverlight

2009-02-02 10:53:34

SilverlightSilverlightRIA

2018-11-14 19:30:57

前端Javascript性能優(yōu)化

2013-02-27 11:13:17

云計算運維阿里云開發(fā)者

2013-03-22 14:51:34

云計算運維阿里云

2011-07-15 14:12:30

Silverlight

2009-12-29 16:21:46

silverlight

2009-02-02 10:08:25

SilverlightTwitterASP.NET

2010-11-02 18:47:28

SilverlightHTML5Web開發(fā)

2018-04-25 08:45:46

大數(shù)據(jù)

2011-03-24 13:09:56

Azure開發(fā)者Silverlight存儲賬戶

2019-09-24 11:13:53

重保網(wǎng)絡(luò)安全漏洞

2009-12-29 15:38:17

silverlight

2009-12-29 17:18:53

Silverlight

2009-12-30 10:54:18

Silverlight

2009-12-30 15:08:04

Silverlight
點贊
收藏

51CTO技術(shù)棧公眾號