北京北大青鳥(niǎo)學(xué)校學(xué)術(shù)部丁老師介紹Digg應(yīng)用的開(kāi)發(fā),先選擇Visual Studio 2008 中的文件->新項(xiàng)目菜單項(xiàng),使用新項(xiàng)目對(duì)話框創(chuàng)建一個(gè)“Silverlight Application” (北京北大青鳥(niǎo)學(xué)校專(zhuān)家提醒:你需要在Beta1發(fā)布后,下載和安裝 VS 2008的Silverlight工具才能得到這個(gè)支持):
我們將該項(xiàng)目命名為“DiggSample”。在點(diǎn)擊OK按鈕后, Visual Studio 會(huì)顯示另外一個(gè)對(duì)話框,允許我們選擇我們是否只要?jiǎng)?chuàng)建一個(gè)Silverlight應(yīng)用項(xiàng)目,或者還要加一個(gè)服務(wù)器端的ASP.NET Web項(xiàng)目到包含Silverlight應(yīng)用的解決方案里去:
北京北大青鳥(niǎo)學(xué)校專(zhuān)家介紹:在這個(gè)例程里,我們將選擇還要添加一個(gè)ASP.NET Web Application 項(xiàng)目到解決方案里去,并將它命名為“DiggSample_WebServer”。在點(diǎn)擊OK之后,Visual Studio 會(huì)為我們創(chuàng)建一個(gè)解決方案,里面包含一個(gè)Silverlight 客戶端應(yīng)用和一個(gè)ASP.NET web 服務(wù)器端應(yīng)用:
如果我們做一次編譯的話, Visual Studio 會(huì)自動(dòng)把編譯好的 Silverlight 應(yīng)用拷貝到我們的web服務(wù)器項(xiàng)目中去,不需要手工的步驟或配置。VS為我們創(chuàng)建的默認(rèn)的web服務(wù)器項(xiàng)目包含一個(gè)ASP.NET網(wǎng)頁(yè)和一個(gè)靜態(tài)的 HTML網(wǎng)頁(yè),我們可以用來(lái)運(yùn)行和測(cè)試其中的Silverlight應(yīng)用。
注: Silverlight應(yīng)用可用于任何web服務(wù)器(包括Linux上的Apache),宿主于靜態(tài)HTML文件或者任何服務(wù)器端生成的網(wǎng)頁(yè)(包括PHP, Java, Python, Ruby等等)中。在這個(gè)Digg樣例中,我們不會(huì)寫(xiě)任何服務(wù)器端的代碼,而是將使用Silverlight的跨域networking功能,來(lái)直接訪問(wèn)Digg服務(wù)的API。我選擇創(chuàng)建一個(gè)ASP.NET web服務(wù)器項(xiàng)目,主要是想獲得自動(dòng)的部署,并且使用它內(nèi)置的web服務(wù)器來(lái)做測(cè)試。
理解Silverlight應(yīng)用里都有些什么
在默認(rèn)情形下,一個(gè)新建的Silverlight應(yīng)用項(xiàng)目包含一個(gè)Page.xaml和一個(gè) App.xaml文件,以及與它們相關(guān)的后臺(tái)(code behind )類(lèi)文件(可以用VB, C#, Ruby 或Python來(lái)編寫(xiě)):
XAML文件是XML文本文件,可以用來(lái)用聲明的方式指定 Silverlight 或 WPF應(yīng)用的用戶界面。XAML還可更廣泛地用來(lái)用聲明的方式代表.NET對(duì)象。
App.xaml 文件一般用來(lái)聲明譬如象畫(huà)刷和樣式對(duì)象這樣可在整個(gè)應(yīng)用中共享的資源。App.xaml的后臺(tái)Application類(lèi)可用來(lái)處理應(yīng)用級(jí)的事件,象Application_Startup, Application_Exit 和Application_UnhandledException。
Page.xaml 文件,在默認(rèn)情形下,是在應(yīng)用激活時(shí)裝載的起始的UI控件。在其中,我們可以使用UI控件來(lái)定義我們的用戶界面,然后在Page的后臺(tái)代碼類(lèi)里處理它們的事件(詳見(jiàn)后文)。
在我們編譯DiggSample項(xiàng)目時(shí),在默認(rèn)情形下,Visual Studio 會(huì)把代碼和XAML標(biāo)識(shí)編譯進(jìn)一個(gè)標(biāo)準(zhǔn)的 .NET 程序集文件中,然后把它和任何靜態(tài)的資源(象圖片或我們想要包含的靜態(tài)文件)包裝進(jìn)硬盤(pán)上一個(gè)叫做“DiggSample.xap”的文件中去:
“.xap”文件(其音發(fā)作“zap”)使用標(biāo)準(zhǔn)的 .zip壓縮算法來(lái)減小客戶端下載的大小。一個(gè)“hello world”.NET Silverlight 應(yīng)用(用VB或C#編寫(xiě)的)其大小大概為4KB。
注: Beta1版本中的一些控件是在程序集中實(shí)現(xiàn)的,如果使用這些控件的話,這些程序集會(huì)重新發(fā)布于應(yīng)用的 .xap 文件中(會(huì)增加應(yīng)用的大小,超出4KB的基底大小)。在Digg應(yīng)用中使用的所有控件將會(huì)在Beta2版和最終版的核心Silverlight下載包中,這意味著完成的應(yīng)用的總下載大小大概只在6-8KB范圍內(nèi)(所以是非常小,下載起來(lái)非常快)。
要宿主和運(yùn)行一個(gè)Silverlight 2 應(yīng)用,你可以把
HTML和ASP.NET測(cè)試網(wǎng)頁(yè)(內(nèi)含