一般的な Windows Server AppFabric サンプル アプリケーション
このサンプル アプリケーションは、サンプル販売クライアント アプリケーションと販売サービス アプリケーションで構成されます。 このサンプル アプリケーションは、サンプルで表示される AppFabric 機能のデモンストレーションを支援する共通のアプリケーションとして、他の Windows Server AppFabric サンプルと併用するためのものです。
販売サービス アプリケーションモデルは、注文処理のための簡単なワークフローで、AppFabric によって提供されるビルトイン永続化および追跡サポートを活用できます。 このサービス アプリケーションでは、項目のカタログがクライアント アプリケーションに提供され、各クライアントによる発注処理をシミュレートします。
ヒント
サンプルは学習用としてのみ提供されています。 運用環境での使用を目的としておらず、運用環境でのテストも行われていません。 サンプルについてマイクロソフトのテクニカル サポートは提供されません。
サンプル アプリケーションを含む AppFabric のサンプル パッケージは、https://go.microsoft.com/fwlink/?LinkId=169336 からダウンロードできます。
前提条件
このサンプル アプリケーションは、次の経験または知識レベルを持つ読者を対象にしています。
インターネット インフォメーション サービス (IIS) の基礎知識
Windows Communication Foundation (WCF) および Windows Workflow Foundation (WF) アプリケーションの基礎知識
Windows PowerShell の基礎知識
Microsoft SQL Server の基礎知識
サンプル アプリケーションの場所とファイル
ファイル名 | 説明 |
---|---|
OrderApplication.sln |
2 つのプロジェクトのソリューション ファイル |
SaleClient |
販売クライアント プロジェクト ファイルを含むフォルダー |
App.config、OrderManager.cs、Program.cs、SaleClient.csproj、SaleClientForm.cs、SaleClientForm.Designer.cs、SaleClientForm.resx、AssemblyInfo.cs、Resources.Designer.cs、Resources.resx、Settings.Designer.cs、Settings.settings |
販売クライアントのプロジェクト ファイル |
OrderApplication |
販売サービス プロジェクト ファイルを含むフォルダー |
CancelOrder.cs、CatalogInitializer.cs、CatalogTypes.cs、ProcessNewOrder.cs、SaleService.csproj、SaleService.xamlx、SaleServiceTracking.tp、ShippingProcessor.cs、web.config、AssemblyInfo.cs |
販売サービスのプロジェクト ファイル |
サンプル アプリケーションの設定
管理アクセス許可を使用して、Visual Studio 2010 を開始し、<サンプル>\SampleApplication\OrderApplication\OrderApplication.sln を開きます。ここで、<サンプル> は、AppFabric サンプルをインストールした場所のパスです。 仮想ディレクトリを作成するように求めるメッセージが表示されたら、[はい] をクリックします。
ヒント
次の手順では、Visual Studio 2010 を使用して、Order Application を展開および構築し、販売サービスで使用する既定のアプリケーション プールを構成する方法を示します。
[ビルド] メニューをクリックし、[ソリューションのビルド] をクリックします。 2 つのプロジェクトがエラーなしで出力ウィンドウに構築されていることを確認します。
[スタート] ボタン、[すべてのプログラム]、[Windows Server AppFabric]、[インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックして、インターネット インフォメーション サービス (IIS) マネージャーを起動します。
左側のツリー ビューでサーバー ノードを展開し、[アプリケーション プール] をクリックします。
Application Pools リストで [DefaultAppPool] を右クリックし、[詳細設定] をクリックします。
[.NET Framework バージョン] ボックスの一覧で [v4.0] を選択して [OK] をクリックします。
このサンプルの実行
クライアント アプリケーション <サンプル>\SampleApplication\ OrderApplication\SaleClient\bin\Debug\SaleClient.exe を実行します。
フォーム アプリケーションが、販売サービスに現在の毎日のセールのカタログを送信するように要求を発します。 サービスの実行状態に応じて、これには約 10 秒かかります。
返されたカタログの有効期限情報に注意してください。これには発注が行われないと、カタログの有効期限が約 3 分で切れることが示されています。 24 インチ モニターの [発注数量] を 2 に変更し、Tab キーを押して注文フォームを更新します。 [請求合計額] は $531.98 になります。 カタログの有効期限が切れたら、[新しいカタログを入手する] をクリックして、サービスに新しいセールのカタログを請求できます。
セールのカタログ受信後 3 分以内に (カタログは 3 分で有効期限が切れる)、[発注する] をクリックし、注文状況が受注に変わったことを確認します。 ワークフローの StatusText 変数によって、この状態の変更がキャプチャされます。 追跡プロファイルを使用してアプリケーションを構成し、この変数を追跡できます。 販売クライアント アプリケーションは、ワークフローをポーリングし、注文が 1 分以内に入力されると表示します。 さらに 1 分後、注文は出荷されます。 注文の出荷前は [注文のキャンセル] をクリックして注文をいつでもキャンセルできますが、この注文はキャンセルしないでください。
[注文 ID] ボックスで選択した値を右クリックし、[コピー] をクリックして、注文 ID をクリップボードにコピーします。
販売クライアント アプリケーションを閉じます。 ホストされたワークフローでアクションは必要ありませんが、ワークフローはスケーラビリティのため保持できます。 このサンプルでコピーした注文 ID は、保持したワークフロー インスタンスをクライアント要求に関連付けるために使用されます。
クライアント アプリケーションの新しいインスタンス <サンプル>\SampleApplication \OrderApplication\SaleClient\bin\Debug\SaleClient.exe を起動します。
[注文 ID] ボックスの内側を右クリックしてから、[貼り付け] をクリックして、注文 ID をクリップボードから、フォームの下部にある [注文 ID] ボックスに貼り付けます。
[注文の呼び出し] をクリックします。 これにより、アクティブな注文が呼び出され、現在の状態が表示されます。 ワークフローは、遅れている注文のバックエンド処理をシミュレートします。 約 2 分後、[注文状況] が次の状態で順に切り替わります。 [受注]、[処理済注文]、[出荷済み注文]。 カスタム追跡プロファイルを使用してホストを構成し、カスタム報告用の注文状況の変更を追跡できます。 この注文の処理中に販売クライアント アプリケーションの新しいインスタンスを実行して、注文をキャンセルします。
発注した注文が含まれる販売クライアント アプリケーションを画面の右側に移動します。
クライアント アプリケーションの新しいインスタンス <サンプル>\SampleApplication \OrderApplication\SaleClient\bin\Debug\SaleClient.exe を起動します。
[セールのカタログを入手する] をクリックして、新しいカタログを受信します。 サービスの実行状態に応じて、これには約 10 秒かかります。
セールのカタログがフォームに表示されたら、"クアッド コア 2.8 Ghz プロセッサ" の [発注数量] を 20 に変更します。Tab キーを押して注文フォームを更新します。 [請求合計額] は $6,119.80 になります。
新しいカタログの有効期限が切れる前に [発注する] をクリックし、注文状況が [受注] に変わったことを確認します。
注文が出荷される前に、すぐ [注文のキャンセル] をクリックし、注文状況が [キャンセル済み注文] に変わったことを確認します。
展開された Sale Service Web アプリケーションを削除する
[スタート] ボタン、[すべてのプログラム]、[Windows Server AppFabric]、[インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックして、インターネット インフォメーション サービス (IIS) マネージャーを起動します。
左側のツリー ビューでサーバー ノードを展開します。 [サイト] を展開し、[既定の Web サイト] を展開します。
[OrderApplication] ノードをクリックして、[削除] を押します。
選択したアプリケーションの削除を確認するメッセージが表示されたら、[はい] をクリックします。
デモ
販売サービス アプリケーションは、Microsoft Visual Studio 2010 で WCF ワークフロー サービス アプリケーション テンプレートを使用して構築されています。販売サービスによって提供されるカタログは、新聞またはオンライン サイトでのセールに似たものを意図しています。 セールは限られた時間内のみ利用できます。 フォームベースのクライアント アプリケーションがセールのカタログを要求してから、ワークフローでカタログの有効期限が切れるまで、ユーザーには 3 分与えられます。
ユーザーが発注すると、販売サービスによって発注 ID が提供されます。 この発注 ID は、保持されたワークフロー インスタンスとクライアント要求との関連付けに使用されます。 クライアント要求でワークフローを再アクティブ化し、関連付けによって、注文の状態を確認するか、出荷されていない場合は注文をキャンセルできます。 販売サービスによって注文が発注されると、注文状況は約 3 分で "受注" から "処理済み注文" に移行します。 さらにその約 3 分後、注文状況は "出荷済み注文" に変わります。
サンプル追跡プロファイル (SaleServiceTracking.tp) を使用して、ワークフローの "StatusText" および "PurchaseTotal" 変数での追跡を有効にできます。 これにより、ワークフローのさまざまなポイントで、これらの変数に関連する情報を追跡するようにサービスを構成できます。 このサンプルで提供されている追跡プロファイルを使用することで、次の情報が追跡されます。
有効期限の切れたカタログ
キャンセル済み注文
処理済み注文
出荷済み注文 ReplaceThisText
出荷済み注文に関連する購入合計額
追跡情報が追跡データベースに記録されると、追跡対象データから状態レポートを構築できます。 この追跡情報は、他のサンプルでの使用を意図しています。
2011-12-05