SilverLight 2.0愈來愈紅了,因為它提供一個很好的使用者經驗給使用者。但要發揮SilverLight,還必須懂WCF,知道如何在網路上提供Web Services來讓SilverLight程式呼叫,這次會利用Linq to Flickr結合SilverLight以及WCF來讓大家了解這方面的基本概念。
首先新增一個SilverLight專案,名稱取為FlickrSilverLightAP
之後會跳出一個設定視窗,選擇「在方案中加入新的ASP.NET Web專案以裝載Silverlight(N)」
之後在方案總管上,對Page.xaml按右鍵,選擇「於Expression Blend中開啟(X)」
之後會以Expression Blend開啟Page.xaml,在Page.xaml加入1個Button以及TextBox,然後再多加上一個新的Canvas,xaml code如下。
<UserControl x:Class="FlickrSilverlightAP.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="800" Height="600">
<Grid x:Name="LayoutRoot" Background="White">
<TextBox Height="37" HorizontalAlignment="Left" Margin="24,29,0,0" VerticalAlignment="Top" Width="161" Text="" TextWrapping="Wrap" x:Name="TextBox1"/>
<Canvas Margin="228,8,8,8" Background="AliceBlue"/>
<Button Height="29" HorizontalAlignment="Left" Margin="24,108,0,0" VerticalAlignment="Top" Width="161" Content="確定" x:Name="Button1"/></Grid>
</UserControl>
完成的畫面如下
接下來要新增一個WCF服務,讓SilverLight程式可以抓到Flickr上的相片清單。
新增一個Operation。
之後在SilverLight專案上新增剛寫好的WCF Services。
之後再對Services做設定。
在集合型別上,選擇List(重要!)。
之後開啟Page.xaml.cs,開始撰寫按鈕的事件程式碼,這邊主要是去呼叫之前寫好的WCF Service。特別注意,在SilverLight上呼叫Web Service的方式跟傳統ASP.NET上有些不同。SilverLight由於是完全Client端的程式,所以呼叫是採非同步方式,把它想成是AJAX那樣就行了。首先,在Page的建構子上加入下列程式碼。
client物件有一個GetPhotoCompleted的事件,我們必須實作這個事件。
之後,再去呼叫GetPhotoAsync這個method就可以了。
接下來看看執行結果,照慣例,通常都不是很好看= =
藉著這次的範例,可以了解到SilverLight呼叫Web Service方面的基本概念,有興趣的人可以再試試更進階的功能。
留言列表