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