Webサイト:リモートデバッグサポート
2週間前にリリースしたWindows Azure SDK 2.2で、Windows Azureクラウドサービス用のリモートデバッグサポートを導入しました。今回のWindows Azureリリースで、Windows Azure Webサイトとも動作するように、このリモートデバッグサポートを拡張しています。
本番環境のVisual Studio内のリモートデバッグサポートで、Windows Azureでコードがどのように動作しているのかについての可視性がこれまで以上に高くなりました。デバッガをアタッチして、クラウドでアプリケーションがどうなっているのかを非常に簡単に確認できます。
VS 2013を使用して、Windows Azure Webサイトのリモートデバッグ
VS 2013を使用して、Windows Azure Webサイトのリモートデバッグを有効するのは、非常に簡単です。まず、Visual Studioで、Webアプリケーションのプロジェクトを開いてください。次に、Visual Studioの"サーバーエクスプローラ"タブで、サーバーエクスプローラのWindows Azure->Web Sitesノードを使用して、Windows Azureで実行しているデバッグしたい展開済みのWebサイトをクリックしてください。そして、右クリックして"Attach Debugger"オプションを選択してください。
これを実行すると、Visual StudioはリモートでWindows Azureで実行されているWebサイトにデバッガをアタッチします。Visual StudioのWebアプリケーションプロジェクトに設定したブレークポイントにヒットすると、デバッガはそのWebサイトの実行を停止します。以下の例では、標準のASP.NET MVCプロジェクトテンプレートのHomeControllerで"ViewBag.Message"ステートメントにブレークポイントが設定されています。ブラウザのWebサイトで"概要"ページを更新すると、ブレークポイントがトリガされ、リモートでVisual Studioを使用してアプリのデバッグができます。
上記を見ると、変数(自動/ウォッチなど)のデバッグ、イミディエイトおよびコマンドウィンドウの使用方法が分かります。
上記のデバッグセッションでは、リクエストオブジェクトの状態を検索したり、動的にViewBag.Messageプロパティを変更するのに、イミディエイトウィンドウを使用しています。"Continue"ボタンをクリックする(またはF5キーを押す)と、アプリは実行を継続し、Webサイトはブラウザにコンテンツを描画します。これにより、リモートでWebアプリが非常に簡単にデバッグできます。
より良いデバッグのためのヒント
デバッグが一番良い状態で行えるようにするために、Visual StudioのWeb発行ダイアログのDebug構成を使用してサイト発行することをお勧めします。これにより、デバッグシンボル情報がWebサイトにアップロードされ、Visual Studioでよりリッチなデバッグが可能になります。このオプションは、Settingsタブ上のWeb発行ダイアログにあります。
本番環境でアプリケーションを最終的にデプロイ/実行する場合、"Release"構成設定を使用することをお勧めします。リリース構成はメモリが最適化されており、最高の本番パフォーマンスを提供します。
Windows Azure Webサイトの診断とデバッグについての詳細は、新しいVisual StudioガイドでWindows Azure Webサイトのトラブルシューティングでご確認ください。
通知ハブ:タグ式を持つセグメント化されたプッシュ型通知サポート
8月に、Windows Azure通知ハブの一般公開を発表しました。
これは、強力なモバイルプッシュ型通知サービスで、モバイルアプリのバックエンドから低レイテンシで高容量のプッシュ型通知が簡単に送信できるものです。
通知ハブは、すべてのモバイルアプリのバックエンド(Mobile Services機能を使用して構築されたものを含む)で使用でき、クラウドおよびオンプレミスで実行するバックエンドでも使用できます。
通知ハブは初回リリースから、通知の論理ターゲットを表すタグをデバイスに関連付けることで、個々のユーザおよびユーザグループに、開発者は個人的に変更したプッシュ型通知を、ユーザの興味別に送信することができました。
例えば、好きなMLBチームがあるお客様のデバイスすべてに、対応するタグを登録することで、1つのAPIコールにより、1つのメッセージを数百万人のボストンレッドソックスファンに、もう一つのメッセージを数百万人のセントルイスカージナルスファンに、それぞれブロードキャストできます。
高度な顧客セグメント化を可能にする新しいタグ式サポート
今回のリリースで、さらに高度な顧客ターゲティングサポートが追加されました。リッチなタグ式を定義することで、プッシュ型通知を送信したい顧客が選別できます。タグ式を使用すると、ボストンレッドソックスファンに通知をブロードキャストするだけでなく、1つのステップをさらにセグメント化して、より細かいセグメントまで到達することができます。これによりさまざまなシナリオが可能になります。
複数の選好に応じた広告
例:ボストンレッドソックスファンとベジタリアンの両方にタグ付けされたユーザへある試合日のベジタリアンスペシャルについて送信。
1つのメッセージで複数のセグメントにコンテンツをプッシュ
例:ボストンレッドソックスファンまたはセントルイスカーディナルファンのどちらかにタグ付けされているユーザーへ雨の遅延情報。
無関係なコンテンツでセグメントの部分集合表示を回避
例:ボストンレッドソックスファンだけど、シーズンチケットホルダーでない人でタグ付けされているユーザーにはシーズンチケットの販売状況についてのリマインダー。
コードで説明するために、ボストンのユーザにレッドソックス対カージナルスゲームに関連した広告を送信するレストランチェーンのアプリを考えます。ボストンにいるレッドソックスまたはカージナルスが好きな人のデバイスすべてにある広告を送るために、アプリは、デバイスに場所タグ("Loc:Boston"など)と関心タグ(“Follows:RedSox”、“Follows:Cardinals”)をタグ付けし、バックエンドにより“(Follows:RedSox || Follows:Cardinals) && Loc:Boston”に通知を送信します。
これは、以下のコードを使用して、サーバーバックエンドの送信ロジックで直接行えます。
var notification = new WindowsNotification(messagePayload); hub.SendNotificationAsync(notification, "(Follows:RedSox || Follows:Cardinals) && Loc:Boston");
式には、すべての論理演算子(AND (&&)、OR (||)、NOT (!))を使用できます。
現在サポートされている素晴らしいタグ式の使用ケースには、以下のようなものがあります。
ソーシャル
"私を除くグループメンバーに"
group:id && !user:id
イベント
関連のチームまたはプレイヤーが好きな人にタッチダウンイベントを送信
Followteam:A || Followteam:B || followplayer:1 || followplayer:2 …
営業時間
特定の時間に通知を送信。例えば、デバイスにタイムゾーンをタグ付けし、シアトルの12PMに送信。
GMT8 && follows:thaifood
バージョンとプラットフォーム
Androidの最初のバージョンをまだ使用している人々へリマインダを送信。
version:1.0 && platform:Android
通知ハブの使用方法については、通知ハブドキュメンテーションセンターでご確認頂けます。
次に、最新版のNuGetパッケージをダウンロードして(または、直接通知ハブREST APIを使用して)、タグ式を使用したプッシュ型通知を送信してください。