CodeZine(コードジン)

特集ページ一覧

SilverlightでAzureに飛び出そう!

WCF RIAサービスを使ったWeb連携アプリを作ろう 第1回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2011/05/24 14:00
目次

Silverlightアプリケーションの作成

 作成したサービスとコントロールをバインドして、動作を確かめます。

データソースの作成

 Home.xamlをアクティブにし、Visual Studioメニューから[データ]-[データ ソースの表示]を行って、クライアントプロキシコードを自動生成します。FormTemplateManagerプロジェクトのPropertiesにはDataSourcesが自動生成され、[データ ソース]ペインにはTransportationFeeContextが表示されます。

図11 [データ ソースの表示]によるコードの自動生成
図11 [データ ソースの表示]によるコードの自動生成

(1)コントロールにバインド

 今回は、プロジェクト名をコントロールにバインドします。[データ ソース]ペインの[TransportationFeeContext]-[TransportationFeeEntityModel]-[ProjectName]-[ComboBox]の順に選択します(ComboBoxが無い場合[カスタマイズ]でComboBoxをチェックします)。[ProjectName]のアイコンがComboBoxのアイコンに変わったら、[申請]ボタンの下あたりにドラッグしてください。

図12 バインドするコントロールの設定
図12 バインドするコントロールの設定

(2)テストデータの表示

 データベースにサンプルのデータが入っている場合は、F5キーでプロジェクト名が表示されます。

図13 動作の確認
図13 動作の確認

コントロールのイベントを設定

 続いて、Silverlightアプリケーションの各ボタンの動作を作成します。Home.xamlの2つのボタンにイベントを設定します。XAMLエディター側でClickイベントを追加すると[<新しいイベント ハンドラー>]を選択し、イベントを作成することができます。

図14 イベントの作成
図14 イベントの作成

(1)[申請]ボタンの動作

 [申請]ボタンのクリックでは、データベース更新のサンプルとして、固定値をデータベースに登録するようにしたいと思います。

リスト00 更新処理の作成
private void Claimbutton_Click(object sender, System.Windows.RoutedEventArgs e)
{
  Web.Models.TransportationFeeDataModel insertData = new Web.Models.TransportationFeeDataModel();
  insertData.AgreementDate = System.DateTime.Parse("2011/5/20");
  insertData.ExecuteDate = System.DateTime.Parse("2011/5/30");
  insertData.InboundCost = short.Parse("270");
  insertData.InboundRoot = "東京-川口";
  insertData.Name = "鈴木";
  insertData.OutboundCost = short.Parse("270");
  insertData.OutboundRoot = "川口-東京";
  insertData.ProjectName = "CodeZine Project";
  insertData.TemporaryCost = short.Parse("0");
  ((System.Windows.Controls.DomainDataSourceView)this.grid1.DataContext).Add(insertData);
  this.transportationFeeDataModelDomainDataSource.SubmitChanges();
}

(2)動作の確認

 F5キーで実行し、申請ボタンをクリックしてください。プロジェクト名が「CodeZine Project」に変わったら更新されています。

図15 動作確認
図15 動作確認

(3)データベースの確認

 Visual Studioのサーバーエクスプローラーでテーブルデータを表示しデータが追加されていることを確認してください。

図16 データベースの確認
図16 データベースの確認

まとめ

 今回のサンプルアプリケーションは、レイヤー分割に主眼におき、ビジネスロジックを作成していません。

 次回は、今回作成したサンプルアプリケーションをAzureに移行する手順を解説します。Azureに移行するデータベースは、モデルを通してモデルからSQL Azureのデータベースへ、SQL AzureのデータベースからASP.NETアプリケーションが使用するEntity Data Modelへと変換していきます。この手順により、コードレスでAzure移行を行います。この作業を通してAzureアプリケーションのレイヤー構成を分析することができます。

図17 サンプルアプリケーションのレイヤー構成
図17 サンプルアプリケーションのレイヤー構成

 アプリケーションのレイヤー設計をする際に、物理的な配置によるレイヤーの分離は、最もメンテナンスの良い分離です。しかしながら、Azureアプリケーションに限らず、N層アプリケーションでは完全な分離が難しいケースがあります。モデルを先に設計、実装することで工数削減とMVCの実装ができることについても解説します。



  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 2011/06/07 14:20 用語の誤り、論旨を修正しました。詳細な正誤表は著者ブログ記事(http://www.processtune.com/blog/?p=187)を参照ください。

著者プロフィール

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

  • WINGSプロジェクト 高尾 哲朗(タカオ テツロウ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5