You are on page 1of 11

1

WCF RIA Services 實作 Part I


2

初次使用 WCF RIA Services

開啟 Visual Studio 2010 ,新增一個「Silverlight 應用程式」專案,於畫面下方的「名稱欄


位」裏面,輸入所要設定的專案名稱,例如「NSCManagement」,按一下「確定」按鈕,完
成專案的新增作業。

緊接著會出現「新 Silverlight 應用程式」對話方塊,請特別注意於下方的「選項」區域中,


勾選「啟用 WCF RIA 服務」選項(「啟用 WCF RIA 服務」選項在預設的情形下並沒有核
取),如此一來才能在接下來的專案順利啟動此服務,按一下「確定」按鈕完成新專案的
建立作業。

2
3

緊接著出現的結果畫面如下:

請特別注意「方案總管」視窗,其中有包含兩個專案,分別是「NSCManagement」與
「NSCManagement.web」,前者是 Silverlight 專案,後者以 web 為名稱字尾的專案則是提
4

供裝載 Silverlight 應用程式的 ASP.NET 專案。

到目前為止,我們建立了一個基礎的 Silvelright 應用程式專案,接下來要針對指定的


SQL Server 資料庫進行連接,取得其中的資料,將其展示於 Silverlight 頁面。

2..1.1 建立中間層
WCF RIA Services 透過實體資料模式,建立所需的中間層,串接 Silverlight 與
ASP.NET,連接底層資料來源。

 ADO.NET 實體資料模型

於「NSCManagement.web」專案加入新增項目,選擇「資料 > ADO.NET 實體資料模型」,


按一下「新增」按鈕,出現如下的「加入新項目」對話視窗:

在這個視窗中,於左邊「已安裝的範本」中,點選「資料」將其選取,然後點擊「ADO.NET
實體資料模型」,於下方「名稱」欄位中,輸入自訂名稱,例如「Categories.edmx」,按一下
「新增」按鈕,出現「實體資料模型精靈」,開始一連串的資料庫連線設定步驟。

1. 第一個畫面要求選擇資料庫連線,按一下右邊的「新增連接」,開啟「連接屬性」設定視
窗。
4
5

2. 由於筆者本機環境安裝了 SQL Server 資料庫,因此這個視窗會自動完成偵測。現在選


取所要連接的的「伺服器名稱」,並於畫面下方「連接至資料庫」區域中,選擇所要連接的
資料庫,例如本書的範例資料庫「KTMS」,按一下「測試連接」按鈕,確定沒有問題,按
一下 「確定」按鈕完成設定。
6

3. 接下來是「選擇模型內容」,我們要根據指定的資料庫建立資料模型,因此選取其中的
「從資料庫產生」,按「下一步」按鈕,完成設定。

4. 最後一個步驟是「選擇你的資料庫物件」,將其展開,目前這個資料庫當中,只有幾個
示範資料表,勾選所需的資料表,例如「Categories」,按一下「完成」按鈕,結束整個「實
體資料模型精靈」的設定工作。

6
7

回到 NSCManagement 專案畫面,其中「Categories.edmx」實體資料模型檔案已經成功建立,
在 NSCManagement.Web 專案中可以找到這個檔案,檔案內容同時以圖示顯示,如下圖:
8

實體資料模型建立完成之後,重新建置方案,接下來就可以進一步建立所需的中間層服
務。

「ADO.NET 實體資料模型」細節的部份,請參考我們的著作《Entity Framework 與


LINQ 開發實戰》

 中間層-Domain Service Class

WCF RIA Services 透過建立 Domain Service Class 以支援中間層的服務,同樣的,此種檔


案亦是建立在 NSCManagement.Web 專案。

緊接著在 NSCManagement.web 加入另外一個新增項目,選擇 Visual C# 範例下的 Web 項


目,點擊右邊的「Domain Services Class」項目,設定「名稱」欄位值為 CategoriesService ,
按一下「新增」按鈕,開始一連串的設定。

8
9

接下來的畫面是加入新的 Domain service 類別設定對話方塊:

在這個畫面中,注意中央的「Available DataContextObjectContext classes」選單,你會看到


其中出現方才建立的資料實體物件 KTMSEntities ,下方的清單中,顯示其中的
Categories 實體,將其勾選,然後按下 OK 按鈕,即可完成設定。

若是完成「ADO.NET 實體資料模型」設定時,沒有重新建置方案,「Add Domain


Service Class」對話方塊中,不會顯示可用的資料模型。
10

NSCManagement.web 到目前為止設定完畢,再一次重新建置方案。

現在來看看方案總管,其中的 NSCManagement.web 專案裏面,多了一個


Categories.edmx 以及 CategoriesService.cs 這兩個檔案。

切換至 Silverlight 專案 NSCManagement ,按一下「顯示所有檔案」按鈕,出現數個資料夾,


請特別注意其中的 Generated_Code ,如下圖:

將 Generated_Code 展開,出現一個 NSCManagement.Web.g.cs 檔案,這個檔案於建立


Domain Service Class 的過程中自動產生,無法修改,負責串接 Silverlight 與 ASP.NET 專
案,它是使用 WCF RIA Service 的關鍵。
10
11

下一篇繼續討論 Generated_Code 的內容。

You might also like