Silverlight應用程式的.NET專案結構

iDotNetSpace發表於2009-05-11
先讓我們從Silverlight應用程式的.NET專案結構開始,看一下這樣的一個專案中包含了些什麼檔案,這些檔案分別是用來做什麼的。瞭解這些內容有助於我們將來根據自己的需要製作更為複雜的專案內容。在開始介紹之前,請務必安裝Silverlight 1.1 Alpha Refresh。

無論是Silverlight 1.0還是1.1版本,一個Silverlight專案總是包含以下幾種檔案:

1、嵌入Silverlight應用程式的html檔案。

2、用來執行Silverlight應用程式載入工作的JavaScript檔案。

3、定義和描述應用程式介面的XAML檔案。

如果是.NET的專案,介面描述中所定義的新型別都包含在程式集(assembly)檔案中。

我們可以用Microsoft Expression Blend 2 (目前最新的預覽版本是September Preview)或者Visual Studio 2008 Beta2 (需安裝好Silverlight Tool Alpha)來建立一個新.NET的專案。建立成功後,我們就可以看到一個Silverlight的.NET專案包含了如下的目錄結構:

References目錄

檢視該目錄,我們可以看到其中包含了許多(.dll)檔案,這些檔案定義了專案中所引用的各託管型別。如果我們要使用其他自定義的型別,就可能需要手動新增包含該型別定義的.dll檔案。若Silverlight外掛中沒有包含專案所引用的某些程式集檔案,則應用程式使用者需要下載這些程式集檔案到本地。

Page.xaml

專案預設的主介面的XAML描述檔案。

Page.xaml.cs

每個xaml檔案之後都有一個對應的.NET語言檔案。由於我們建立的是C#專案,所以其對應的檔案為.cs檔案。這個檔案對.xaml檔案中的所引用的.NET型別做了定義。通過編譯之後,專案會生成程式集檔案,供.xaml檔案引用,且該程式集檔案會隨Silverlight應用程式一起下載到使用者本地。

Silverlight.js

該檔案包含了執行Silverlight應用程式之前所必需的各種操作,主要檢查使用者是否安裝了符合版本需求的Silverlight。如果沒有安裝,則Silverlight應用程式所在的頁面將會顯示圖示,提示使用者先安裝外掛。這裡我們不建議Silverlight的開發設計人員改變該.js檔案的內容。

TestPage.html(Blend 2中建立的檔名為Default.html)

該檔案為專案的預設主頁,檔案中引入了Silverlight的指令碼檔案來載入Silverlight應用程式。

TestPage.html.js(Blend 2中的檔名為Default_html.js)

該檔案中定義了TestPage.html中呼叫的CreatSilverlight()方法來載入Silverlight應用程式。

讓我們再具體的看一看其中一些檔案所包含的內容:

TestPage.html

以下是引用片段:

Silverlight Project Test Page <!--設定應用程式在html頁面中顯示的大小,也可以用百分比表示,設定為100%則應用程式為自適應大小--&gt.silverlightHost { width: 640px; height: 480px; }<!--以下的ID用來標示DIV,尤其當頁面總有多個Silverlight例項時,這個ID就成為了標示每個Silverlight應用程式的重要標誌--&gt
createSilverlight();



TestPage.html.js

以下是引用片段:

//creatSilverlight函式用來執行載入Silverlight應用程式的操作及相關屬性function createSilverlight(){Silverlight.createObjectEx({//指定了初始化載入的應用程式頁面source: "Page.xaml", parentElement: document.getElementById("SilverlightControlHost"),id: "SilverlightControl",properties: {width: "100%",height: "100%",version: "1.1",enableHtmlAccess: "true"},events: {}});// 下面的函式是預設將鍵盤焦點集中在Silverlight應用程式上document.body.onload = function() {var silverlightControl = document.getElementById('SilverlightControl');if (silverlightControl)silverlightControl.focus();}}

Page.xaml

以下是引用片段:

<!--Canvas是一個包含了各種控制元件和元素的容器,每個Silverlight應用程式都有一個XAML的根檔案,  每個XAML檔案的根都是一個Canvas容器,且只能有一個作為根元素的Canvas容器--&gt


注意:由於Silverlight 1.1還處於Alpha版本,.NET語言中關於Silverlight的一些API可能會與將來的正式版本中有些出入,但是大多數基本的東西還是不變的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-594739/,如需轉載,請註明出處,否則將追究法律責任。

相關文章