成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Silverlight 之重

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

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

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

雖然以上框架已經具有相當可觀的基礎庫支持,但Silverlight的架構卻擁有更加重量級的高級語言支持,使得它可以完成JavaScript框架所不能實現的功能,Silverlight之重就體現在以下幾方面:

· 基于.Net平臺,擁有豐富的基礎類庫支持,可以快速構建復雜的企業級應用

Silverlight擁有強大的.Net平臺支持,自Silverlight1.1使用.Net運行時環境以來,Silverlight類庫已經得到極大的擴充,并集成了WPF、WCF、LINQ、DLR、COM等.Net平臺的優秀技術,下圖是MSDN上關于.Net for Silverlight的支持圖例。

silverlight

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

  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 

目前已經有很多重型的企業級架構實現了Silverlight與WPF共享類庫,比如Prism項目。

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

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

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

· 豐富的服務器端通信能力

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

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

· LINQ語言的支持

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

· 客戶端嵌入式數據庫支持

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

· 動態語言支持

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

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

· 與COM的互操作

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

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

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

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

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

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

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

silverlight

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

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

【編輯推薦】

  1. 微軟正式宣布Silverlight 5 Beta版新特性
  2. Silverlight開發的一些最佳實踐分享
  3. Silverlight程序集緩存巧妙設置 優化用戶體驗
  4. 在Silverlight應用程序中調試WCF服務
  5. Silverlight開發的15個最佳實踐
責任編輯:陳貽新 來源: InfoQ
相關推薦

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性能優化

2013-02-27 11:13:17

云計算運維阿里云開發者

2013-03-22 14:51:34

云計算運維阿里云

2011-07-15 14:12:30

Silverlight

2009-02-02 10:08:25

SilverlightTwitterASP.NET

2009-12-29 16:21:46

silverlight

2010-11-02 18:47:28

SilverlightHTML5Web開發

2018-04-25 08:45:46

大數據

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

2009-12-30 18:28:56

Silverlight

2009-12-31 10:58:31

silverlight
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品亚洲精品国产欧美 | 99re国产视频 | 91视频入口| 日韩欧美一级精品久久 | 欧美高清视频一区 | 亚洲淫视频 | 国产成人一区二区三区久久久 | 波多野结衣av中文字幕 | 亚洲免费观看视频 | 在线中文视频 | 91免费在线看 | 希岛爱理在线 | 国产免费一区二区 | 91aiai| 精品三级在线观看 | a级毛片免费高清视频 | 亚洲a一区 | a视频在线| 中文字幕在线免费 | 日韩中文字幕在线不卡 | 怡红院免费的全部视频 | 免费一级毛片 | 91影院在线观看 | 日韩欧美在线观看视频 | 亚洲 精品 综合 精品 自拍 | 国产精品福利久久久 | 亚洲一区二区免费视频 | 国产精品久久久久久久久久免费看 | 毛片a| 亚洲精品久久久久久一区二区 | 狠狠干夜夜草 | 免费激情av| 欧美日韩亚洲系列 | 玖玖久久 | 日韩视频区 | 特黄视频 | 久久精品国产一区 | 精品自拍视频 | 91五月天| 午夜影晥| 国产精品久久精品 |