微软Silverlight,你应该知道的10件事
筆者使用Silverlight的時間比較長,一直在研究這個微軟號稱“Flash殺手”的工具。根據(jù)幾個月的第一手體驗,對它的技術方面的精華進行了總結(jié)。?
??? 隨著Siverlight公眾版的發(fā)布時間的日益接近,現(xiàn)在是時候來熟悉Silverlight以及其如何影響你的Web應用程序了。然而,關于Silverlight的信息如此眾多,一時之間讓人難以分辨哪些是重要的內(nèi)容,哪些只是廣告宣傳。下面我將盡我的最大努力來總結(jié)出關于Silverlight你應該知道的十件事情。
1、Silverlight消除了跨瀏覽器/操作系統(tǒng)的問題?
??? 對于大多數(shù)開發(fā)團隊來說,開發(fā)一個可以同時支持當今比較流行的瀏覽器(包括IE、Firefox、Safari和Opera)的網(wǎng)站并不是一件容易的事情。問題不僅僅在于要編寫更多的代碼,還包括由此帶來的呈指數(shù)級別增加的測試工作。隨著開發(fā)者為不同操作系統(tǒng)的不同版本的瀏覽器開發(fā)應用程序,測試的工作量會變得非常巨大。?
??? 通常情況下有兩種方式可以讓開發(fā)人員解決這個問題:只支持一部分瀏覽器,或者增加質(zhì)量保證人員的數(shù)量來應對大的工作量。?
??? 相比之下,這個Silverlight插件則不管用戶的操作系統(tǒng)和瀏覽器,而提供了一個統(tǒng)一的開發(fā)模型。目前,Silverlight支持兩種操作系統(tǒng)和三種瀏覽器。微軟承諾將在以后增加對Windows和Mac平臺上的Opera瀏覽器的支持。此外,Mono項目(.NET“開源版”項目)已經(jīng)在它的Moonlight項目中取得了巨大的進步,通過該項目可以使Siverlight插件支持Linux平臺。
2、Silverlight 1.1更值得期待?
??? 最近發(fā)布的Silverlight 1.0讓許多機構開始考慮他們是否要開始使用Silverlight。雖然Silverlight 1.0具有很多重要的和有趣的功能,實際上大多數(shù)對Siverlight的采用要等到其1.1版的發(fā)布。?
??? 目前還處于Alpha預覽階段的Silverlight 1.1版將首次全方面支持.NET平臺。這包含基本的.NET語言、C#和Visual Basic。此外,根據(jù)微軟表示,Silverlight 1.1還將為動態(tài)語言提供.NET支持,諸如Ruby、Python、動態(tài)Visual Basic和受控JScript。?
??? 在我看來,Siverlight所支持的的重要語言是C#和Visual Basic,因為它們允許目前的.NET開發(fā)者來創(chuàng)建有意思的Silverlight應用程序。在Silverlight 1.1版中,任何.NET語言都將被支持,因為真正提交給瀏覽器的實際上是.NET assembly。?
??? 相比之下,Silverlight 1.0只支持在客戶端解釋的ECMA語言。Silverlight 1.0非常適合于那些已經(jīng)在使用客戶端腳本語言編程的現(xiàn)有Web開發(fā)者。?
??? Silverlight 1.1還支持一個豐富的客戶定制模型,這對確保一個綜合性的開發(fā)體驗是非常重要的。Silverlight 1.0的體驗還比較不成熟,不太可能讓第三方團體對其管理開發(fā)感興趣。
3、Silverlight使用了開發(fā)者已經(jīng)了解的技術?
??? Silverlight是由已經(jīng)存在的微軟技術組合而來的:一個混合的類似Windows展現(xiàn)框架的XAML(XML應用程序標記語言)、JavaScript和.NET技術。?
??? 如果開發(fā)者已經(jīng)比較熟悉微軟的.NET和Web技術,他們就能夠使用他們已有的知識來創(chuàng)建Silverlight應用程序。即使開發(fā)者沒有這些技能,掌握了這些技術也不僅僅對某個單獨的產(chǎn)品或項目有用,它可以被應用到Silverlight應用程序以外的開發(fā)中,這與其他解決方案的情況不完全一樣,例如Adobe Flash的ActionScript。?
??? 至于選擇哪個Silverlight版本來應用到一個新項目中,這取決于你的開發(fā)團隊的技能情況。如果你的開發(fā)團隊主要是進行一個ASP.NET服務器端開發(fā)工作(大多數(shù)情況下是C#和VB.NET),你應該等到Silverlight 1.1版推出。如果你的團隊比較熟悉客戶端腳本語言,例如JavaScript,Silverlight 1.0是一個值得介紹的偉大平臺。
4、Silverlight用戶界面僅僅是標記語言?
??? XAML是Silverlight用于進行用戶界面設計的混合語言。你可能已經(jīng)對另一種流行的標記語言已經(jīng)非常熟悉,即HTML。HTML文件是簡單的文本,它包含的信息可以告訴Web瀏覽器如何展現(xiàn)一個頁面的外觀和給用戶的感覺。XAML也做相同的事情。但是,與瀏覽器解釋關于如何表現(xiàn)這個文件的指令不同的是,由Silverlight運行時來完成展現(xiàn)工作。?
??? XAML作為標記是很重要的,因為它可以被動態(tài)的創(chuàng)建。無論你的開發(fā)者使用什么工具來進行服務器端的Web開發(fā),你都可以創(chuàng)建動態(tài)HTML來創(chuàng)建頁面。這個技術非常引人注目,因為你可以創(chuàng)建在站點中重用的HMTL代碼。一個很好的例子是大多數(shù)網(wǎng)站的主頁設計在通常情況下,頁面頭部和底部在整個頁面中是要被重復使用的。?
??? 因為XAML僅僅是標記,你能夠使用服務器端的技術來動態(tài)的創(chuàng)建XAML,就如同你的開發(fā)團隊以前使用HTML的方式一樣。這是一個不同的標記語言,但是技術是相同的。
5、Silverlight和Ajax技術是互補的?
??? 網(wǎng)頁技術正在不斷的發(fā)展。回到1990年,當Web技術最初被引入的時候,每一個人都在警告開發(fā)者應該盡可能快的轉(zhuǎn)移到服務器端進行編程,這樣應用程序才能提升高度。雖然這種做法從技術上講是對的,但是它降低了用戶體驗。現(xiàn)在Ajax技術風行一時。簡單的來說,Ajax直接在瀏覽器中編寫代碼,可支持更好的用戶交互。其典型的例子就是Google地圖服務、微軟的Live地圖。?
??? Silverlight遵循了這個模式,它在瀏覽器中帶來了更具表現(xiàn)力的用戶界面。使用Ajax技術來在服務器端和客戶端進行數(shù)據(jù)交換可以讓Silverlight應用程序更加強大。將Silverlight的豐富的用戶界面模型應用到Ajax的強大的數(shù)據(jù)傳輸模型中,可以得到令人難以置信的交互體驗,無需強迫用戶等待頁面刷新時間。
??? Web正在強迫開發(fā)團隊來更多的思考設計和美工工作。除非特殊情況,響應用戶的體驗和美觀的界面已經(jīng)變成了一個必須要考慮的方面。通常情況下,這就要求在應用程序開發(fā)中運用美工技巧和用戶界面設計技巧。今天,一般通過雇用美工開完成網(wǎng)站的設計工作。?
??? 但是,美工所使用和實現(xiàn)的資源通常與開發(fā)者使用的工具是不相同的。通常情況下,美工將圖片文件(例如Photoshop或.jpg文件)或HTML線框提供給開發(fā)者,然后由其來綜合到一個項目中。無論你使用的技術是什么,這些設計必須被整合到Web應用程序代碼中。隨著設計的變化,這種整合工作被一遍又一遍的重復做著。Silverlight提出了一種更好的開發(fā)過程。微軟的Silverlight工具集包括了傳統(tǒng)的開發(fā)工具,像Visual Studio,還有新的面向設計者的工具,像Expression Studio(相關文章:《微軟Expression Studio能挑戰(zhàn)Adobe嗎?》,http://tech.it168.com/i/2007-06-29/200706290828093.shtml)。?
??? 對于Silverlight來說,主要的設計工具就是Expression Blend,它允許通過一種對設計者方便而熟悉的方式來創(chuàng)建XAML。對于設計人員,使用Blend就像使用Adobe Illustraor或Photoshop一樣方便。它們的比較大的區(qū)別是Blend與開發(fā)者使用相同的基礎文件。Blend和Visual Studio操作相同的項目文件、XAML和JavaScript文件。當一個設計被創(chuàng)建和修改的時候,在Silverlight中不需要使用整合步驟。設計者可以看見他們的設計與開發(fā)者所增加的相同的邏輯進行交互。這樣可以幫助設計者和開發(fā)者緊密的進行合作。
7、Silverlight可以分開提交內(nèi)容?
??? Silverlight是以分片形式提交給Web瀏覽器的。這意味著代碼在一個或多個封裝的包中(JavaScript文件、代碼集等等),設計也是作為一個或多個包(作為XAML文件)進行傳輸,其他資源也是被分開進行傳輸(包括圖片、字體和視頻等)。一些對Flash的單一文件提交熟悉的開發(fā)者在才開始接觸Silverlight的時候可能會認為這是Silverlight平臺的一個不足。?
??? 而實際上,我認為這是一個好的功能。相比于Flash的方式,分開的數(shù)據(jù)包使動態(tài)服務器端的內(nèi)容的創(chuàng)建更加輕松。它讓我們可以在服務器上創(chuàng)建引人注目的動態(tài)XAML,并簡單的以其他標記的方式來傳輸它。Silverlight具有一個工具可以使用zip文件來打包被XAML代碼所使用的多個文件,并高效的下載它們到客戶端,不過它不是一個必須的要求。
8、Silverlight是新事物?
??? 現(xiàn)在,Silverlight 1.0正處于候選版階段(Release Candidate),而Silverlight 1.1則處于Alpha版。這是微軟對此類技術的首次嘗試。?
??? 相比于其他公司提供的類似服務,這個技術還不夠成熟,其中與其競爭的最出名的就是Adobe的Flash和Flex產(chǎn)品。Flash目前的版本是9.0,它已經(jīng)經(jīng)歷了很長的一段時間的發(fā)展,無論是在普及度還是功能豐富性都已經(jīng)處于領先地位。但是,這不是說Silverlight就不會追上它。微軟在從別人的成功和失敗中學習方面有自己的一套東西。當然,也不是說Silverlight一定會趕上競爭對手。?
??? 如果你計劃創(chuàng)建的應用程序主要是用來替代數(shù)據(jù)驅(qū)動的桌面應用程序,你可能會懷念在Silverlight中的所缺少的基本控制和數(shù)據(jù)綁定功能。Silverlight不是Windows Forms、WPF、Java Applets或Sharepoint的替代者。?
??? 簡單來說,Silverlight不是被設計用來取代早期版本的企業(yè)應用程序。但是如果你想創(chuàng)建一個跨平臺、跨瀏覽器的富用戶體驗的引人注目的應用程序的話,Silverlight無疑非常適合。
9、Silverlight XAML與WPF XAML的對比?
??? 人們很容易把XAML吹噓為一個偉大的事物,因為微軟的Windows表現(xiàn)層基礎類庫(WPF)也使用XAML。不幸的是,這些優(yōu)勢實際上不像它看上去那么吸引人,原因有二:WPF的低采用率和WPF XAML與Silverlight XAML的區(qū)別。?
??? 首先,與其他客戶端技術相比,WPF的采用率還是相對比較低的。因此,考慮到XAML還未得到充分開發(fā)的事實,XAML是一個優(yōu)勢,但不是一個非常大優(yōu)勢。第二,相比WPF XAML,Silverlight XAML是一個簡化版的語言,因此Silverlight XAML沒有那么強大。這既是一件好事又是一件壞事。Silverlight XAML是非常易懂的,但是如果你的開發(fā)者是從WPF轉(zhuǎn)到Silverlight上的,它看上去可能是不完整的。?
??? 在我看來,這種更簡單的語法實際上更適合Silverlight,因為其運行時對終端用戶來說是非常小巧和可管理的。Silverlight XAML不包含對一些對普通任務所不需要的一些內(nèi)容。當然創(chuàng)建更多的功能到Silverlight中將是有好處的,現(xiàn)在的做法是非常謹慎的考慮什么功能要被增加到其中,才能保持API比較小和輕量級的特點。?
10、Silverlight是學習XAML的一個偉大方式?
??? 正如前面所說的,Silverlight的XAML具有一個比較小的語法。這意味著它是學習XAML如何工作的一個最好的方式。試圖學習XAML和了解這個技術的開發(fā)者將會把Silverlight作為創(chuàng)建清晰、簡潔的代碼的一種方式。大多數(shù)開發(fā)者將不久會開始思考他們會喜歡Silverlight的功能。當他們開始查看WPF的XAML的時候,他們會發(fā)現(xiàn)其中的大多數(shù)功能已經(jīng)非常熟悉了。?
??? 相反,那些最初學習WPF的開發(fā)者在接觸Silverlight后,將會需要放棄一些曾經(jīng)擁有的功能。?
??? 目前Silverlight的運行時大約有4.5M。首次支持WPF的.NET 3.0運行時則接近30M。當然,并非所有的.NET 3.0全部內(nèi)容都是WPF,但是WPF占據(jù)了其一大部分。從更小的Silverlight XAML開始是快速學習XAML的一個關鍵。你不會陷于高級WPF XAML概念的瑣碎細節(jié)中,諸如模板、主題、數(shù)據(jù)綁定和3-D。?
轉(zhuǎn)載于:https://www.cnblogs.com/bihailantian/archive/2010/10/08/1846121.html
總結(jié)
以上是生活随笔為你收集整理的微软Silverlight,你应该知道的10件事的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鱼缸多少钱一个啊?
- 下一篇: web站点性能测试经验点滴