自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Silverlight 4 初學(xué)者的10大經(jīng)典問答

開發(fā)
在學(xué)習(xí)Silverlight 4的過程中,Silverlight的最新版本幾乎沒有指南或圖書,我建立了一個(gè)列表,這個(gè)列表包括十個(gè)最經(jīng)典的問題的解答,當(dāng)我剛開始學(xué)習(xí)Silverlight的時(shí)候,我總是希望能更容易地找到這些問題的答案。

我正在自學(xué)Silverlight / WPF,我打算用它們來實(shí)現(xiàn)我在StannardLabs的下一個(gè)大項(xiàng)目的一部分:一系列支持WinMo7 / Android / iOS phones的休閑小游戲。學(xué)習(xí)每個(gè)平臺是如何工作的,有什么區(qū)別,和在每個(gè)平臺上的應(yīng)用程序商店的有什么區(qū)別成了家常便飯。

在學(xué)習(xí)Silverlight 4的過程中,Silverlight的***版本幾乎沒有指南或圖書,我建立了一個(gè)列表,這個(gè)列表包括十個(gè)最經(jīng)典的問題的解答,當(dāng)我剛開始學(xué)習(xí)Silverlight的時(shí)候,我總是希望能更容易地找到這些問題的答案。也許是因?yàn)槲沂褂昧隋e(cuò)誤的詞匯來搜索,或者,也許有一些事情專業(yè)的Silverlight / WPF開發(fā)人員認(rèn)為很明顯,并不需要包括在他們的圖書和博客條目里。所以我不能很快地找出這些問題的答案。為了方便大家,我首先對這些問題進(jìn)行研究。

這是我的列表:

1,在一個(gè)應(yīng)用程序中,我怎樣導(dǎo)航到不同的Silverlight內(nèi)容?

