北京北大青鳥學(xué)校講解:Silverlight 2教程中文版(一)

北京北大青鳥學(xué)校學(xué)術(shù)部丁老師介紹Digg應(yīng)用的開發(fā),先選擇Visual Studio 2008 中的文件->新項(xiàng)目菜單項(xiàng),使用新項(xiàng)目對話框創(chuàng)建一個“Silverlight Application” (北京北大青鳥學(xué)校專家提醒:你需要在Beta1發(fā)布后,下載和安裝 VS 2008的Silverlight工具才能得到這個支持):

北大青鳥學(xué)校

我們將該項(xiàng)目命名為“DiggSample”。在點(diǎn)擊OK按鈕后, Visual Studio 會顯示另外一個對話框,允許我們選擇我們是否只要創(chuàng)建一個Silverlight應(yīng)用項(xiàng)目,或者還要加一個服務(wù)器端的ASP.NET Web項(xiàng)目到包含Silverlight應(yīng)用的解決方案里去:

北大青鳥學(xué)校

北京北大青鳥學(xué)校專家介紹:在這個例程里,我們將選擇還要添加一個ASP.NET Web Application 項(xiàng)目到解決方案里去,并將它命名為“DiggSample_WebServer”。在點(diǎn)擊OK之后,Visual Studio 會為我們創(chuàng)建一個解決方案,里面包含一個Silverlight 客戶端應(yīng)用和一個ASP.NET web 服務(wù)器端應(yīng)用:

北大青鳥學(xué)校

如果我們做一次編譯的話, Visual Studio 會自動把編譯好的 Silverlight 應(yīng)用拷貝到我們的web服務(wù)器項(xiàng)目中去,不需要手工的步驟或配置。VS為我們創(chuàng)建的默認(rèn)的web服務(wù)器項(xiàng)目包含一個ASP.NET網(wǎng)頁和一個靜態(tài)的 HTML網(wǎng)頁,我們可以用來運(yùn)行和測試其中的Silverlight應(yīng)用。

注: Silverlight應(yīng)用可用于任何web服務(wù)器(包括Linux上的Apache),宿主于靜態(tài)HTML文件或者任何服務(wù)器端生成的網(wǎng)頁(包括PHP, Java, Python, Ruby等等)中。在這個Digg樣例中,我們不會寫任何服務(wù)器端的代碼,而是將使用Silverlight的跨域networking功能,來直接訪問Digg服務(wù)的API。我選擇創(chuàng)建一個ASP.NET web服務(wù)器項(xiàng)目,主要是想獲得自動的部署,并且使用它內(nèi)置的web服務(wù)器來做測試。

理解Silverlight應(yīng)用里都有些什么

在默認(rèn)情形下,一個新建的Silverlight應(yīng)用項(xiàng)目包含一個Page.xaml和一個 App.xaml文件,以及與它們相關(guān)的后臺(code behind )類文件(可以用VB, C#, Ruby 或Python來編寫):

北大青鳥學(xué)校

XAML文件是XML文本文件,可以用來用聲明的方式指定 Silverlight 或 WPF應(yīng)用的用戶界面。XAML還可更廣泛地用來用聲明的方式代表.NET對象。

App.xaml 文件一般用來聲明譬如象畫刷和樣式對象這樣可在整個應(yīng)用中共享的資源。App.xaml的后臺Application類可用來處理應(yīng)用級的事件,象Application_Startup, Application_Exit 和Application_UnhandledException。
Page.xaml 文件,在默認(rèn)情形下,是在應(yīng)用激活時裝載的起始的UI控件。在其中,我們可以使用UI控件來定義我們的用戶界面,然后在Page的后臺代碼類里處理它們的事件(詳見后文)。

在我們編譯DiggSample項(xiàng)目時,在默認(rèn)情形下,Visual Studio 會把代碼和XAML標(biāo)識編譯進(jìn)一個標(biāo)準(zhǔn)的 .NET 程序集文件中,然后把它和任何靜態(tài)的資源(象圖片或我們想要包含的靜態(tài)文件)包裝進(jìn)硬盤上一個叫做“DiggSample.xap”的文件中去:

“.xap”文件(其音發(fā)作“zap”)使用標(biāo)準(zhǔn)的 .zip壓縮算法來減小客戶端下載的大小。一個“hello world”.NET Silverlight 應(yīng)用(用VB或C#編寫的)其大小大概為4KB。

注: Beta1版本中的一些控件是在程序集中實(shí)現(xiàn)的,如果使用這些控件的話,這些程序集會重新發(fā)布于應(yīng)用的 .xap 文件中(會增加應(yīng)用的大小,超出4KB的基底大。T贒igg應(yīng)用中使用的所有控件將會在Beta2版和最終版的核心Silverlight下載包中,這意味著完成的應(yīng)用的總下載大小大概只在6-8KB范圍內(nèi)(所以是非常小,下載起來非?欤。
要宿主和運(yùn)行一個Silverlight 2 應(yīng)用,你可以把 標(biāo)簽加到任何標(biāo)準(zhǔn)的HTML頁面中(不需要 JavaScript )并將其指向 .xap 文件。Silverlight然后就會自動下載這個.xap 文件,生成實(shí)例,將其宿主于瀏覽器中的HTML網(wǎng)頁中。這是跨瀏覽器(Safari, FireFox, IE等),跨平臺(Windows, Mac, and Linux)工作的。

HTML和ASP.NET測試網(wǎng)頁(內(nèi)含 標(biāo)簽,其引用指向我們的Silverlight 應(yīng)用)是在我們創(chuàng)建項(xiàng)目時為我們自動添加的,這意味著我們只要點(diǎn)擊F5編譯,運(yùn)行和測試就可以了。 (北京北大青鳥學(xué)校提供 未完待續(xù))