Web Cloud Service を新規に作成
プロジェクト名は SlipReport。指定した期間中の伝票の一覧を表示するサンプルを作ります。
ソリューションに StorageClient プロジェクトを追加
Windows Azure SDK の samples に含まれているものを、ソリューションのフォルダにコピーします。
ソリューションに新規 Silverlight プロジェクトを追加
作成する Silverlight アプリケーションは WebRole にホストさせます。
先に Silverlight で画面だけ作っておきます
<UserControl x:Class="SlipReport_Page.Page" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:SysControls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" xmlns:SysData="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" xmlns:MSControls="clr-namespace:Microsoft.Windows.Controls;assembly=Microsoft.Windows.Controls" Width="400" Height="300"> <MSControls:DockPanel x:Name="LayoutRoot" Background="White" LastChildFill="True"> <StackPanel Orientation="Horizontal" MSControls:DockPanel.Dock="Top"> <StackPanel.Resources> <Style x:Name="DefaultLabel" TargetType="MSControls:Label"> <Setter Property="VerticalContentAlignment" Value="Center"/> </Style> </StackPanel.Resources> <MSControls:Label Style="{StaticResource DefaultLabel}" Content="出力期間"/> <SysControls:DatePicker x:Name="_beginDate"/> <MSControls:Label Style="{StaticResource DefaultLabel}" Content="〜"/> <SysControls:DatePicker x:Name="_endDate"/> <Button Content="決定" Click="Button_Click"/> </StackPanel> <SysData:DataGrid x:Name="_dataGrid" MSControls:DockPanel.Dock="Top" ItemsSource="{Binding}"> </SysData:DataGrid> </MSControls:DockPanel> </UserControl>
トリポトみたいな美麗な UI は、私のセンスでは難しいです…。
ここで困ったことが
StorageClient は Silverlight プロジェクトでは無いため、Silverlight から直接使うことはできません。
どうやって Windows Azure Storage Service(以下 WASS) に保存したデータを取得しようかな…。
そうだ!
Silverlight でもサービス参照が使えます。
- WebRole に WCF サービスをホストさせ
- Silverlight からはサービス参照で WCF サービスを呼び出すようにし
- WCF サービス内で StorageClient を使う
ようにすれば、WASS に保存されたデータを Silverlight から取得できるかも。
私にはこの方法しか思いつきません。Toripoto ではどんな方法を採用しているのか気になるところです。Toripoto が採用している方法や、もっと良い方法を知っている方はどうか教えてください><
次回へ続く
WASS の Table を利用する WCF サービスを作成して、WebRole にホストさせてみます。