答:這時(shí)候,請考慮一下,Silverlight是一種基于Web的技術(shù),所以你真正問的問題是“在一個(gè)Silverlight應(yīng)用程序中,我怎樣建立獨(dú)立的頁面?”很幸運(yùn),這意味著你可以參考:Silverlight的使用:Navigation框架和Silverlight頁面(http://msdn.microsoft.com/en-us/library/cc838245%28VS.95%29.aspx)。

我找到的最容易的解決方案是使用這些工具建立一個(gè)母版頁(Main.xaml或類似的其他文件),在它的中間,要放置一個(gè)Silverlight的Frame元素,然后在這個(gè)frame里,你要替換你的可交換的頁面。在Silverlight中Frame和Navigation如何工作(http://www.flickr.com/photos/50581866@N06/4863500755/

2,在一個(gè)Silverlight應(yīng)用程序中,我怎樣建立一個(gè)超鏈接,來鏈接到一個(gè)Web頁面?

答:也是使用Silverlight的Navigation框架,在我的答案里,我主要回答這個(gè)個(gè)問題:“我怎樣在Silverlight中建立超鏈接,來鏈接到外部的內(nèi)容(http://msdn.microsoft.com/en-us/library/cc838245%28VS.95%29.aspx#external_navigation),并在一個(gè)Web瀏覽器中打開它?!边@是MSDN中的代碼樣例,它說明了你要怎么做:
 

3,在一個(gè)Silverlight應(yīng)用程序中,我怎樣打開一個(gè)模式對話框窗口?

答:首先,你要知道Silverlight并不是Windows Forms或WPF,它們都為那些過去使用Win32 API的程序員實(shí)現(xiàn)了模式對話框的行為。Silverlight是一個(gè)跨平臺的技術(shù),Silverlight應(yīng)用程序要在多個(gè)環(huán)境下運(yùn)行,所以你過去使用的一些Win32 API下的行為,它的.NET后裔(Silverlight)將無法使用。所以你過去在WPF下使用的模式對話框工具,在Silverlight下無法使用。話雖這樣說,在Silverlight中,要實(shí)現(xiàn)一個(gè)和模式對話框類似的用戶界面元素是很容易的。這是兩個(gè)參考資源,說明了如何實(shí)現(xiàn)這樣的功能:

Silverlight中的模式窗口(http://www.codeproject.com/KB/silverlight/slmodal.aspx
Silverlight中的可拖動(dòng)窗口或DataGrid(http://forums.silverlight.net/forums/p/12467/41324.aspx

4,在一個(gè)TextBlock元素中,我怎樣把一小段內(nèi)嵌文本設(shè)置成不同的字體樣式?

答:從本質(zhì)上來說,你問的是HTML中的標(biāo)簽在XAML / WPF中的等價(jià)物,以便于你可以在一個(gè)TextBlock元素里選擇性的應(yīng)用各種樣式。幸運(yùn)的是,這個(gè)等價(jià)物的確存在——它被稱為Run元素,你可以在TextBlock元素的文本內(nèi)容里的任何地方使用它。這是一些在Silverlight中使用Run元素的例子(http://stackoverflow.com/questions/2435880/is-it-possible-to-seletively-color-a-wrapping-textblock-in-silverlight-wpf),這是其中一個(gè)例子:

 
        
             Republican
        

        
             Democrat
        

 

5,對于Silverlight來說,實(shí)現(xiàn)session-specific存儲的***方法是什么?

答:因?yàn)槲覀兪褂肏TTP——一個(gè)無狀態(tài)的協(xié)議,所以這個(gè)問題并不像看上去那么棘手——如果你和我一樣是一個(gè)ASP.NET的開發(fā)人員,那么你應(yīng)該比那些編寫桌面應(yīng)用程序的程序員更了解session的概念和不同的狀態(tài)

這是個(gè)好消息:Silverlight能像桌面應(yīng)用程序那樣處理狀態(tài)!在一些“輕量級”的場景下,你可以在你的application類的幾個(gè)公共屬性上存儲你的session。在一些“中量級”的場景下,你可以創(chuàng)建一個(gè)靜態(tài)的session類。在一些“重量級”的場景下,你可以使用獨(dú)立存儲的方式。如果你想了解更多的信息,可以查看Silverlight的官方論壇中的這個(gè)帖子(http://forums.silverlight.net/forums/p/65328/161221.aspx)。

6,在Silverlight應(yīng)用程序中,有什么令人信服的理由一定要使用RIA-service來代替普通的WCF service嗎?

答:如果你過去讀過《Microsoft .NET: Architecting Applications for the Enterprise》(即使你不是一個(gè)企業(yè)級應(yīng)用程序的開發(fā)人員(我也不是),你也應(yīng)該讀一下關(guān)于設(shè)計(jì)工具和各種模式的內(nèi)容),那么你應(yīng)該知道每個(gè)設(shè)計(jì)問題(比如這個(gè)問題)的答案總是“要根據(jù)具體情況而定”的。Shawn Wildermuth的這篇文章比我編排的要好得多:主導(dǎo)你選擇一個(gè)數(shù)據(jù)服務(wù)的實(shí)現(xiàn)(而不是另一個(gè))的一些因素(http://wildermuth.com/2009/09/29/Choosing_a_Data_Access_Layer_for_Silverlight_3),但是為了回答這個(gè)問題,我會(huì)把它們總結(jié)一下:

如果你的目標(biāo)是增強(qiáng)一個(gè)Silverlight應(yīng)用程序,讓它運(yùn)行的更快,那么你應(yīng)該使用RIA services,因?yàn)楹推渌娲慕鉀Q方案相比,你不需要寫很多的代碼,也不需要擔(dān)心WCF跨域的策略文件,變更跟蹤,等等。

7,反之,在Silverlight應(yīng)用程序中,你為什么選擇WCF service而不是RIA-service呢?

答:我決定選擇普通的WCF service而不是RIA-service,因?yàn)椋P(guān)于這個(gè)問題我已經(jīng)讀過這篇文章了(http://stackoverflow.com/questions/879725/what-is-net-ria-services),在你需要支持Silverlight以外的客戶端(對我而言,就是iOS和Android客戶端)的情況下,WCF是一個(gè)更好的選擇。另外,如果你已經(jīng)有一個(gè)現(xiàn)成的WCF service,你應(yīng)該使用這個(gè)服務(wù),而不是用RIA service來重寫所有的東西。

8,RIA-services能輕松地在非Silverlight應(yīng)用程序中重用嗎?

答:答案很明顯是“不能”,但是我一直是一個(gè)Silverlight的新手,所以可能我是錯(cuò)的。如果你需要支持其他的客戶端,尤其是非.NET framework上的一些客戶端,我建議你使用WCF服務(wù)。

9,我怎樣在運(yùn)行時(shí)動(dòng)態(tài)地把XAML元素添加到我的應(yīng)用程序中?

答:有數(shù)百種不同的方法可以在運(yùn)行時(shí)把新的XAML元素添加到你的Silverlight應(yīng)用程序中。我個(gè)人最喜歡的是這個(gè)例子,它說明了你怎樣使用LINQ來在Silverlight應(yīng)用程序中建立一個(gè)附加的data-driven元素(http://www.silverlight.net/learn/videos/all/use-linq-to-dynamically-create-xaml-elements/)。關(guān)于如何用編程的方式添加新的XAML元素,如果你正在找一個(gè)的簡單的指南,我可以提供給你一個(gè):“Silverlight控件的動(dòng)態(tài)處理”。(http://dotnetslackers.com/articles/silverlight/Dynamic-Manipulation-of-Silverlight-controls.aspx),它總結(jié)的很好。

10,在Silverlight應(yīng)用程序中,實(shí)現(xiàn)表單驗(yàn)證的***方法是什么?

答:哪里有數(shù)據(jù),哪里就一定需要驗(yàn)證。Silverlight自帶了驗(yàn)證框架,和ASP.NET自帶的驗(yàn)證框架很相似。關(guān)于如何入門,這是我找到的一個(gè)***的例子:從入門到精通:Silverlight 3 表單驗(yàn)證(http://www.silverlightshow.net/items/Creating-Rich-Data-Forms-in-Silverlight-3-Validation.aspx)。

別忘了實(shí)踐一下這些方法,我希望在社區(qū)中這些問題可以得到更好的解答,或者,如果能提出一些其他的更好的問題,那就更好了。

責(zé)任編輯:馬沛 來源: 51CTO.com
相關(guān)推薦

2011-06-17 14:54:31

Qt

2011-06-17 15:44:25

Qt

2021-01-08 10:45:29

Python開發(fā)web

2023-04-09 16:17:05

ChatGPT人工智能

2011-04-12 10:13:24

2011-07-11 17:45:13

java

2011-09-16 09:38:19

Emacs

2022-04-24 15:21:01

MarkdownHTML

2020-03-02 14:20:46

PythonGitHub編程語言

2015-07-20 13:56:59

SDN

2022-10-10 15:28:45

負(fù)載均衡

2010-12-01 09:48:01

Linux部署

2009-11-18 09:30:43

2011-05-18 11:01:39

Oracle

2021-05-10 08:50:32

網(wǎng)絡(luò)管理網(wǎng)絡(luò)網(wǎng)絡(luò)性能

2022-03-28 09:52:42

JavaScript語言

2023-07-28 07:31:52

JavaScriptasyncawait

2023-07-03 15:05:07

預(yù)測分析大數(shù)據(jù)

2011-07-04 14:14:54

java

2009-09-28 09:45:00

CCNA學(xué)習(xí)經(jīng)驗(yàn)CCNA
點(diǎn)贊
收藏

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