你可能不知道的15個(gè)Silverlight訣竅
我熱愛(ài)Silverlight,并且身體力行寫了很多Silverlight程序,也討論了很多關(guān)于Silverlight的技術(shù)。對(duì)于剛剛接觸Silverlight的開發(fā)人員來(lái)說(shuō),這篇文章是最適合你的。這篇文章列出了我使用Silverlight進(jìn)行開發(fā)后,發(fā)現(xiàn)的15條小訣竅。如果你是一個(gè)全職的Silverlight開發(fā)的話,我希望你能了解并掌握它們。
我不會(huì)談?wù)揗VVM,Prism或者M(jìn)EF這些復(fù)雜的以至于嚇跑讀者的東西。
1. 下圖中黃色的高亮文字代表了Silverlight 對(duì)象的MIME類型,而不是運(yùn)行時(shí)版本信息。許多開發(fā)人員第一次看到這段代碼的時(shí)候都會(huì)認(rèn)為這個(gè)地方是引用了Silverlight的版本信息,例如Silverlight 4.
一個(gè)Silverlight宿主應(yīng)用程序的HTML/ASPX代碼:
2. Silverlight只支持PNG格式的圖片,不能直接使用GIF格式的圖片。如果你一定要使用GIF圖片的話,可以考慮使用基于Silverlight開發(fā)的 .NET Image Tools Library。很多人已經(jīng)構(gòu)建了將GIF轉(zhuǎn)換為PNG的Web服務(wù),可以直接使用。我推薦你使用Paint.NET來(lái)進(jìn)行圖片格式轉(zhuǎn)換。
3. 如果用戶沒(méi)有安裝Silverlight 4插件,下圖中黃色高亮代碼(在ASPX或者HTML文件中)會(huì)提示用戶下載。
如果你改變鏈接如下:
- <a href="http://go.microsoft.com/fwlink/?LinkID=149156"
- style="text-decoration: none;">
- <img src="http://go.microsoft.com/fwlink/?LinkID=161376"
- alt="Get Microsoft Silverlight" style="border-style: none"/>
- </a>
結(jié)果會(huì)一直要求用戶下載最新的Silverlight運(yùn)行時(shí),新版本的運(yùn)行時(shí)會(huì)默認(rèn)向后兼容。
4. Silverlight中所有的數(shù)據(jù)操作都是異步的,下面的代碼其實(shí)是不能工作的:
- MyOldWebService srv = new MyOldWebService();
- string strReturn = srv.GetSomeValue();
- txtValue.Text = strReturn;
我們可以通過(guò)調(diào)用WCF服務(wù)來(lái)解決這個(gè)問(wèn)題(比如在Page的InitializeComponent方法之后來(lái)調(diào)用):
- public MainPage()
- {
- InitializeComponent();
- Service1Client client = new Service1Client();
- client.DoWorkCompleted += new EventHandler<DoWorkCompletedEventArgs>
- (client_DoWorkCompleted);
- client.DoWorkAsync();
- }
- void client_DoWorkCompleted(object sender, DoWorkCompletedEventArgs e)
- {
- MessageBox.Show(e.Result);
- }
5. 優(yōu)先使用Silverlight模板和主題,微軟默認(rèn)為應(yīng)用程序提供了4種主題供用戶選擇。在VS2010中還可以使用內(nèi)置的導(dǎo)航應(yīng)用程序模板,Blend4中還有一些關(guān)于MVVM的模板。一句話,除非有特別需要,否則不要開始從零開始你的應(yīng)用程序。
6. 花時(shí)間學(xué)習(xí)Blend4。我們沒(méi)必要手工寫出全部的XAML代碼,Blend4可以幫助我們創(chuàng)建Silverlight、WPF 以及Windows Phone7應(yīng)用程序。無(wú)法想象如何直接寫出創(chuàng)建故事板或者動(dòng)畫的代碼,但是在Blend中卻很簡(jiǎn)單。Blend的學(xué)習(xí)曲線有一些陡峭,但是是完全值得的。
7. 優(yōu)先使用Silverlight Toolkit。
Silverlight Toolkit是由微軟提供的一系列的Silverlight控件、組件和工具的集合。Silverlight Toolkit獨(dú)立于Silverlight自身的發(fā)布周期,由微軟Silverlight開發(fā)團(tuán)隊(duì)負(fù)責(zé)。通過(guò)積極向社區(qū)發(fā)布產(chǎn)品信息,得到用戶反饋,然后為開發(fā)者和設(shè)計(jì)者快速添加新功能。Silverlight Toolkit完全開源,整個(gè)集合包含了所有開源代碼、單元測(cè)試、示例代碼以及文檔,提供了超過(guò)26個(gè)新的控件涵蓋圖形繪制、樣式布局以及用戶輸入等多個(gè)方面。
8. 需要注意的是,任何人都可以通過(guò)Silverlight Spy或者.NET Reflector來(lái)查看已發(fā)布的Silverlight應(yīng)用程序的代碼。如果你的應(yīng)用程序是基于互聯(lián)網(wǎng)的,最好進(jìn)行代碼混淆。再輔以一些安全限制,或者采用你在其他Silverlight應(yīng)用程序中看到的方式。
#p#
9. Silverlight的XAP文件其實(shí)是更換了后綴名的Zip文件。你可以使用一些外部工具例如7zip,將文件進(jìn)一步壓縮。這些工具還可以打開XAP文件檢查項(xiàng)目的內(nèi)容。
10. 如果并不是所有用戶都需要某個(gè)文件,該文件不應(yīng)該打包在XAP文件中。每一個(gè)反對(duì)這個(gè)說(shuō)法的人都會(huì)說(shuō):“帶寬是廉價(jià)的”,但是如果你有50到100個(gè)圖片或者別的二進(jìn)制文件,那么代價(jià)會(huì)是高昂的??傊抑粫?huì)把所有用戶都必須的文件打包在XAP中。
11. 你可以將Silverlight部署在IIS之外的其他服務(wù)器上。在服務(wù)器上注冊(cè)XAP文件處理后,只要客戶機(jī)上安裝了Silverlight插件,就可以訪問(wèn)Silverlight應(yīng)用程序了。
12. 參加Silverlight技術(shù)社區(qū),可以從中學(xué)到很多東西。我一般從Silverlight官方網(wǎng)站開始,再到Silverlight論壇。每天我都會(huì)訪問(wèn)Silverlight Cream 和 Alvin’s Ashcraft’s Morning Dew,最后看一集John Papa’s Silverlight TV。
13. 如果你掌握了XMAL,這些技術(shù)可以同時(shí)運(yùn)用到Silverlight(廢話),WPF,Windows Phone7, Lightswitch以及微軟Surface。
14. Silverlight可以在當(dāng)前所有的主流瀏覽器包括Google的Chrome 6,IE, Firefox和Safari上工作,操作系統(tǒng)支持Windows和Mac OS。通過(guò)Moonlight可以實(shí)現(xiàn)Linux的支持。
15. Silverlight可以確保用戶在不同的瀏覽器上得到相同的體驗(yàn)。對(duì)于HTML頁(yè)面來(lái)說(shuō),在Firefox上可以正常工作的,那么在IE 6.0上不知道會(huì)發(fā)生什么。但是Silverlight是基于插件的,每個(gè)瀏覽器上都可以確保得到相同的體驗(yàn)。
原文鏈接:http://www.cnblogs.com/powertoolsteam/archive/2011/02/14/1954098.html
【編輯推薦】