<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Eye to Eye</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/eye2eye/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/eye2eye/feed.xml</link>
    <description />
    <lastBuildDate>Tue, 16 Apr 2019 05:07:06 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>セッション「ビジネス継続性のためのクラウドアプリ設計の基本原則」を公開しました。</title>
      <link>https://docs.microsoft.com/archive/blogs/eye2eye/23</link>
      <pubDate>Wed, 24 Dec 2014 02:09:02 GMT</pubDate>
      <dc:creator><![CDATA[野村 一行]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eye2eye/2014/12/24/23/</guid>
      <description><![CDATA[アーキテクチャにまつわる課題を俯瞰的に捉え、マイクロソフトの取り組みやベスト プラクティス、そしてお客様やパートナー様の知見を共有しあう場としてのイベントである、「Microsoft...]]></description>
      <content:encoded><![CDATA[<p>アーキテクチャにまつわる課題を俯瞰的に捉え、マイクロソフトの取り組みやベスト プラクティス、そしてお客様やパートナー様の知見を共有しあう場としてのイベントである、「Microsoft Architect Forum」を2014年12月4日 日本マイクロソフト株式会社 品川本社で開催しました。</p>  <p>今回のテーマは「クラウド ファースト時代のアーキテクチャ・システム構築の革新」ということでしたが、数年先のビジョンを提示してマイクロソフトプラットフォームの先進性をアピールするというより、キャズム理論でいうところのアーリーアダプターとアーリーマジョリティとの断絶を、アーキテクチャに対する思考様式で埋めるためのセッション構成を意識しました。（その反面クラウドネイティブな方々には少し物足りない内容だったのかも知れません。）</p>  <p>私とアークウェイ 福井さんのほうでは、クラウドアプリケーション設計における関心事がオンプレミスのそれとは変化してきていることを説明しました。今回最も重要なメッセージは「これからのクラウドアプリケーションではクラウドインフラに障害が起きることを前提に、分析・設計を行うべき」というものです。</p>  <p>何度か外部セミナーなどで紹介していますので、以下の図を既にご覧になっている方もいらっしゃると思いますが、指標としてはシステムが完全であることを追及する「平均故障間隔（Mean Time Between Failure）」よりもシステムの障害からいかに早く復旧できるかを追及する「平均復旧時間（Mean Time To Repair）」のほうを重要視するということです。    <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/4810.image_7FAADEBD.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/4810.image_5F00_7FAADEBD.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/3704.image_thumb_034E1AFD.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/3704.image_5F00_thumb_5F00_034E1AFD.png" width="610" height="262" /></a></p>  <p>今回はその障害を前提としたクラウドアプリケーション構築の視点として以下の2点を中心に説明しました。</p>  <ul>   <li>障害の発生に備えるための分析 </li>    <li>負荷を管理するための設計 </li> </ul>  <p>これより先の説明はぜひセッション資料と動画でお楽しみください。こちらのセッション2-1になります。    <br /><a href="https://www.microsoftvirtualacademy.com/training-courses/maf14" target="_blank">https://www.microsoftvirtualacademy.com/training-courses/maf14</a></p>  <p>MVA（Microsoft Virtual Academy）でご覧いただければ、10問ほどの理解度チェックを受けることができます。</p>  <p>こういうテスト的なものは本能的に避けたくなる方もいらっしゃいますが（私もそうですので）、むしろ先にチェックいただくと、セッションの最重要ポイントを押さえておけるように作成したつもりです。</p>  <p>セッション資料はもとより、50分ほどの動画をチェックするより多くのポイントが獲得できるのも、お得です。 <img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="スマイル" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/0564.wlEmoticon-smile_4724E005.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/0564.wlEmoticon_2D00_smile_5F00_4724E005.png" /></p>  <p>来月に開催される <a href="https://r.jazug.jp/event/goazure/" target="_blank">GoAzure 2015</a> へのご参加登録がまだの方は合わせてどうぞ！</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloud First時代のITアーキテクト視点（３）～ モダンアプリケーションの典型的なアーキテクチャと技術の適用例</title>
      <link>https://docs.microsoft.com/archive/blogs/eye2eye/cloud-firstit</link>
      <pubDate>Wed, 17 Sep 2014 04:53:25 GMT</pubDate>
      <dc:creator><![CDATA[野村 一行]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eye2eye/2014/09/17/cloud-firstit/</guid>
      <description><![CDATA[前回はモダンアプリケーションが提供するビジネス機会として、以下の３つを挙げました。    1. 顧客エクスペリエンスの向上     2. 新しい市場への進出を含む顧客リーチの拡大     3....]]></description>
      <content:encoded><![CDATA[<p>前回はモダンアプリケーションが提供するビジネス機会として、以下の３つを挙げました。    <br />1. 顧客エクスペリエンスの向上     <br />2. 新しい市場への進出を含む顧客リーチの拡大     <br />3. ビジネスパフォーマンスの向上</p>  <p>これらを実現するアプリケーションの典型的なアーキテクチャとはどのような特徴を持つのでしょうか？    <br />私は以下の図のように考えています。</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/0272.image_65AD786C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/0272.image_5F00_65AD786C.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/5808.image_thumb_3C39372C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/5808.image_5F00_thumb_5F00_3C39372C.png" width="592" height="250" /></a>     <br />図１：モダンアプリケーションの典型的なアーキテクチャ</p>  <p>考察の出発点は、やはりデバイス類が多様化かつ高性能になったということです。ほんの少し前の時代のPCより高性能なスマートフォンも珍しくなくなった現在、シンクライアント時代のようにサーバー側でロジックを処理し、その結果を表示用データとともに生成し、デバイス側はレンダリングだけ、といったスタイルではせっかくのスマートデバイスの能力が活かせません。むしろ、デバイス側でできる処理に必要なデータを提供し、加工や表示データの生成などのタスクを行わせることでデバイス本来の性能を活かすことができるはずです。最近ではBootstrapのようなレスポンシブなUIを実装しやすい技術も出てきて、デバイスの種類や画面サイズに応じて最適な表示を行うことが簡単にできるようになったため、サーバー側の負荷も減らすことができる上に対応デバイスの追加にも柔軟に対応することができます。そしてカメラやGPS、ジャイロセンサー、加速度センサー、光センサーなどのセンサー類を活かして、よりリッチなユーザー体験を提供できるようになりました。</p>  <p>言わばデバイス側がリッチクライアント化しつつあるために、バックエンドのサーバーとオフライン状態になっても多くのタスクを問題なくこなすことができるようになってきています。もう１つ、クライアントとサーバー間のインターフェイス業界標準プロトコルを利用することで、デバイスとプラットフォーム間が疎結合化され、一方の変更がもう一方へ悪影響を与えるリスクがかなり減りました。</p>  <p>しかしながら、情報の流れはクライアントからサーバーへの一方通行とは限りません。例えば株価や在庫の変動、ニュース速報などサーバー側で起きたイベントを適切なタイミングでクライアント側に通知したい状況も多くなってきています。従来なら定期的にクライアント側からサーバー側へポーリングを行っていたでしょうが、それでは無駄にデバイスのバッテリーを消費してしまいます。そのような場合サーバー側からクライアント側にプッシュ通知することで、サーバー側の変更を素早く反映できます。また、オフライン状態にあったクライアントがつながり次第サーバー側の変更を同期することもできます。</p>  <p>こうやって見ると、クライアントとサーバーとの間のタスクの分担がクライアント側に寄った分、サーバー側の負担が軽くなったような感じがします。このようなアーキテクチャは「Thin Client」に対して「Thin Server」と呼ばれることがあります。WindowsストアアプリはまさにこのThin Serverアーキテクチャを採用していると言えます。（Thin Serverアーキテクチャについては<a href="https://www.facebook.com/notes/%E4%B8%B8%E5%B1%B1-%E4%B8%8D%E4%BA%8C%E5%A4%AB/%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA%E3%81%AE%E6%96%B0%E3%81%97%E3%81%84%E5%8B%95%E5%90%91-%EF%BC%94-%E5%A4%89%E5%8C%96%E3%81%AE%E4%B8%89%E3%81%A4%E3%81%AE%E6%96%B9%E5%90%91/4759340658942" target="_blank">丸山 不二夫先生のFacebook「ノート」</a>に詳しい考察が載っています。）</p>  <p>では、今まで議論してきたモダンアプリケーションのアーキテクチャにマイクロソフト技術を適用してみます。</p>  <p>アーキテクチャを検討するに当たっては、どのような制約があるかを意識する必要があります。制約の内容によっては適用される技術が変わってきます。また、アーキテクチャを決定するためにその他の重要な要素としては、シナリオ、品質要件（非機能要件）がありますが、今回のシナリオは、顧客との関係を深めるためのキャンペーン用Webサイトを構築する、とします。</p>  <p>制約としては以下のようなものが考えられます。    <br />. スマートフォン、タブレット、PCなど、ほとんどどのデバイスからでもアクセスできる。     <br />. Facebook、Twitter などとのSNS連携に対応する。     <br />. 顧客情報など秘匿性の高いデータはクラウドに保存しない。     <br />. クラウドからオンプレミス環境のシステムへ安全にアクセスできる。     <br />. 従業員は社内システムのアカウントを使って、クラウドへのシングルサインオンに対応する。     <br />. 顧客から興味のあるキーワードを聞いておき、関連する情報やニュースを一斉に配信する。</p>  <p>これらの要件を満たすための技術選択についてまとめてゆきます。</p>  <p>1. マルチデバイス対応    <br />マルチデバイス対応には、Webとネイティブアプリの両方の選択肢があります。ネイティブアプリには、各デバイスの機能を100%活用できる反面、配布の問題があります。今回はキャンペーンでもありますので、Webアプリ形式にします。表示はASP.NET MVCでレスポンシブデザインに対応します。また、データのやり取りはASP.NET Web APIを使いRESTベースでBLOBデータ以外は基本的にJSON形式で行います。またキャンペーン中にアクセスが急増した場合の対策としてAzure Web Sitesにアプリケーションをホストし、オートスケーリング機能を活用します。</p>  <p>2. ハイブリッド対応    <br />顧客情報はオンプレミス環境に従来から顧客データベースがあるので、こちらと連携することにします。VPN環境を構築することも考えられますが、期間限定のためあまり環境を変えたくないことと、AzureホストサービスとしてWeb Sitesを選択したので、Hybrid Connectionsの採用を決定しました。（注：2014/9/30現在Hybrid Connectionsはプレビュー版のため、参考情報あるいは評価目的にてご利用ください。）</p>  <p>3. 認証    <br />Webサイトを提供する企業の従業員は、既に自社内のActive Directoryで認証されています。その資格情報を同じく自社内のADFS（Active Directory Federation Services）を使ってSAMLなどクラウドで利用可能なセキュリティトークンに変換し、Azure Active Directoryでシングルサインオンさせます。顧客に対しても同じくAzure Active DirectoryでFacebookやTwitterアカウントで認証可能です。</p>  <p>4. 通知    <br />サーバーからの情報をリアルタイムに漏らさず通知したいのならSignalRが適切と考えられますが、今回のシナリオではNotification Hubのほうが合っているでしょう。マイクロソフト、Apple、Googleがそれぞれ持っている既存の通知インフラを活用できるのも、マルチデバイス対応の点で優れていると考えられます。</p>  <p>これまでの技術選択を反映した初期アーキテクチャを以下に描いてみます。</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/7024.image_0169CAFF.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/7024.image_5F00_0169CAFF.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/6378.image_thumb_2A083706.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/6378.image_5F00_thumb_5F00_2A083706.png" width="597" height="338" />      <br /></a>図２：キャンペーンWebサイトの初期アーキテクチャ</p>  <p>この初期アーキテクチャをベースにスケーラビリティ、可用性、パフォーマンスなどの品質要件、新たな機能要件などを検討しながら徐々に洗練させてゆきます。</p>  <p>マイクロソフトでは、<a href="https://msdn.microsoft.com/dn630664" target="_blank">代表的なシナリオパターンにおける参照アーキテクチャ</a>を公開しているので、こちらを参考に自分なりの初期アーキテクチャを描いてみてはどうでしょうか。</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloud First時代のITアーキテクト視点（２）～ワークスタイル・ライフスタイルの変化に対応するアプリケーションの革新</title>
      <link>https://docs.microsoft.com/archive/blogs/eye2eye/cloud-firstit1</link>
      <pubDate>Tue, 09 Sep 2014 04:28:14 GMT</pubDate>
      <dc:creator><![CDATA[野村 一行]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eye2eye/2014/09/09/cloud-firstit1/</guid>
      <description><![CDATA[クラウドを中心としたITの変革期を迎えている現在、ITアーキテクトの役割や考え方も変化が求められています。本ブログシリーズではいくつかのトピックを題材にITアーキテクトが持つべき視点について議論してゆ...]]></description>
      <content:encoded><![CDATA[<p>クラウドを中心としたITの変革期を迎えている現在、ITアーキテクトの役割や考え方も変化が求められています。本ブログシリーズではいくつかのトピックを題材にITアーキテクトが持つべき視点について議論してゆきたいと思います。    <br />第2回目となる今回はCloud OSの能力を引き出すアプリケーションの革新について取り上げます。     <br />=====</p>  <p>前回はCloud OSによって、同じアプリケーションがオンプレミスでもクラウドでも動作するようになる、という話をしました。では、今日なぜそのようなアプリケーションが必要とされているのでしょうか？そしてどのような価値をもたらすのでしょうか？</p>  <p>従来の業務アプリケーションは、財務会計、生産管理、顧客管理、人事給与、など定型的な業務プロセスを正しい順番に実行することでデータが一貫されていることを重視しています。これらのアプリケーションは多くの企業で基幹業務・バックオフィスシステムの一部を構成し、それがゆえに10年以上のライフサイクルを持つものも珍しくありません。</p>  <p>これに対し、現在はより直接的に業務を支援し、顧客やパートナーのビジネススピードや消費者のライフスタイルに合わせたソリューションを提供することがITに求められています。キャズム理論で有名なジェフリー・ムーアは前者を「Systems of Record」、後者を「Systems of Engagement」と名付けましたが、今日のアプリケーションにはまさにユーザーとのエンゲージメントを高めるための機能や仕掛けなどが求められていると言えるでしょう。マイクロソフトではこのようなアプリケーションのことを「モダンアプリケーション」と呼んでいます。</p>  <p>しかしながら、従来型の業務アプリケーションは役割を終えて、全てがモダンアプリケーションにシフトしてゆく、ということではありません。むしろモダンアプリケーションは、従来型の業務アプリケーションの能力を包含し拡張され、より多くのユーザーにリーチすることでビジネスを広げるという新しい価値を提供するのです。</p>  <p>また、モダンアプリケーションがクラウドで動作するのは、社内ユーザーよりもはるかに多くの社外の顧客やパートナー、消費者がアプリケーションを利用するからであり、かつこれらのユーザーには季節による変動や市場の変化への迅速な対応が求められるからです。</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/6114.image_377A3FF8.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/6114.image_5F00_377A3FF8.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/7026.image_thumb_555B54AA.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/7026.image_5F00_thumb_5F00_555B54AA.png" width="599" height="509" /></a>&#160; <br />図1: モダンアプリケーションと従来型の業務アプリケーションとの関係</p>  <p>ではモダンアプリケーションはどのようなビジネス機会をもたらすのでしょうか？以下３点で説明します。</p>  <p>1. 顧客エクスペリエンスの向上</p>  <p>モダンアプリケーションでは、利用シーン（オフィス内、移動中、家庭内、など）によって異なるデバイスを使っても、同じシナリオに沿ってアプリケーションやデータを利用できます。また、タッチやジェスチャー、音声認識などのNUI（Natural User Interface）技術と高DPI・高速なグラフィック能力・高解像度オーディオなどの能力を持つデバイスとの組み合わせが高い没入感を提供します。</p>  <p>これらが顧客エクスペリエンスを向上させ、結果的に顧客のロイヤリティを高めることにつながります。</p>  <p>例えば、英国の保険会社であるAvivaは、モバイルアプリを自動車のドライバー向けに配布し、運転中の挙動データを収集します。それらのデータはオンプレミス環境の見積システムと連携し、個人別に保険の見積額を算出するためのスコアを提示します。また、ドライバーはこのスコアをソーシャルメディアで他のドライバーと共有し競うことで、ますます安全運転を心掛け保険料を低く抑えることができます。</p>  <p>詳細は<a href="https://www.microsoft.com/casestudies/Microsoft-SQL-Server-2008-R2-Enterprise/Aviva/UK-Insurance-Firm-Uses-Mobile-App-and-Cloud-Platform-to-Track-Driving-Behavior/710000002635" target="_blank">”UK Insurance Firm Uses Mobile App and Cloud Platform to Track Driving Behavior”</a>で参照することができます。</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/5305.image_625534BB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/5305.image_5F00_625534BB.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/5417.image_thumb_245BA3FD.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/5417.image_5F00_thumb_5F00_245BA3FD.png" width="599" height="434" /></a>     <br />図2：Aviva のモバイルアプリとの連携による保険料見積システム</p>  <p>2. 新しい市場への進出を含む顧客リーチの拡大</p>  <p>モダンアプリケーションがクラウドに展開されるということは、世界中の顧客とつながる機会が得られるということです。しいては現在のビジネスに新しい機会をもたらしたり、新しい市場への進出をサポートすることになります。また、要求に応じて柔軟にスケールできるので、システムリソースの制限によりビジネス機会を逸することを気にする必要がありません。</p>  <p>例えば、英国の航空会社であるeasyJetはヨーロッパを代表する格安航空会社として知られていますが、乗客自ら座席予約ができるシステムについて天候を始めとした状況の変化に迅速に対応でき、かつ大きな投資をせずに済むソリューションを探した結果、座席予約システムをクラウドに拡張し、オンプレミス環境にある発券システムとのハイブリッド構成を採用しました。これによりフライトの検索、座席の選択、そしてチケットの購入という一連の予約プロセスがシームレスかつスケーラブルにつながり、より多くの顧客に満足してもらえるようになりました。</p>  <p>詳細は<a href="https://www.microsoft.com/casestudies/Microsoft-Azure/easyJet/Leading-European-Airline-Improves-Service-and-Scalability-with-Hybrid-Cloud-Solution/4000010767" target="_blank">”Leading European Airline Improves Service and Scalability with Hybrid Cloud Solution”</a>で参照することができます。</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/6320.image_4D6642F9.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/6320.image_5F00_4D6642F9.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/1050.image_thumb_084D75C3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/1050.image_5F00_thumb_5F00_084D75C3.png" width="592" height="429" /></a>     <br />図3：EasyJetの座席予約システム</p>  <p>3. ビジネスパフォーマンスの向上</p>  <p>インメモリDB機能を導入することで従来よりもアプリケーションの性能を大きく向上させることが可能になります。また、前回説明したようにビッグデータと呼ばれる急速に増大するデータ、とりわけ大量の非構造化データや複雑なデータを収集し、新しい分析ツールで自ら顧客や市場のトレンドを理解し迅速に変化に対応できるようになります。更に今後は機械学習による予測分析によって、ビジネスの変化を先んじて捉えてほぼリアルタイムに顧客の要求に応えることも可能になるでしょう。</p>  <p>例えば、ジブラルタルに本社があるオンラインゲームの最大手であるbwin.partyでは、毎日100万人以上がスポーツやカジノゲーム、ポーカーなどに賭けています。2010年の合併でシステムを統合しましたが、以来それぞれの顧客からのアクセスによる深刻な性能問題に悩まされました。この課題に対しbwin.partyはSQL Server 2014のインメモリOLTP機能を採用することで、15,000リクエスト/秒から250,000リクエスト/秒という驚異的な性能を得て、コストを削減しながら売上を拡大することができました。</p>  <p>詳細は<a href="https://www.microsoft.com/casestudies/Microsoft-SQL-Server-2014/bwin.party/Gaming-Site-Can-Scale-to-250-000-Requests-Per-Second-and-Improve-Player-Experience/710000003117" target="_blank">”Gaming Site Can Scale to 250,000 Requests Per Second and Improve Player Experience”</a>で参照することができます。</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/8461.image_3C842FBA.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/8461.image_5F00_3C842FBA.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/3515.image_thumb_658ECEB6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/3515.image_5F00_thumb_5F00_658ECEB6.png" width="607" height="440" /></a>     <br />図4：bwin.partyサイトの性能のbefore/after</p>  <p>Cloud OSの能力を引き出して大きなビジネス価値を生み出す、そのためにはアプリケーションがいかに多くの顧客やパートナー、消費者を惹きつけ、満足度を高めるかが重要です。3社の事例を見てもわかるようにマイクロソフトはモダンアプリケーションを開発するのにまったく異なる技術スキルを要求してはいません。始めは小さくともインパクトのあるユーザー体験シナリオを考えて、実践してみてください。</p>  <p>次回はモダンアプリケーションの典型的なアーキテクチャと技術の適用例について議論します。</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloud First時代のITアーキテクト視点（１）～新たな方向性と世界観に舵を切ったマイクロソフトのプラットフォーム戦略</title>
      <link>https://docs.microsoft.com/archive/blogs/eye2eye/cloud-firstit3</link>
      <pubDate>Tue, 19 Aug 2014 08:16:41 GMT</pubDate>
      <dc:creator><![CDATA[野村 一行]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eye2eye/2014/08/19/cloud-firstit3/</guid>
      <description><![CDATA[クラウドを中心としたITの変革期を迎えている現在、ITアーキテクトの役割や考え方も変化が求められています。本ブログシリーズではいくつかのトピックを題材にITアーキテクトが持つべき視点について議論してゆ...]]></description>
      <content:encoded><![CDATA[<p>クラウドを中心としたITの変革期を迎えている現在、ITアーキテクトの役割や考え方も変化が求められています。本ブログシリーズではいくつかのトピックを題材にITアーキテクトが持つべき視点について議論してゆきたいと思います。    <br />第1回目となる今回はマイクロソフトのプラットフォーム戦略について取り上げます。     <br />=====</p>  <p>デバイス、アプリケーション、ビッグデータ、そしてクラウド。これらの領域に起きている変化はメガトレンドと呼ばれ、ITの世界に大きなシフトを起こすものとして日々色々なニュースが流れているのはご存知のことと思います。</p>  <p>調査会社も様々な数字を挙げて、ITにおいて大きな機会があることを伝えています。    <br />例えば、     <br />· 17か国に渡るインフォメーションワーカーの52%が仕事に3つ以上のデバイスを利用している（出典：Forrester Research）。     <br />· 外部向けアプリケーションの実装の25%がモビリティ、クラウド、分析とソーシャルへの対応に費やされるであろう（出典：Gartner）。     <br />· 2020年までにデジタルデータの総サイズは40ゼタバイトになり、そのうちの90%は非構造化データとなるであろう（出典：IDC）     <br />· 2020年までにIT総支出の45%はクラウド関連になるであろう（出典：Forrester Research）。</p>  <p>このようにクラウドを始めとした技術革新のスピードは速く、その技術革新を前提としたビジネスへの応用もますます活発になってきています。</p>  <p>この状況は技術者にとっては活躍の機会が増えて非常にうれしいことである一方、今利用可能な技術のなかから何を採用するか、いつどのようなかたちでクラウドに対応するか、といった選択の責任も重くなってきていることを実感されている方も多いのではないでしょうか？</p>  <p>でも悲観的になることはありません。技術とビジネスの環境変化に適応するために技術者が行わなければならない意思決定をサポートするためにプラットフォームがあるのです。</p>  <p>マイクロソフトはそのような環境の変化に対応するためのプラットフォームのビジョンと戦略を「Cloud OS」と呼んでいます。</p>  <p>技術者にとってCloud OSの最も魅力的な点を挙げるとしたら、以下のことになるでしょう。    <br />「Cloud OSならあなたが１つのスキルセットをマスターすればアプリケーションやデータをどこにでも配置できる」</p>  <p>あらゆるアプリケーションをすぐにクラウドに乗せる、という決定を下せる企業や組織はないでしょう。でもその間も技術変革は続いています。いよいよクラウドに乗せるという決定が下されたときに技術者としてすぐに対応できるものでしょうか？</p>  <p>Cloud OSであればオンプレミスでもクラウドでも同じ基盤技術を利用できるため、オンプレミスからクラウドへの移行もスムーズに行きます。技術者であるあなたは、来るべきクラウドへの移行の時期が熟するのを待ちつつ、オンプレミス環境で以下の技術を活用し準備を整えておけばよいのです。</p>  <p>1. フレキシブルな開発環境    <br />Cloud OSでは従来からの.NET Frameworkに加え、JavaScript、Java、PHP、Ruby、Pythonといった様々な言語でアプリケーションを開発するためのSDKやライブラリを提供しています。マイクロソフトはMicrosoft Open Technologies（<a href="https://msopentech.com/" target="_blank">https://msopentech.com/</a>）という関連会社を設立し、OSSに対しても多大な投資を行っています。また、チーム開発基盤であるTeam Foundation Serverの様々な機能をVisual Studio Onlineというクラウドサービスとしても利用可能です。つまり、オンプレミス環境で運用されるアプリケーションだとしてもクラウド上で開発・テストを行うことができます。</p>  <p>2. 一元化された管理    <br />System Centerは自社やお客様のデータセンターのみならず、Azureにあるコンピューティングリソースのプーリングやプロビジョニングなどの自動化やシステム運用を一元的に管理できます。果てしなく増大するストレージ容量、地理的にまたがるシステムの冗長構成やディザスタリカバリーへの対策も、クラウドを含めて管理可能です。</p>  <p>3. 共通のアイデンティティ    <br />Active Directoryのグループポリシーを採用する企業や組織は多いですが、クラウドではまったく別の認証技術の利用を余儀なくされているのが一般的だと思います。システムのハイブリッド対応に認証は避けて通れない技術の１つですが、Active Directory Federation ServiceとAzure Active Directoryを利用すれば、他のクラウドも含めてシングルサインオン環境を構築することが易しくなります。逆にクラウドからActive Directory技術を適用することも簡単なので、SaaSマーケットへの参入を検討しているISVには強力な技術ソリューションと思われます。</p>  <p>4. 統合化された仮想化技術    <br />AzureのコンピューティングリソースはHyper-V技術をベースとしたファブリックコントローラーで制御されています。つまり、Hyper-Vの仮想マシンはオンプレミスとクラウドを自由に行き来できるということです。また仮想ネットワークやファイルシステムの仮想化も高レベルで統合されているので、これからのアプリケーションは自らの配置場所を意識することはほとんどなくなってゆくでしょう。ちなみに前述のSystem Centerを使えば仮想マシンやオブジェクト、データの移動が更に簡単になります。</p>  <p>5. 包括的なデータプラットフォーム    <br />RDBMSとしてSQL ServerはPaaSとしてのSQL Databaseに加え、IaaSとして仮想マシン上に配置することで、スケーラビリティや性能（SQL Server 2014からIn-Memory OLTP技術も取り込みました）はもちろんコストやコンプライアンスなどの面でも柔軟な選択肢を提供します。またNoSQLとしてはAzure Storageがあり、そしてBig Data を処理するための業界標準プラットフォームであるHadoopもオンプレミス環境に加え、HDInsightというクラウドサービスとしても利用可能です。トータルとしてあらゆる種類のデータを大量にかつ高速に処理可能なデータプラットフォームを提供しています。</p>  <p>このようにCloud OSは複数のCPU、ストレージ、ネットワークを抽象化し、しかもアプリケーションを配置・運用できる場所をクラウドにまで広げるという意味で、まさにクラウド時代のプラットフォームと言えます。</p>  <p>前述の5つの技術要素を活用してソフトウェアの設計・開発・運用を行えば、あなたのアプリケーションにクラウドのコア特性を取り入れたことになります。</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/3348.image_3D9BE4FE.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/3348.image_5F00_3D9BE4FE.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/7002.image_thumb_1ADAAD41.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/7002.image_5F00_thumb_5F00_1ADAAD41.png" width="605" height="380" /></a>     <br />図１： Cloud OSによる一貫したプラットフォーム（出典： Introducing Cloud OS for architects - <a href="https://download.microsoft.com/download/B/C/8/BC864212-F00D-483D-9CAD-CE5593EE010D/Introducing_Cloud_OS_for_Architects.pdf" target="_blank">https://download.microsoft.com/download/B/C/8/BC864212-F00D-483D-9CAD-CE5593EE010D/Introducing_Cloud_OS_for_Architects.pdf</a>）</p>  <p>もちろんCloud OSはソフトウェア技術者に留まらず、プラットフォームとしてあらゆるステークホルダーに多くの恩恵をもたらします。</p>  <p>まとめとして、ここでは大きく分けて４つの領域におけるCloud OSのメリットを紹介します。</p>  <p>1. データセンターを変容する    <br />これまでデータセンターは必要に応じてサーバーを増やしながら成長してきました。その結果データセンターの規模は不規則に広がり複雑化したため、管理が困難かつコスト高になってきました。このような状況において仮想化によるサーバーのコンソリデーションは増大する複雑性に対する解決策になります。     <br />Cloud OSではこれを更に進化させて、個別のサーバーよりむしろコンピューティングリソースの単位でデータセンター全体を管理するというアプローチで、自社であってもサービスプロバイダーのものであっても、あるいはパブリッククラウドであっても、アプリケーションが必要とするときにコンピューティング、ネットワーク、及びストレージの能力を用意できます。</p>  <p>2. あらゆるデータに対する洞察を解放する    <br />OLTPシステムに代表される従来の構造化されたデータセットからフラットファイルに存在するログやストリーミングデータまで、現在はかつてないほど多くのデータソースが存在します。このデータの多様性と蓄積される速度の増大に対処し、これら大容量のデータから利用可能な情報を取り出してビジネス上の洞察を得ようというのが、ビッグデータの中心的なアイデアです。     <br />Cloud OSではあらゆる種類のデータから、新しい洞察を得るために情報をマイニングできる包括的なデータプラットフォームを提供します。しかも毎回ITの専門家にリクエストすることなしに、あらゆる人々が自らExcelやPower BIのような慣れているツールを利用して深い洞察を生み出し、それを視覚化し、共有することができます。</p>  <p>3. 人中心のITを強化する    <br />デバイスの増加とともに、ITのコンシューマー化が進み、ユーザーはより頻繁に仕事で“サポート外のデバイス”を持ち込むようになりました。ユーザーはスマートフォンから個人と会社のメールの両方にアクセスできることを望み、タブレットからイントラネットやダッシュボードほかファイアウォールの内側にあるリソースにアクセスできることを望んでいます。     <br />Cloud OSでは会社のガバナンスと機密データの管理を維持しながら、どのようなデバイスでも利用できるよう、IT管理者とユーザーの双方をサポートします。</p>  <p>4. ビジネスアプリケーションを革新する    <br />デバイスがインターネットに接続し、大量のデータを駆使してリアルタイムにビジネス上の意思決定に必要な情報を得る、というシナリオが既に当たり前となっている現在、ビジネスアプリケーションが提供すべき機能とそれを構築すべきスピードがますます加速することは間違いないでしょう。しかし同時にエンタープライズにとってどのようなビジネスアプリケーションを構築するか、あるいは導入するかという戦略的な意思決定がより重要になる以上、いくら斬新な技術であろうとビジネス状況を無視して適用することも現実的ではありません。     <br />Cloud OSの強みはまさにビジネス成長のペースに合わせて、必要とされる技術を迅速に取り入れスケールさせる点にあります。</p>  <p>これまで説明してきたようにCloud OSはビジネスとITに機敏性をもたらす統合プラットフォームのビジョンと戦略であり、あらゆる場所から、あらゆるデバイスへユーザーにアプリケーションやデータを提供するということを宣言したことで、マイクロソフトの新たな方向性・世界観に舵を切ったことを明確にしました。</p>  <p>次回はビジネスアプリケーションの革新について、さらに詳しく説明してゆきたいと思います。    </p>]]></content:encoded>
    </item>
    <item>
      <title>de:code ～ Why Architecture ?</title>
      <link>https://docs.microsoft.com/archive/blogs/eye2eye/decode-why-architecture</link>
      <pubDate>Thu, 17 Apr 2014 19:58:46 GMT</pubDate>
      <dc:creator><![CDATA[野村 一行]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eye2eye/2014/04/17/decode-why-architecture/</guid>
      <description><![CDATA[すでに他のエバンジェリストのブログでも紹介されております、de:code コンファレンスですが、本日ほぼ全てのブレイクアウトセッションのタイトル、概要、スピーカーを公開いたしました。...]]></description>
      <content:encoded><![CDATA[<p>すでに他のエバンジェリストのブログでも紹介されております、<a href="https://www.microsoft.com/ja-jp/events/developer/default.aspx" target="_blank">de:code</a> コンファレンスですが、本日ほぼ全てのブレイクアウトセッションのタイトル、概要、スピーカーを公開いたしました。</p>  <p>de:codeの「Architecture」トラックでは、技術のトレンドに対する高い視点を持ち、長期間に渡ってシステムを進化させ続ける、そのための基盤技術を俯瞰していただくためにお役に立つであろう11のセッションをご提供する予定です。</p>  <p>わたしたちはこれまで事業会社、ITベンダーの技術者や管理者、およびコンサルティングファームのコンサルタントなど様々な立場の方々と意見交換をさせていただいてきましたが、それらの方々に通底する「いづれ自社（あるいはお客様）はクラウドへ打って出てゆくだろう。その時今までのシステム設計の常識がクラウドでも通用するのか？ひょっとしたら今までの常識が非常識になってきているのではないか？」という問題意識に寄り添い、マイクロソフトのクラウドに対する取り組みや基盤技術の選択についてのガイダンスをお伝えしてきました。その手段として<a href="https://msdn.microsoft.com/ja-jp/dn151147.aspx">Microsoft Architect Forum</a>、<a href="https://www.microsoft.com/ja-jp/techfielders/seminar.aspx">Tech Fielders</a> といったセミナーや、各種コミュニティでの交流、あるいは現場の技術者の方々とのディスカッション、このFacebookページが存在します。</p>  <p>そして、今回このde:codeに「Architecture」トラックを設けることにより、buildで発表された新技術と、クラウドにも展開可能なアーキテクチャを構築するための基本的知識という、最善の組み合わせの場を提供いたしたいと思っております。</p>  <p>それは一方的な知識の伝達ではなく、設計手法、パターンやガイダンス、そして日本を代表するアーキテクトによるパネルディスカッションという様々なアプローチを通じて、ご参加の皆様の知的好奇心を刺激し設計に対する思考を更に深める機会とならなくてはいけないと考えております。</p>  <p>もちろんトラックのなかから興味のあるセッションだけをつまみ食いいただいてもいいですし、あるいはパネルだけにご参加いただいても構いません。</p>  <p>クラウド時代の本格的到来の前に、もう一度アーキテクチャの重要性について考え、意見交換をし、次の一歩を踏み出すためのきっかけとなれば幸いです。</p>  <p>皆様のご参加をお待ちしております。</p>  <p>de:codeでのセッション詳細は<a href="https://www.microsoft.com/ja-jp/events/developer/session.aspx">https://www.microsoft.com/ja-jp/events/developer/session.aspx</a> をご覧ください。</p>  <p>なお、de:code の情報をいち早くメールで配信するサービス 『de:code アップデート』 も提供しております。ご登録いただいた方の中から抽選で400 名様に de:code ロゴ入り モレスキン ノートブックをプレゼントいたしますので、de:codeのご参加を予定されていない方もぜひご登録ください。    <br />ご登録はこちら： <a title="https://www.event-marketing.jp/events/decode/sendmail/SendMailRegist.aspx" href="https://www.event-marketing.jp/events/decode/sendmail/SendMailRegist.aspx">https://www.event-marketing.jp/events/decode/sendmail/SendMailRegist.aspx</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Windows ストアアプリから Windows Azure へアクセスする（その3）</title>
      <link>https://docs.microsoft.com/archive/blogs/eye2eye/windows-windows-azure-3</link>
      <pubDate>Mon, 22 Oct 2012 19:41:50 GMT</pubDate>
      <dc:creator><![CDATA[野村 一行]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eye2eye/2012/10/22/windows-windows-azure-3/</guid>
      <description><![CDATA[本エントリーは前回説明しました、「Windows ストアアプリから Windows Azure へアクセスする（その2）」の続きになります。前回までに作成した Azure サービスへ Windows...]]></description>
      <content:encoded><![CDATA[<p>本エントリーは前回説明しました、「<a href="https://blogs.msdn.com/b/eye2eye/archive/2012/10/15/2-windows-windows-azure-2.aspx">Windows ストアアプリから Windows Azure へアクセスする（その2）</a>」の続きになります。前回までに作成した Azure サービスへ Windows 8 ストアアプリからアクセスし、データを表示します。</p>  <ol>   <li>     <h3>Windows ストアアプリ プロジェクトの追加</h3> Windows 8 ストアアプリの作成はスクラッチから行うのではなく、日本マイクロソフトが公開している「Windows 8 アプリ開発体験テンプレート」を利用します。<a href="https://msdn.microsoft.com/ja-jp/jj556277" target="_blank">こちらの URL</a> から 「Basic Photo テンプレート XAML/C# 用 Version 1.0」 をダウンロードして [ご利用方法] に従い設定します。       <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/4848.01_1C7C512C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/4848.01_5F00_1C7C512C.png"><img title="01" style="display: inline; background-image: none;" border="0" alt="01" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/8662.01_thumb_0B9A3DED.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/8662.01_5F00_thumb_5F00_0B9A3DED.png" width="559" height="332" /></a>&#160;&#160;&#160;&#160; <br />      <br />ソリューションエクスプローラーでソリューション フォルダを右クリックして、[追加] – [新しいプロジェクト] を選択します。       <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/5432.02_4851C67D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/5432.02_5F00_4851C67D.png"><img title="02" style="display: inline; background-image: none;" border="0" alt="02" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/3750.02_thumb_19FD6232.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/3750.02_5F00_thumb_5F00_19FD6232.png" width="559" height="258" /></a>       <br />      <br />[新しいプロジェクトの追加] ダイアログで [Visual C#] – [Basic Photo for Win8] を選択し、プロジェクト名を ”PicMgrClient” とします。.NET Framework のバージョンは 4.5 であることを確認し、[OK] ボタンを押します。       <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/6014.03_12748376.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/6014.03_5F00_12748376.png"><img title="03" style="display: inline; background-image: none;" border="0" alt="03" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/7266.03_thumb_4F983EFB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/7266.03_5F00_thumb_5F00_4F983EFB.png" width="559" height="358" /></a>       <br />      <br />ウィザードから生成された PicMgrClient プロジェクト下の [DataModel] フォルダを右クリックして、[追加] – [既存の項目] を選択します。       <br />&#160;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/1803.04_682A6CFC.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/1803.04_5F00_682A6CFC.png"><img title="04" style="display: inline; background-image: none;" border="0" alt="04" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/5428.04_thumb_7BD9E741.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/5428.04_5F00_thumb_5F00_7BD9E741.png" width="559" height="249" /></a>       <br />      <br />[PicMgr.WebApi] フォルダ下の [Models] フォルダから “Picture.cs” を選択し、[追加] ボタンの右にある下矢印（▼）をクリックし、[リンクとして追加] を選択します。これは Azure サービスと同じ Picture モデルクラスを使用して、データコントラクトを一致させるための処置です。       <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/8637.05_78C7894C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/8637.05_5F00_78C7894C.png"><img title="05" style="display: inline; background-image: none;" border="0" alt="05" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/0702.05_thumb_3D0A814A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/0702.05_5F00_thumb_5F00_3D0A814A.png" width="559" height="404" /></a>       <br />      <br /></li>    <li>     <h3>Azure サービスとの連携ロジックの追加</h3> ソリューションエクスプローラーから [PicMgrClient] プロジェクト下の [DataModel] フォルダから “SampleDataSource.cs” を開きます。       <br />SampleDataSource() コンストラクタをコメントアウトします。これはハードコーディングされたコンテンツを使用せず、グループおよびアイテムのコレクションを Azure サービスから取得して作成するためです。       <br />      <div id="codeSnippetWrapper">       <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 128, 0);">//public SampleDataSource()</span><br /><span style="color: rgb(0, 128, 0);">//{</span><br />・・・（省略）<br /><span style="color: rgb(0, 128, 0);">//}</span></font></pre>

      <br />System.Collections.Specialized に続き、以下の名前空間の宣言を追加します。（黄色に塗られた部分です。） 

      <br />

      <div id="codeSnippetWrapper">
        <div id="codeSnippetWrapper">
          <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 0, 255);">using</span> System.Collections.Specialized;<br /></font><font style="background-color: rgb(255, 255, 0);"><font size="2"><span style="color: rgb(0, 0, 255);">using</span> System.IO;<br /><span style="color: rgb(0, 0, 255);">using</span> System.Net.Http;<br /><span style="color: rgb(0, 0, 255);">using</span> Windows.Data.Json;<br /><span style="color: rgb(0, 0, 255);">using</span> PicMgr.Models;<br /><span style="color: rgb(0, 0, 255);">using</span> System.Threading.Tasks;</font></font></pre>

          <br />SampleDataItem() デフォルトコンストラクタを追加します。 

          <br />

          <div id="codeSnippetWrapper">
            <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 0, 255);">public</span> SampleDataItem()<br />    : <span style="color: rgb(0, 0, 255);">base</span>(String.Empty, String.Empty, String.Empty, String.Empty, <br />String.Empty)<br />{<br />}</font></pre>

            <br />SampleDataSource クラスに Azure サービスからデータを取得するメソッドを追加します。これは Azure 側で実装した Web API に対して非同期で HTTP GET 呼び出しを行います（client.GetAsync）。その後、HTTP コンテンツを文字列として読み込み（response.Content.ReadAsStringAsync）、文字列を JSON 配列として扱えるようパースします（JsonArray.Parse）。serviceURI の “websites-name” には「<a href="https://blogs.msdn.com/b/eye2eye/archive/2012/10/14/windows-windows-azure-2.aspx" target="_blank">Windows ストアアプリから Windows Azure へアクセスする（その1）</a>」で作成した、Web Site の名前（本ブログの例では”claudia-picmgr”としました）で置き換えます。 

            <br />

            <div id="codeSnippetWrapper">
              <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 0, 255);">public</span> <span style="color: rgb(0, 0, 255);">static</span> async Task LoadRemoteDataAsync()<br />{<br />    var serviceURI = <br /><span style="color: rgb(0, 96, 128);">&quot;https://<strong><em>websites-name</em></strong>.azurewebsites.net/api/Pictures&quot;</span>;<br /><br />    <span style="color: rgb(0, 0, 255);">using</span> (var client = <span style="color: rgb(0, 0, 255);">new</span> System.Net.Http.HttpClient())<br />    {<br />        client.MaxResponseContentBufferSize = 1024 * 1024;<br /><br />        HttpResponseMessage response = <br />await client.GetAsync(serviceURI <span style="color: rgb(0, 0, 255);">as</span> <span style="color: rgb(0, 0, 255);">string</span>);<br /><br />        response.EnsureSuccessStatusCode();<br /><br />        var result = await response.Content.ReadAsStringAsync();<br />        var pictures = JsonArray.Parse(result);<br />    }<br />}</font></pre>

              <br />この JSON 配列からキー / 値の情報を取り出し、Windows 8 ストアアプリのグリッドビューにグループを固定で１つとそのグループに属する項目を画像の数だけ作成するメソッドを追加します。（ご自分の Azure 環境でお試しになる際は、下記コード内の BLOB URL から画像を入手し、ご自分の Azure Storage BLOB へアップロードした上で URL を置き換えてください。） 

              <br />

              <div id="codeSnippetWrapper">
                <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 0, 255);">private</span> <span style="color: rgb(0, 0, 255);">static</span> <span style="color: rgb(0, 0, 255);">void</span> CreatePicturesAndPictureGroups(JsonArray array)<br />{<br />    SampleDataGroup group = <span style="color: rgb(0, 0, 255);">new</span> SampleDataGroup(<span style="color: rgb(0, 96, 128);">&quot;Group-1&quot;</span>,<br /><span style="color: rgb(0, 96, 128);">&quot;クラウディア&quot;</span>,<br /><span style="color: rgb(0, 96, 128);">&quot;クラウディア カレンダー画像&quot;</span>,<br /><span style="color: rgb(0, 96, 128);">&quot;https://claudiapicmgr.blob.core.windows.net/pictures/Claudia_pen.png&quot;</span>,<br /></font><font size="2"><span style="color: rgb(0, 96, 128);">&quot;Group Description: Lorem ipsum dolor sit amet, <br />consectetur adipiscing elit. Vivamus tempor scelerisque lorem in <br />vehicula. Aliquam tincidunt, lacus ut sagittis tristique, <br />turpis massa volutpat augue, eu rutrum ligula ante a ante&quot;</span><br />    );<br /><br />    <span style="color: rgb(0, 0, 255);">foreach</span> (var item <span style="color: rgb(0, 0, 255);">in</span> array)<br />    {<br />        var obj = item.GetObject();<br />        SampleDataItem picture = <span style="color: rgb(0, 0, 255);">new</span> SampleDataItem();<br /><br />        <span style="color: rgb(0, 0, 255);">foreach</span> (var key <span style="color: rgb(0, 0, 255);">in</span> obj.Keys)<br />        {<br />            IJsonValue val;<br />            <span style="color: rgb(0, 0, 255);">if</span> (!obj.TryGetValue(key, <span style="color: rgb(0, 0, 255);">out</span> val))<br />                <span style="color: rgb(0, 0, 255);">continue</span>;<br /><br />            <span style="color: rgb(0, 0, 255);">switch</span> (key)<br />            {<br />                <span style="color: rgb(0, 0, 255);">case</span> <span style="color: rgb(0, 96, 128);">&quot;UniqueId&quot;</span>:<br />                    picture.UniqueId = val.GetString();<br />                    <span style="color: rgb(0, 0, 255);">break</span>;<br />                <span style="color: rgb(0, 0, 255);">case</span> <span style="color: rgb(0, 96, 128);">&quot;Title&quot;</span>:<br />                    picture.Title = val.GetString();<br />                    <span style="color: rgb(0, 0, 255);">break</span>;<br />                <span style="color: rgb(0, 0, 255);">case</span> <span style="color: rgb(0, 96, 128);">&quot;SubTitle&quot;</span>:<br />                    picture.Subtitle = val.GetString();<br />                    <span style="color: rgb(0, 0, 255);">break</span>;<br />                <span style="color: rgb(0, 0, 255);">case</span> <span style="color: rgb(0, 96, 128);">&quot;Description&quot;</span>:<br />                    picture.Description = val.GetString();<br />                    <span style="color: rgb(0, 0, 255);">break</span>;<br />                <span style="color: rgb(0, 0, 255);">case</span> <span style="color: rgb(0, 96, 128);">&quot;ImagePath&quot;</span>:<br />                    picture.SetImage(val.GetString());<br />                    <span style="color: rgb(0, 0, 255);">break</span>;<br />            }<br />        }<br /><br />        <span style="color: rgb(0, 0, 255);">if</span> (group != <span style="color: rgb(0, 0, 255);">null</span>)<br />        {<br />            picture.Content = picture.Description;<br />            picture.Group = group;<br />            group.Items.Add(picture);<br />        }<br />    }<br />    _sampleDataSource.AllGroups.Add(group);<br /><br />}</font></pre>

                <br />LoadRemoteDataAsync メソッドから今のメソッドを呼び出す処理を追加します。（黄色に塗られた部分です。） 

                <br />

                <div id="codeSnippetWrapper">
                  <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2">var pictures = JsonArray.Parse(result);<br /><br /><font style="background-color: rgb(255, 255, 0);">CreatePicturesAndPictureGroups(pictures);</font></font></pre>

                  <br />PicMgrClient プロジェクトの “App.xaml.cs” を開き、OnLaunched ハンドラ内でここまで実装しました LoadRemoteDataAsync メソッド呼び出しを追加します。（黄色に塗られた部分です。また、ソースコード内のコメントは削除しています。）&#160; <br />

                  <div id="codeSnippetWrapper">
                    <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 0, 255);">protected</span> <span style="color: rgb(0, 0, 255);">override</span> async <span style="color: rgb(0, 0, 255);">void</span> OnLaunched(LaunchActivatedEventArgs args)<br />{<br />    Frame rootFrame = Window.Current.Content <span style="color: rgb(0, 0, 255);">as</span> Frame;<br /><br />    <span style="color: rgb(0, 0, 255);">if</span> (rootFrame == <span style="color: rgb(0, 0, 255);">null</span>)<br />    {<br />        rootFrame = <span style="color: rgb(0, 0, 255);">new</span> Frame();<br />        SuspensionManager.RegisterFrame(rootFrame, <span style="color: rgb(0, 96, 128);">&quot;AppFrame&quot;</span>);<br /><br />        <span style="color: rgb(0, 0, 255);">if</span> (args.PreviousExecutionState == <br />ApplicationExecutionState.Terminated)<br />        {<br />            <span style="color: rgb(0, 0, 255);">try</span><br />            {<br />                await SuspensionManager.RestoreAsync();<br />            }<br />            <span style="color: rgb(0, 0, 255);">catch</span> (SuspensionManagerException)<br />            {<br />            }<br />        }<br /><br />        <font style="background-color: rgb(255, 255, 0);">await SampleDataSource.LoadRemoteDataAsync();</font><br /><br />        Window.Current.Content = rootFrame;<br />    }<br />    <span style="color: rgb(0, 0, 255);">if</span> (rootFrame.Content == <span style="color: rgb(0, 0, 255);">null</span>)<br />    {<br />        <span style="color: rgb(0, 0, 255);">if</span> (!rootFrame.Navigate(<span style="color: rgb(0, 0, 255);">typeof</span>(GroupedItemsPage), <span style="color: rgb(0, 96, 128);">&quot;AllGroups&quot;</span>))<br />        {<br />            <span style="color: rgb(0, 0, 255);">throw</span> <span style="color: rgb(0, 0, 255);">new</span> Exception(<span style="color: rgb(0, 96, 128);">&quot;Failed to create initial page&quot;</span>);<br />        }<br />    }<br />    SettingsLoad();<br /><br />    Window.Current.Activate();<br />}</font></pre>

                    <p>
                      <br />以下の名前空間の宣言を追加します。（黄色に塗られた部分です。）</p>

                    <div id="codeSnippetWrapper">
                      <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 0, 255);">using</span> PicMgrClient.Common;<br /><font style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 255);">using</span> PicMgrClient.Data;</font></font></pre>

                      <br />[Shift] + [Ctrl] + [B] キーを押し、PicMgrClient プロジェクトをビルドします。正常にビルドできたら、デバッグモードで起動してみてください。デフォルトのスプラッシュ画面が表示された後、以下のようなグリッドビューが表示されると思います。（画像の読み込みには若干時間がかかるかも知れません。） 

                      <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/8712.06_080082CB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/8712.06_5F00_080082CB.png"><img title="06" style="display: inline; background-image: none;" border="0" alt="06" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/3857.06_thumb_30C39A27.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/3857.06_5F00_thumb_5F00_30C39A27.png" width="559" height="351" /></a> 

                      <br />

                      <br />Windows 8 ストアアプリから Azure サービスへのアクセス自体は正常に動作していますが、画像が切れているようです。グリッドビューのスタイルを調整して、正しく表示されるようにします。 

                      <br /></div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </li>

  <li>
    <div>
      <div>
        <div>
          <div>
            <div>
              <div>
                <div>
                  <div>
                    <h3>グリッドビューのスタイル調整</h3>

                    <div>PicMgrClient プロジェクトの “GroupedItemsPage.xaml” を開き、以下のように &quot;Grouped Items&quot; という名前の&lt;GridView&gt; タグを探します。 
                      <div id="codeSnippetWrapper">
                        <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 128, 0);">&lt;!-- ほとんどのビューステートで使用される水平スクロール グリッド--&gt;</span><br /><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">SemanticZoom</span> <span style="color: rgb(255, 0, 0);">x:Name</span><span style="color: rgb(0, 0, 255);">=&quot;itemGridView&quot;</span><br />              <span style="color: rgb(255, 0, 0);">Grid</span>.<span style="color: rgb(255, 0, 0);">RowSpan</span><span style="color: rgb(0, 0, 255);">=&quot;2&quot;</span><br />              <span style="color: rgb(255, 0, 0);">Padding</span><span style="color: rgb(0, 0, 255);">=&quot;116,137,40,46&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />    <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">SemanticZoom.ZoomedInView</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />        <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">GridView</span><br />    <span style="color: rgb(255, 0, 0);">AutomationProperties</span>.<span style="color: rgb(255, 0, 0);">AutomationId</span><span style="color: rgb(0, 0, 255);">=&quot;ItemGridView&quot;</span><br />    <span style="color: rgb(255, 0, 0);">AutomationProperties</span>.<span style="color: rgb(255, 0, 0);">Name</span><span style="color: rgb(0, 0, 255);">=&quot;Grouped Items&quot;</span><br />    <span style="color: rgb(255, 0, 0);">ItemsSource</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Source=<br />{StaticResource groupedItemsViewSource}}&quot;</span><br />    <span style="color: rgb(255, 0, 0);">ItemTemplate</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource <font style="background-color: rgb(255, 255, 0);">Standard250x250ItemTemplate</font>}&quot;</span><br />    <span style="color: rgb(255, 0, 0);">SelectionMode</span><span style="color: rgb(0, 0, 255);">=&quot;None&quot;</span><br />    <span style="color: rgb(255, 0, 0);">IsSwipeEnabled</span><span style="color: rgb(0, 0, 255);">=&quot;false&quot;</span><br />    <span style="color: rgb(255, 0, 0);">IsItemClickEnabled</span><span style="color: rgb(0, 0, 255);">=&quot;True&quot;</span><br />    <span style="color: rgb(255, 0, 0);">ItemClick</span><span style="color: rgb(0, 0, 255);">=&quot;ItemView_ItemClick&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span></font></pre>

                        <br /></div>
PicMgrClient プロジェクト下の [Common] フォルダにある “StandardStyles.xaml” を開き、上の黄色で塗られた「Standard250x250ItemTemplate」 を探し、定義を確認します。 

                      <br />

                      <div id="codeSnippetWrapper">
                        <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 128, 0);">&lt;!-- GroupedItemsPage と ItemsPage に表示される、<br />グリッドに適した 250 ピクセルの四角形のアイテム テンプレート --&gt;</span><br /><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">DataTemplate</span> <span style="color: rgb(255, 0, 0);">x:Key</span><span style="color: rgb(0, 0, 255);">=&quot;Standard250x250ItemTemplate&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />    <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">Grid</span> <span style="color: rgb(255, 0, 0);">HorizontalAlignment</span><span style="color: rgb(0, 0, 255);">=&quot;Left&quot;</span> <span style="color: rgb(255, 0, 0);">Width</span><span style="color: rgb(0, 0, 255);">=&quot;250&quot;</span> <span style="color: rgb(255, 0, 0);">Height</span><span style="color: rgb(0, 0, 255);">=&quot;250&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />        <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">Border</span> <span style="color: rgb(255, 0, 0);">Background</span><span style="color: rgb(0, 0, 255);">=<br />&quot;{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">Image</span> <span style="color: rgb(255, 0, 0);">Source</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Image}&quot;</span> <span style="color: rgb(255, 0, 0);">Stretch</span><span style="color: rgb(0, 0, 255);">=&quot;UniformToFill&quot;</span> <br /><span style="color: rgb(255, 0, 0);">AutomationProperties</span>.<span style="color: rgb(255, 0, 0);">Name</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Title}&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />        <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">Border</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />        <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">StackPanel</span> <span style="color: rgb(255, 0, 0);">VerticalAlignment</span><span style="color: rgb(0, 0, 255);">=&quot;Bottom&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Background</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource ListViewItemOverlayBackgroundThemeBrush}&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">TextBlock</span> <span style="color: rgb(255, 0, 0);">Text</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Title}&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Foreground</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource ListViewItemOverlayForegroundThemeBrush}&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Style</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource TitleTextStyle}&quot;</span> <span style="color: rgb(255, 0, 0);">Height</span><span style="color: rgb(0, 0, 255);">=&quot;60&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Margin</span><span style="color: rgb(0, 0, 255);">=&quot;15,0,15,0&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">TextBlock</span> <span style="color: rgb(255, 0, 0);">Text</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Subtitle}&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Foreground</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource <br />ListViewItemOverlaySecondaryForegroundThemeBrush}&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Style</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource CaptionTextStyle}&quot;</span> <span style="color: rgb(255, 0, 0);">TextWrapping</span><span style="color: rgb(0, 0, 255);">=&quot;NoWrap&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Margin</span><span style="color: rgb(0, 0, 255);">=&quot;15,0,15,10&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />        <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">StackPanel</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />    <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">Grid</span><span style="color: rgb(0, 0, 255);">&gt;</span><br /><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">DataTemplate</span><span style="color: rgb(0, 0, 255);">&gt;</span></font></pre>

                        <br />これを見ると、「Standard250x250ItemTemplate」 の定義を修正すればよいようです。ただし、直接 “StandardStyles.xaml” の内容は変更しません。代わりにカスタマイズされたアイテムテンプレートを定義し、そちらを適用します。 

                        <br />

                        <br />ソリューションエクスプローラーから PicMgrClient プロジェクトを右クリックして、[追加] – [新しい項目] を選択します。[新しい項目の追加] ダイアログから “リソース ディクショナリ” を選択し、ファイル名を “MyResourceDictionary.xaml” とし、[追加] ボタンを押します。 

                        <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/6685.07_5AF0A9D5.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/6685.07_5F00_5AF0A9D5.png"><img title="07" style="display: inline; background-image: none;" border="0" alt="07" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/5618.07_thumb_71464F1A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/5618.07_5F00_thumb_5F00_71464F1A.png" width="559" height="358" /></a></div>

                      <div>
                        <br />“Standard250x250ItemTemplate” の定義をコピーし、&lt;ResourceDictionary&gt; タグの中に以下のテンプレート定義として追加します。修正した個所は黄色に塗られた部分です。Width と Height は元の画像が 16:9 のためにうまく適合するように、Stretch も縦横比を維持しながら、全体のイメージの表示に必要な領域を 100% 使えるように指定しています。 

                        <br /></div>

                      <div id="codeSnippetWrapper">
                        <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">DataTemplate</span> <span style="color: rgb(255, 0, 0);">x:Key</span><span style="color: rgb(0, 0, 255);">=&quot;<font style="background-color: rgb(255, 255, 0);">MyGroupedItemTemplate</font>&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />    <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">Grid</span> <span style="color: rgb(255, 0, 0);">HorizontalAlignment</span><span style="color: rgb(0, 0, 255);">=&quot;Left&quot;</span> <font style="background-color: rgb(255, 255, 0);"><span style="color: rgb(255, 0, 0);">Width</span><span style="color: rgb(0, 0, 255);">=&quot;384&quot;</span> <span style="color: rgb(255, 0, 0);">Height</span><span style="color: rgb(0, 0, 255);">=&quot;216&quot;</span></font><span style="color: rgb(0, 0, 255);">&gt;</span><br />        <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">Border</span> <span style="color: rgb(255, 0, 0);">Background</span><span style="color: rgb(0, 0, 255);">=<br />&quot;{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">Image</span> <span style="color: rgb(255, 0, 0);">Source</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Image}&quot;</span> <font style="background-color: rgb(255, 255, 0);"><span style="color: rgb(255, 0, 0);">Stretch</span><span style="color: rgb(0, 0, 255);">=&quot;Uniform&quot;</span></font>  <br /><span style="color: rgb(255, 0, 0);">AutomationProperties</span>.<span style="color: rgb(255, 0, 0);">Name</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Title}&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />        <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">Border</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />        <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">StackPanel</span> <span style="color: rgb(255, 0, 0);">VerticalAlignment</span><span style="color: rgb(0, 0, 255);">=&quot;Bottom&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Background</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource ListViewItemOverlayBackgroundThemeBrush}&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">TextBlock</span> <span style="color: rgb(255, 0, 0);">Text</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Title}&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Foreground</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource ListViewItemOverlayForegroundThemeBrush}&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Style</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource TitleTextStyle}&quot;</span> <span style="color: rgb(255, 0, 0);">Height</span><span style="color: rgb(0, 0, 255);">=&quot;60&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Margin</span><span style="color: rgb(0, 0, 255);">=&quot;15,0,15,0&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">TextBlock</span> <span style="color: rgb(255, 0, 0);">Text</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Subtitle}&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Foreground</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource <br />ListViewItemOverlaySecondaryForegroundThemeBrush}&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Style</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource CaptionTextStyle}&quot;</span> <span style="color: rgb(255, 0, 0);">TextWrapping</span><span style="color: rgb(0, 0, 255);">=&quot;NoWrap&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Margin</span><span style="color: rgb(0, 0, 255);">=&quot;15,0,15,10&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />        <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">StackPanel</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />    <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">Grid</span><span style="color: rgb(0, 0, 255);">&gt;</span><br /><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">DataTemplate</span><span style="color: rgb(0, 0, 255);">&gt;</span></font></pre>
                      </div>

                      <br />

                      <br />“GroupedItemsPage.xaml” へ戻り、以下のように &quot;Grouped Items&quot; という名前の&lt;GridView&gt; タグの “ItemTemplate” 属性の値を以下のように変更します。（黄色に塗られた部分です。） 

                      <br />

                      <div id="codeSnippetWrapper">
                        <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 128, 0);">&lt;!-- ほとんどのビューステートで使用される水平スクロール グリッド--&gt;</span><br /><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">SemanticZoom</span> <span style="color: rgb(255, 0, 0);">x:Name</span><span style="color: rgb(0, 0, 255);">=&quot;itemGridView&quot;</span><br />              <span style="color: rgb(255, 0, 0);">Grid</span>.<span style="color: rgb(255, 0, 0);">RowSpan</span><span style="color: rgb(0, 0, 255);">=&quot;2&quot;</span><br />              <span style="color: rgb(255, 0, 0);">Padding</span><span style="color: rgb(0, 0, 255);">=&quot;116,137,40,46&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />    <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">SemanticZoom.ZoomedInView</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />        <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">GridView</span><br />    <span style="color: rgb(255, 0, 0);">AutomationProperties</span>.<span style="color: rgb(255, 0, 0);">AutomationId</span><span style="color: rgb(0, 0, 255);">=&quot;ItemGridView&quot;</span><br />    <span style="color: rgb(255, 0, 0);">AutomationProperties</span>.<span style="color: rgb(255, 0, 0);">Name</span><span style="color: rgb(0, 0, 255);">=&quot;Grouped Items&quot;</span><br />    <span style="color: rgb(255, 0, 0);">ItemsSource</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Source=<br />{StaticResource groupedItemsViewSource}}&quot;</span><br />    <span style="color: rgb(255, 0, 0);">ItemTemplate</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource <font style="background-color: rgb(255, 255, 0);">MyGroupedItemTemplate</font>}&quot;</span><br />    <span style="color: rgb(255, 0, 0);">SelectionMode</span><span style="color: rgb(0, 0, 255);">=&quot;None&quot;</span><br />    <span style="color: rgb(255, 0, 0);">IsSwipeEnabled</span><span style="color: rgb(0, 0, 255);">=&quot;false&quot;</span><br />    <span style="color: rgb(255, 0, 0);">IsItemClickEnabled</span><span style="color: rgb(0, 0, 255);">=&quot;True&quot;</span><br />    <span style="color: rgb(255, 0, 0);">ItemClick</span><span style="color: rgb(0, 0, 255);">=&quot;ItemView_ItemClick&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span></font></pre>

                        <br />“StandardStyles.xaml” とカスタマイズされたアイテムテンプレートとをマージするには、”App.xaml” 内に以下のように定義を追加します。 

                        <br /></div>

                      <div id="codeSnippetWrapper">
                        <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">ResourceDictionary.MergedDictionaries</span><span style="color: rgb(0, 0, 255);">&gt;</span><br /><br />    <span style="color: rgb(0, 128, 0);">&lt;!-- </span><br /><span style="color: rgb(0, 128, 0);">        プラットフォームの外観の共通の要素を定義するスタイル</span><br /><span style="color: rgb(0, 128, 0);">        Visual Studio プロジェクトおよびアイテム テンプレートで必要です</span><br /><span style="color: rgb(0, 128, 0);">     --&gt;</span><br />    <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">ResourceDictionary</span> <span style="color: rgb(255, 0, 0);">Source</span><span style="color: rgb(0, 0, 255);">=&quot;Common/StandardStyles.xaml&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />    <font style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">ResourceDictionary</span> <span style="color: rgb(255, 0, 0);">Source</span><span style="color: rgb(0, 0, 255);">=&quot;MyResourceDictionary.xaml&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br /></font><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">ResourceDictionary.MergedDictionaries</span><span style="color: rgb(0, 0, 255);">&gt;</span></font></pre>

                        <br />これで再びビルドし、デバッグモードで実行してみてください。 

                        <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/8611.08_2C51F0CB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/8611.08_5F00_2C51F0CB.png"><img title="08" style="display: inline; background-image: none;" border="0" alt="08" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/5556.08_thumb_5E072B17.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/5556.08_5F00_thumb_5F00_5E072B17.png" width="559" height="351" /></a></div>

                      <br />今度はうまく表示されたはずです。 

                      <br />では、他の部分も調整してみましょう。 

                      <br />

                      <br />以下は “MyResourceDictionary.xaml” です。黄色で塗られた部分を追加します。 

                      <br />

                      <div id="codeSnippetWrapper">
                        <div id="codeSnippetWrapper">
                          <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">ResourceDictionary</span><br />    <span style="color: rgb(255, 0, 0);">xmlns</span><span style="color: rgb(0, 0, 255);">=&quot;https://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;</span> <br />    <span style="color: rgb(255, 0, 0);">xmlns:x</span><span style="color: rgb(0, 0, 255);">=&quot;https://schemas.microsoft.com/winfx/2006/xaml&quot;</span><br />    <span style="color: rgb(255, 0, 0);">xmlns:local</span><span style="color: rgb(0, 0, 255);">=&quot;using:PicMgrClient2&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br /><br />    <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">DataTemplate</span> <span style="color: rgb(255, 0, 0);">x:Key</span><span style="color: rgb(0, 0, 255);">=&quot;MyGroupedItemTemplate&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />        <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">Grid</span> <span style="color: rgb(255, 0, 0);">HorizontalAlignment</span><span style="color: rgb(0, 0, 255);">=&quot;Left&quot;</span> <span style="color: rgb(255, 0, 0);">Width</span><span style="color: rgb(0, 0, 255);">=&quot;384&quot;</span> <span style="color: rgb(255, 0, 0);">Height</span><span style="color: rgb(0, 0, 255);">=&quot;216&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">Border</span> <span style="color: rgb(255, 0, 0);">Background</span><span style="color: rgb(0, 0, 255);">=<br />&quot;{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />                <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">Image</span> <span style="color: rgb(255, 0, 0);">Source</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Image}&quot;</span> <span style="color: rgb(255, 0, 0);">Stretch</span><span style="color: rgb(0, 0, 255);">=&quot;Uniform&quot;</span>  <br /><span style="color: rgb(255, 0, 0);">AutomationProperties</span>.<span style="color: rgb(255, 0, 0);">Name</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Title}&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">Border</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">StackPanel</span> <span style="color: rgb(255, 0, 0);">VerticalAlignment</span><span style="color: rgb(0, 0, 255);">=&quot;Bottom&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Background</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource ListViewItemOverlayBackgroundThemeBrush}&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />                <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">TextBlock</span> <span style="color: rgb(255, 0, 0);">Text</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Title}&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Foreground</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource <br />ListViewItemOverlayForegroundThemeBrush}&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Style</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource TitleTextStyle}&quot;</span> <span style="color: rgb(255, 0, 0);">Height</span><span style="color: rgb(0, 0, 255);">=&quot;60&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Margin</span><span style="color: rgb(0, 0, 255);">=&quot;15,0,15,0&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />                <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">TextBlock</span> <span style="color: rgb(255, 0, 0);">Text</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Subtitle}&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Foreground</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource <br />ListViewItemOverlaySecondaryForegroundThemeBrush}&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Style</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource CaptionTextStyle}&quot;</span> <span style="color: rgb(255, 0, 0);">TextWrapping</span><span style="color: rgb(0, 0, 255);">=&quot;NoWrap&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Margin</span><span style="color: rgb(0, 0, 255);">=&quot;15,0,15,10&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">StackPanel</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />        <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">Grid</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />    <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">DataTemplate</span><span style="color: rgb(0, 0, 255);">&gt;</span><br /><br /><font style="background-color: rgb(255, 255, 0);">    <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">DataTemplate</span> <span style="color: rgb(255, 0, 0);">x:Key</span><span style="color: rgb(0, 0, 255);">=&quot;MyGroupDetailItemTemplate&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />        <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">Grid</span> <span style="color: rgb(255, 0, 0);">Height</span><span style="color: rgb(0, 0, 255);">=&quot;110&quot;</span> <span style="color: rgb(255, 0, 0);">Width</span><span style="color: rgb(0, 0, 255);">=&quot;480&quot;</span> <span style="color: rgb(255, 0, 0);">Margin</span><span style="color: rgb(0, 0, 255);">=&quot;10&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">Grid.ColumnDefinitions</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />                <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">ColumnDefinition</span> <span style="color: rgb(255, 0, 0);">Width</span><span style="color: rgb(0, 0, 255);">=&quot;Auto&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />                <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">ColumnDefinition</span> <span style="color: rgb(255, 0, 0);">Width</span><span style="color: rgb(0, 0, 255);">=&quot;*&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">Grid.ColumnDefinitions</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">Border</span> <span style="color: rgb(255, 0, 0);">Background</span></font><font style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 255);">=<br />&quot;{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Width</span><span style="color: rgb(0, 0, 255);">=&quot;110&quot;</span> <span style="color: rgb(255, 0, 0);">Height</span><span style="color: rgb(0, 0, 255);">=&quot;110&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />                <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">Image</span> <span style="color: rgb(255, 0, 0);">Source</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Image}&quot;</span> <span style="color: rgb(255, 0, 0);">Stretch</span><span style="color: rgb(0, 0, 255);">=&quot;Uniform&quot;</span> <br /><span style="color: rgb(255, 0, 0);">AutomationProperties</span>.<span style="color: rgb(255, 0, 0);">Name</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Title}&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">Border</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">StackPanel</span> <span style="color: rgb(255, 0, 0);">Grid</span>.<span style="color: rgb(255, 0, 0);">Column</span><span style="color: rgb(0, 0, 255);">=&quot;1&quot;</span> <span style="color: rgb(255, 0, 0);">VerticalAlignment</span><span style="color: rgb(0, 0, 255);">=&quot;Top&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Margin</span><span style="color: rgb(0, 0, 255);">=&quot;10,0,0,0&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />                <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">TextBlock</span> <span style="color: rgb(255, 0, 0);">Text</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Title}&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Style</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource TitleTextStyle}&quot;</span> <span style="color: rgb(255, 0, 0);">TextWrapping</span><span style="color: rgb(0, 0, 255);">=&quot;NoWrap&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />                <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">TextBlock</span> <span style="color: rgb(255, 0, 0);">Text</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Subtitle}&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Style</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource CaptionTextStyle}&quot;</span> <span style="color: rgb(255, 0, 0);">TextWrapping</span><span style="color: rgb(0, 0, 255);">=&quot;NoWrap&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />                <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">TextBlock</span> <span style="color: rgb(255, 0, 0);">Text</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Description}&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Style</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource BodyTextStyle}&quot;</span> <span style="color: rgb(255, 0, 0);">MaxHeight</span><span style="color: rgb(0, 0, 255);">=&quot;60&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">StackPanel</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />        <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">Grid</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />    <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">DataTemplate</span><span style="color: rgb(0, 0, 255);">&gt;</span><br /><br />    <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">DataTemplate</span> <span style="color: rgb(255, 0, 0);">x:Key</span><span style="color: rgb(0, 0, 255);">=&quot;MyStandard80ItemTemplate&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />        <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">Grid</span> <span style="color: rgb(255, 0, 0);">Margin</span><span style="color: rgb(0, 0, 255);">=&quot;6&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">Grid.ColumnDefinitions</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />                <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">ColumnDefinition</span> <span style="color: rgb(255, 0, 0);">Width</span><span style="color: rgb(0, 0, 255);">=&quot;Auto&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />                <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">ColumnDefinition</span> <span style="color: rgb(255, 0, 0);">Width</span><span style="color: rgb(0, 0, 255);">=&quot;*&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">Grid.ColumnDefinitions</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">Border</span> <span style="color: rgb(255, 0, 0);">Background</span></font><font style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 255);">=<br />&quot;{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Width</span><span style="color: rgb(0, 0, 255);">=&quot;60&quot;</span> <span style="color: rgb(255, 0, 0);">Height</span><span style="color: rgb(0, 0, 255);">=&quot;60&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />                <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">Image</span> <span style="color: rgb(255, 0, 0);">Source</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Image}&quot;</span> <span style="color: rgb(255, 0, 0);">Stretch</span><span style="color: rgb(0, 0, 255);">=&quot;Uniform&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">Border</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">StackPanel</span> <span style="color: rgb(255, 0, 0);">Grid</span>.<span style="color: rgb(255, 0, 0);">Column</span><span style="color: rgb(0, 0, 255);">=&quot;1&quot;</span> <span style="color: rgb(255, 0, 0);">Margin</span><span style="color: rgb(0, 0, 255);">=&quot;10,0,0,0&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />                <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">TextBlock</span> <span style="color: rgb(255, 0, 0);">Text</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Title}&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Style</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource ItemTextStyle}&quot;</span> <span style="color: rgb(255, 0, 0);">MaxHeight</span><span style="color: rgb(0, 0, 255);">=&quot;40&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />                <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">TextBlock</span> <span style="color: rgb(255, 0, 0);">Text</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Subtitle}&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Style</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource CaptionTextStyle}&quot;</span> <span style="color: rgb(255, 0, 0);">TextWrapping</span><span style="color: rgb(0, 0, 255);">=&quot;NoWrap&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">StackPanel</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />        <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">Grid</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />    <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">DataTemplate</span><span style="color: rgb(0, 0, 255);">&gt;</span></font><br /><br /><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">ResourceDictionary</span><span style="color: rgb(0, 0, 255);">&gt;</span></font></pre>

                          <p>以下は “GroupedItemsPage.xaml” です。黄色で塗られた部分を置き換えます。</p>

                          <div id="codeSnippetWrapper">
                            <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 128, 0);">&lt;!-- スナップの場合のみ使用される垂直スクロール リスト --&gt;</span><br /><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">ListView</span><br />    <span style="color: rgb(255, 0, 0);">x:Name</span><span style="color: rgb(0, 0, 255);">=&quot;itemListView&quot;</span><br />    <span style="color: rgb(255, 0, 0);">AutomationProperties</span>.<span style="color: rgb(255, 0, 0);">AutomationId</span><span style="color: rgb(0, 0, 255);">=&quot;ItemListView&quot;</span><br />    <span style="color: rgb(255, 0, 0);">AutomationProperties</span>.<span style="color: rgb(255, 0, 0);">Name</span><span style="color: rgb(0, 0, 255);">=&quot;Grouped Items&quot;</span><br />    <span style="color: rgb(255, 0, 0);">Grid</span>.<span style="color: rgb(255, 0, 0);">Row</span><span style="color: rgb(0, 0, 255);">=&quot;1&quot;</span><br />    <span style="color: rgb(255, 0, 0);">Visibility</span><span style="color: rgb(0, 0, 255);">=&quot;Collapsed&quot;</span><br />    <span style="color: rgb(255, 0, 0);">Margin</span><span style="color: rgb(0, 0, 255);">=&quot;0,-10,0,0&quot;</span><br />    <span style="color: rgb(255, 0, 0);">Padding</span><span style="color: rgb(0, 0, 255);">=&quot;10,0,0,60&quot;</span><br />    <span style="color: rgb(255, 0, 0);">ItemsSource</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Source=<br />{StaticResource groupedItemsViewSource}}&quot;</span><br />    <span style="color: rgb(255, 0, 0);">ItemTemplate</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource <font style="background-color: rgb(255, 255, 0);">MyStandard80ItemTemplate</font>}&quot;</span><br />    <span style="color: rgb(255, 0, 0);">SelectionMode</span><span style="color: rgb(0, 0, 255);">=&quot;None&quot;</span><br />    <span style="color: rgb(255, 0, 0);">IsSwipeEnabled</span><span style="color: rgb(0, 0, 255);">=&quot;false&quot;</span><br />    <span style="color: rgb(255, 0, 0);">IsItemClickEnabled</span><span style="color: rgb(0, 0, 255);">=&quot;True&quot;</span><br />    <span style="color: rgb(255, 0, 0);">ItemClick</span><span style="color: rgb(0, 0, 255);">=&quot;ItemView_ItemClick&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span></font></pre>

                            <br /></div>
                        </div>
                      </div>
                    </div>
以下は “GroupDetailPage.xaml” です。黄色で塗られた部分を置き換えます。 

                    <br />

                    <div id="codeSnippetWrapper">
                      <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 128, 0);">&lt;!-- ほとんどのビューステートで使用される水平スクロール グリッド--&gt;</span><br /><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">GridView</span><br />    <span style="color: rgb(255, 0, 0);">x:Name</span><span style="color: rgb(0, 0, 255);">=&quot;itemGridView&quot;</span><br />    <span style="color: rgb(255, 0, 0);">AutomationProperties</span>.<span style="color: rgb(255, 0, 0);">AutomationId</span><span style="color: rgb(0, 0, 255);">=&quot;ItemGridView&quot;</span><br />    <span style="color: rgb(255, 0, 0);">AutomationProperties</span>.<span style="color: rgb(255, 0, 0);">Name</span><span style="color: rgb(0, 0, 255);">=&quot;Items In Group&quot;</span><br />    <span style="color: rgb(255, 0, 0);">TabIndex</span><span style="color: rgb(0, 0, 255);">=&quot;1&quot;</span><br />    <span style="color: rgb(255, 0, 0);">Grid</span>.<span style="color: rgb(255, 0, 0);">RowSpan</span><span style="color: rgb(0, 0, 255);">=&quot;2&quot;</span><br />    <span style="color: rgb(255, 0, 0);">Padding</span><span style="color: rgb(0, 0, 255);">=&quot;120,126,120,50&quot;</span><br />    <span style="color: rgb(255, 0, 0);">ItemsSource</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Source={StaticResource itemsViewSource}}&quot;</span><br />    <span style="color: rgb(255, 0, 0);">ItemTemplate</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource <font style="background-color: rgb(255, 255, 0);">MyGroupDetailItemTemplate</font>}&quot;</span><br />    <span style="color: rgb(255, 0, 0);">SelectionMode</span><span style="color: rgb(0, 0, 255);">=&quot;None&quot;</span><br />    <span style="color: rgb(255, 0, 0);">IsSwipeEnabled</span><span style="color: rgb(0, 0, 255);">=&quot;false&quot;</span><br />    <span style="color: rgb(255, 0, 0);">IsItemClickEnabled</span><span style="color: rgb(0, 0, 255);">=&quot;True&quot;</span><br />    <span style="color: rgb(255, 0, 0);">ItemClick</span><span style="color: rgb(0, 0, 255);">=&quot;ItemView_ItemClick&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br /><br />    <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">GridView.Header</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />        <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">StackPanel</span> <span style="color: rgb(255, 0, 0);">Width</span><span style="color: rgb(0, 0, 255);">=&quot;480&quot;</span> <span style="color: rgb(255, 0, 0);">Margin</span><span style="color: rgb(0, 0, 255);">=&quot;0,4,14,0&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">TextBlock</span> <span style="color: rgb(255, 0, 0);">Text</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Subtitle}&quot;</span> <span style="color: rgb(255, 0, 0);">Margin</span><span style="color: rgb(0, 0, 255);">=&quot;0,0,18,20&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Style</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource SubheaderTextStyle}&quot;</span> <span style="color: rgb(255, 0, 0);">MaxHeight</span><span style="color: rgb(0, 0, 255);">=&quot;60&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">Image</span> <span style="color: rgb(255, 0, 0);">Source</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Image}&quot;</span> <span style="color: rgb(255, 0, 0);">Height</span><span style="color: rgb(0, 0, 255);">=&quot;400&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Margin</span><span style="color: rgb(0, 0, 255);">=&quot;0,0,18,20&quot;</span> <span style="color: rgb(255, 0, 0);">Stretch</span><span style="color: rgb(0, 0, 255);">=&quot;<font style="background-color: rgb(255, 255, 0);">Uniform</font>&quot;</span> <br /><span style="color: rgb(255, 0, 0);">AutomationProperties</span>.<span style="color: rgb(255, 0, 0);">Name</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Title}&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />            <span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">TextBlock</span> <span style="color: rgb(255, 0, 0);">Text</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Description}&quot;</span> <span style="color: rgb(255, 0, 0);">Margin</span><span style="color: rgb(0, 0, 255);">=&quot;0,0,18,0&quot;</span> <br /><span style="color: rgb(255, 0, 0);">Style</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource BodyTextStyle}&quot;</span><span style="color: rgb(0, 0, 255);">/&gt;</span><br />        <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">StackPanel</span><span style="color: rgb(0, 0, 255);">&gt;</span><br />    <span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">GridView.Header</span><span style="color: rgb(0, 0, 255);">&gt;</span></font></pre>

                      <br /></div>

                    <div>
                      <div id="codeSnippetWrapper">同じく “GroupDetailPage.xaml” です。黄色で塗られた部分を置き換えます。</div>

                      <div id="codeSnippetWrapper">
                        <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 128, 0);">&lt;!-- スナップの場合のみ使用される垂直スクロール リスト --&gt;</span><br /><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">ListView</span><br />    <span style="color: rgb(255, 0, 0);">x:Name</span><span style="color: rgb(0, 0, 255);">=&quot;itemListView&quot;</span><br />    <span style="color: rgb(255, 0, 0);">AutomationProperties</span>.<span style="color: rgb(255, 0, 0);">AutomationId</span><span style="color: rgb(0, 0, 255);">=&quot;ItemListView&quot;</span><br />    <span style="color: rgb(255, 0, 0);">AutomationProperties</span>.<span style="color: rgb(255, 0, 0);">Name</span><span style="color: rgb(0, 0, 255);">=&quot;Items In Group&quot;</span><br />    <span style="color: rgb(255, 0, 0);">TabIndex</span><span style="color: rgb(0, 0, 255);">=&quot;1&quot;</span><br />    <span style="color: rgb(255, 0, 0);">Grid</span>.<span style="color: rgb(255, 0, 0);">Row</span><span style="color: rgb(0, 0, 255);">=&quot;1&quot;</span><br />    <span style="color: rgb(255, 0, 0);">Visibility</span><span style="color: rgb(0, 0, 255);">=&quot;Collapsed&quot;</span><br />    <span style="color: rgb(255, 0, 0);">Padding</span><span style="color: rgb(0, 0, 255);">=&quot;10,0,0,60&quot;</span><br />    <span style="color: rgb(255, 0, 0);">ItemsSource</span><span style="color: rgb(0, 0, 255);">=&quot;{Binding Source={StaticResource itemsViewSource}}&quot;</span><br />    <span style="color: rgb(255, 0, 0);">ItemTemplate</span><span style="color: rgb(0, 0, 255);">=&quot;{StaticResource <font style="background-color: rgb(255, 255, 0);">Standard80ItemTemplate</font>}&quot;</span><br />    <span style="color: rgb(255, 0, 0);">SelectionMode</span><span style="color: rgb(0, 0, 255);">=&quot;None&quot;</span><br />    <span style="color: rgb(255, 0, 0);">IsSwipeEnabled</span><span style="color: rgb(0, 0, 255);">=&quot;false&quot;</span><br />    <span style="color: rgb(255, 0, 0);">IsItemClickEnabled</span><span style="color: rgb(0, 0, 255);">=&quot;True&quot;</span><br />    <span style="color: rgb(255, 0, 0);">ItemClick</span><span style="color: rgb(0, 0, 255);">=&quot;ItemView_ItemClick&quot;</span><span style="color: rgb(0, 0, 255);">&gt;</span></font></pre>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />こちらはオプションですが、スプラッシュ画面を変更するにはソリューションエクスプローラーから “Package.appxmanifest” をダブルクリックして開き、[アプリケーション UI] タブから [スプラッシュ スクリーン]のパスと [背景色] を適当に変更します。 

                        <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/0020.09_3BBFFB94.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/0020.09_5F00_3BBFFB94.png"><img title="09" style="display: inline; background-image: none;" border="0" alt="09" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/0513.09_thumb_1ACF199E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/0513.09_5F00_thumb_5F00_1ACF199E.png" width="559" height="244" /></a>&#160; <br />

                        <br /><a href="https://claudiapicmgr.blob.core.windows.net/pictures/SplashScreen.png" target="_blank">こちらの URL</a> から画像を取得し置き換えると以下のようなスプラッシュ画面に変更できます。 

                        <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/3582.10_2D51535C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/3582.10_5F00_2D51535C.png"><img title="10" style="display: inline; background-image: none;" border="0" alt="10" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/0844.10_thumb_2D53E40D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/0844.10_5F00_thumb_5F00_2D53E40D.png" width="559" height="351" /></a> 

                        <br /></div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </li>

  <li>
    <div>
      <div>
        <div>
          <div>
            <div>
              <div>
                <div>
                  <div>
                    <h3>まとめ</h3>

                    <div>これまで3回に渡って、Windows ストアアプリから Windows Azure へアクセスするためのサンプル アプリをステップ・バイ・ステップ形式にて説明してきました。コードやデータモデルがなるべくシンプルになるよう、何ヶ所か固定で定義してきましたが、どこを修正すればよいか大体当たりがつくようになったかと思われます。 
                      <br />Windows 8 の一般発売まであと3日になりました。これからも多くの Windows ストアアプリが作成されるかと思いますが、バックエンドに Windows Azure をご利用いただき、 Windows 8・パブリッククラウドサービス双方の強みを活かしたアプリケーションの開発に、今回の説明が少しでもお役に立てば幸いです。 

                      <br />

                      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br /></div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </li>

  <br />

  <br />

  <br />

  <br />

  <br />

  <br />

  <br />

  <br /></ol>]]></content:encoded>
    </item>
    <item>
      <title>Windows ストアアプリから Windows Azure へアクセスする（その2）</title>
      <link>https://docs.microsoft.com/archive/blogs/eye2eye/windows-windows-azure-2</link>
      <pubDate>Mon, 15 Oct 2012 00:25:00 GMT</pubDate>
      <dc:creator><![CDATA[野村 一行]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eye2eye/2012/10/15/windows-windows-azure-2/</guid>
      <description><![CDATA[10月4日-5日に開催された、Developer Camp 2012 Japan Fall にて、「デバイス + クラウドで実現するこれからのサービス ～ Windows 8 + Windows...]]></description>
      <content:encoded><![CDATA[<p>10月4日-5日に開催された、Developer Camp 2012 Japan Fall にて、「デバイス + クラウドで実現するこれからのサービス ～ Windows 8 + Windows Azure 編 ～」を担当させていただきました。</p>  <p>本エントリーは前回説明しました、「<a href="https://blogs.msdn.com/b/eye2eye/archive/2012/10/14/windows-windows-azure-2.aspx" target="_blank">Windows ストアアプリから Windows Azure へアクセスする（その1）</a>」の続きになります。Azure 側の環境構築と、ベースとなる Azure サービスを作成し、デプロイしてみるところまで行きましたので、今回は Windows Azure から画像と詳細情報を公開するロジックを追加して、再デプロイするところまで行きましょう。</p>  <p>&#160;</p>  <ol>   <li>     <h3>ASP.NET MVC アプリケーションの作成</h3>  前回作成した PicMgr.WebApi プロジェクトにモデル クラスを追加します。       <br />[Models] フォルダを右クリックして [追加] – [クラス] を選択します。&#160; <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/2475.01_443EB0EE.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/2475.01_5F00_443EB0EE.png"><img title="01" style="display: inline; background-image: none;" border="0" alt="01" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/0003.01_thumb_4E9265FF.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/0003.01_5F00_thumb_5F00_4E9265FF.png" width="559" height="261" /></a>       <br />      <br />クラス名を”Picture.cs” にします。内容を以下のコードに置き換えます。       <br />      <div id="codeSnippetWrapper">       <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 0, 255);">namespace</span> PicMgr.Models<br />{<br />    <span style="color: rgb(0, 0, 255);">using</span> System.Runtime.Serialization;<br />    <span style="color: rgb(0, 0, 255);">using</span> System.Collections.Generic;<br />    <span style="color: rgb(0, 0, 255);">using</span> System.ComponentModel.DataAnnotations;<br />    <span style="color: rgb(0, 0, 255);">using</span> System.Linq;<br />    <span style="color: rgb(0, 0, 255);">using</span> System;<br /><br />    [DataContract]<br />    <span style="color: rgb(0, 0, 255);">public</span> <span style="color: rgb(0, 0, 255);">class</span> Picture<br />    {<br /><br />        [Key]<br />        <span style="color: rgb(0, 0, 255);">public</span> <span style="color: rgb(0, 0, 255);">int</span> PrimaryKey { get; set; }<br /><br />        [DataMember]<br />        <span style="color: rgb(0, 0, 255);">public</span> <span style="color: rgb(0, 0, 255);">string</span> UniqueId { get; set; }<br /><br />        [DataMember]<br />        <span style="color: rgb(0, 0, 255);">public</span> <span style="color: rgb(0, 0, 255);">string</span> Title { get; set; }<br /><br />        [DataMember]<br />        <span style="color: rgb(0, 0, 255);">public</span> <span style="color: rgb(0, 0, 255);">string</span> SubTitle { get; set; }<br /><br />        [DataMember]<br />        <span style="color: rgb(0, 0, 255);">public</span> <span style="color: rgb(0, 0, 255);">string</span> Description { get; set; }<br /><br />        [DataMember]<br />        <span style="color: rgb(0, 0, 255);">public</span> <span style="color: rgb(0, 0, 255);">string</span> ImagePath { get; set; }<br /><br />    }<br />}</font></pre>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />[参照設定] で”System.Runtime.Serialization” を追加します。 

      <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/6644.02_788447DC.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/6644.02_5F00_788447DC.png"><img title="02" style="display: inline; background-image: none;" border="0" alt="02" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/3005.02_thumb_7335612B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/3005.02_5F00_thumb_5F00_7335612B.png" width="559" height="386" /></a></div>

    <br />ここで一度 [Shift] + [Ctrl] + [B] キーを押してビルドしてください。 

    <br />次に、[Controllers] フォルダを右クリックして[追加] – [コントローラー] を選択します。&#160; <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/1016.03_454A9F24.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/1016.03_5F00_454A9F24.png"><img title="03" style="display: inline; background-image: none;" border="0" alt="03" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/4666.03_thumb_2B78F9A6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/4666.03_5F00_thumb_5F00_2B78F9A6.png" width="559" height="288" /></a> 

    <br />

    <br />コントローラー名を「PicturesController」、モデルクラスは「Picture (PicMgr.Models)」を選択、データコンテキストクラスは新規で「PicMgr.WebApi.Models.PictureContext」をデータコンテキスト型として入力し、追加ボタンを押します。 

    <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/2084.04_01988571.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/2084.04_5F00_01988571.png"><img title="04" style="display: inline; background-image: none;" border="0" alt="04" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/5224.04_thumb_130B76FA.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/5224.04_5F00_thumb_5F00_130B76FA.png" width="559" height="272" /></a> 

    <br />

    <br />ModelsフォルダにPictureContext.csが作成されていることを確認します。 

    <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/2262.05_3ECAD807.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/2262.05_5F00_3ECAD807.png"><img title="05" style="display: inline; background-image: none;" border="0" alt="05" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/1106.05_thumb_3C90DFFC.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/1106.05_5F00_thumb_5F00_3C90DFFC.png" width="243" height="244" /></a> 

    <br />

    <br />PictureContext.cs の内容は以下のようになっているはずです。 

    <br />

    <div id="codeSnippetWrapper">
      <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 0, 255);">using</span> System;<br /><span style="color: rgb(0, 0, 255);">using</span> System.Collections.Generic;<br /><span style="color: rgb(0, 0, 255);">using</span> System.Data;<br /><span style="color: rgb(0, 0, 255);">using</span> System.Data.Entity;<br /><span style="color: rgb(0, 0, 255);">using</span> System.Data.Entity.Infrastructure;<br /><span style="color: rgb(0, 0, 255);">using</span> System.Linq;<br /><span style="color: rgb(0, 0, 255);">using</span> System.Net;<br /><span style="color: rgb(0, 0, 255);">using</span> System.Net.Http;<br /><span style="color: rgb(0, 0, 255);">using</span> System.Web;<br /><span style="color: rgb(0, 0, 255);">using</span> System.Web.Http;<br /><span style="color: rgb(0, 0, 255);">using</span> PicMgr.Models;<br /><span style="color: rgb(0, 0, 255);">using</span> PicMgr.WebApi.Models;<br /><br /><span style="color: rgb(0, 0, 255);">namespace</span> PicMgr.WebApi.Controllers<br />{<br />    <span style="color: rgb(0, 0, 255);">public</span> <span style="color: rgb(0, 0, 255);">class</span> PicturesController : ApiController<br />    {<br />        <span style="color: rgb(0, 0, 255);">private</span> PictureContext db = <span style="color: rgb(0, 0, 255);">new</span> PictureContext();<br /><br />        <span style="color: rgb(0, 128, 0);">// GET api/Pictures</span><br />        <span style="color: rgb(0, 0, 255);">public</span> IEnumerable&lt;Picture&gt; GetPictures()<br />        {<br />            <span style="color: rgb(0, 0, 255);">return</span> db.Pictures.AsEnumerable();<br />        }<br /><br />        <span style="color: rgb(0, 128, 0);">// GET api/Pictures/5</span><br />        <span style="color: rgb(0, 0, 255);">public</span> Picture GetPicture(<span style="color: rgb(0, 0, 255);">int</span> id)<br />        {<br />            Picture picture = db.Pictures.Find(id);<br />            <span style="color: rgb(0, 0, 255);">if</span> (picture == <span style="color: rgb(0, 0, 255);">null</span>)<br />            {<br />                <span style="color: rgb(0, 0, 255);">throw</span> <span style="color: rgb(0, 0, 255);">new</span> HttpResponseException(<br />Request.CreateResponse(HttpStatusCode.NotFound));<br />            }<br /><br />            <span style="color: rgb(0, 0, 255);">return</span> picture;<br />        }<br /><br />        <span style="color: rgb(0, 128, 0);">// PUT api/Pictures/5</span><br />        <span style="color: rgb(0, 0, 255);">public</span> HttpResponseMessage PutPicture(<span style="color: rgb(0, 0, 255);">int</span> id, Picture picture)<br />        {<br />            <span style="color: rgb(0, 0, 255);">if</span> (ModelState.IsValid &amp;&amp; id == picture.PrimaryKey)<br />            {<br />                db.Entry(picture).State = EntityState.Modified;<br /><br />                <span style="color: rgb(0, 0, 255);">try</span><br />                {<br />                    db.SaveChanges();<br />                }<br />                <span style="color: rgb(0, 0, 255);">catch</span> (DbUpdateConcurrencyException)<br />                {<br />                    <span style="color: rgb(0, 0, 255);">return</span> Request.CreateResponse(<br />HttpStatusCode.NotFound);<br />                }<br /><br />                <span style="color: rgb(0, 0, 255);">return</span> Request.CreateResponse(HttpStatusCode.OK);<br />            }<br />            <span style="color: rgb(0, 0, 255);">else</span><br />            {<br />                <span style="color: rgb(0, 0, 255);">return</span> Request.CreateResponse(<br />HttpStatusCode.BadRequest);<br />            }<br />        }<br /><br />        <span style="color: rgb(0, 128, 0);">// POST api/Pictures</span><br />        <span style="color: rgb(0, 0, 255);">public</span> HttpResponseMessage PostPicture(Picture picture)<br />        {<br />            <span style="color: rgb(0, 0, 255);">if</span> (ModelState.IsValid)<br />            {<br />                db.Pictures.Add(picture);<br />                db.SaveChanges();<br /><br />                HttpResponseMessage response = <br />Request.CreateResponse(HttpStatusCode.Created, picture);<br />                response.Headers.Location = <br /><span style="color: rgb(0, 0, 255);">new</span> Uri(Url.Link(<span style="color: rgb(0, 96, 128);">&quot;DefaultApi&quot;</span>, <span style="color: rgb(0, 0, 255);">new</span> { id = picture.PrimaryKey }));<br />                <span style="color: rgb(0, 0, 255);">return</span> response;<br />            }<br />            <span style="color: rgb(0, 0, 255);">else</span><br />            {<br />                <span style="color: rgb(0, 0, 255);">return</span> Request.CreateResponse(<br />HttpStatusCode.BadRequest);<br />            }<br />        }<br /><br />        <span style="color: rgb(0, 128, 0);">// DELETE api/Pictures/5</span><br />        <span style="color: rgb(0, 0, 255);">public</span> HttpResponseMessage DeletePicture(<span style="color: rgb(0, 0, 255);">int</span> id)<br />        {<br />            Picture picture = db.Pictures.Find(id);<br />            <span style="color: rgb(0, 0, 255);">if</span> (picture == <span style="color: rgb(0, 0, 255);">null</span>)<br />            {<br />                <span style="color: rgb(0, 0, 255);">return</span> Request.CreateResponse(<br />HttpStatusCode.NotFound);<br />            }<br /><br />            db.Pictures.Remove(picture);<br /><br />            <span style="color: rgb(0, 0, 255);">try</span><br />            {<br />                db.SaveChanges();<br />            }<br />            <span style="color: rgb(0, 0, 255);">catch</span> (DbUpdateConcurrencyException)<br />            {<br />                <span style="color: rgb(0, 0, 255);">return</span> Request.CreateResponse(<br />HttpStatusCode.NotFound);<br />            }<br /><br />            <span style="color: rgb(0, 0, 255);">return</span> Request.CreateResponse(HttpStatusCode.OK, picture);<br />        }<br /><br />        <span style="color: rgb(0, 0, 255);">protected</span> <span style="color: rgb(0, 0, 255);">override</span> <span style="color: rgb(0, 0, 255);">void</span> Dispose(<span style="color: rgb(0, 0, 255);">bool</span> disposing)<br />        {<br />            db.Dispose();<br />            <span style="color: rgb(0, 0, 255);">base</span>.Dispose(disposing);<br />        }<br />    }<br />}</font></pre>

      <br /></div>
  </li>

  <li>
    <h3>サンプルデータの挿入と Windows Azure SQL データベースへの移行、Web Sites へのデプロイ</h3>

    <div>パッケージマネージャーコンソールを表示します。[ツール] - [ライブラリパッケージマネージャー] - [パッケージマネージャーコンソール] を選択します。 
      <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/4643.06_24EA9B78.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/4643.06_5F00_24EA9B78.png"><img title="06" style="display: inline; background-image: none;" border="0" alt="06" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/5040.06_thumb_18EB3BF5.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/5040.06_5F00_thumb_5F00_18EB3BF5.png" width="559" height="240" /></a> 

      <br />

      <br />コンソールから次の２つのコマンドを順番に実行します： 

      <br />enable-migrations -ContextTypeName PicMgr.WebApi.Models.PictureContext 

      <br /> add-migration Initial 

      <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/8666.07_0AAF53B6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/8666.07_5F00_0AAF53B6.png"><img title="07" style="display: inline; background-image: none;" border="0" alt="07" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/6114.07_thumb_7383D937.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/6114.07_5F00_thumb_5F00_7383D937.png" width="559" height="134" /></a> 

      <br />

      <br />[Migrations] フォルダがが作成されていることを確認し、”Configuration.cs” を開きます。 

      <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/8130.08_3E85E118.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/8130.08_5F00_3E85E118.png"><img title="08" style="display: inline; background-image: none;" border="0" alt="08" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/3302.08_thumb_5547B952.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/3302.08_5F00_thumb_5F00_5547B952.png" width="220" height="244" /></a> 

      <br />&#160;&#160;&#160;&#160;&#160; <br />PicMgr.Models 名前空間の宣言を追加します。 

      <br />

      <div id="codeSnippetWrapper">
        <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 0, 255);">namespace</span> PicMgr.WebApi.Migrations<br />{<br />    <span style="color: rgb(0, 0, 255);">using</span> System;<br />    <span style="color: rgb(0, 0, 255);">using</span> System.Data.Entity;<br />    <span style="color: rgb(0, 0, 255);">using</span> System.Data.Entity.Migrations;<br />    <span style="color: rgb(0, 0, 255);">using</span> System.Linq;<br />    <font style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 0, 255);">using</span> PicMgr.Models;</font><br /><br />    ...</font></pre>

        <br /></div>
 Seed メソッドに以下のコードを追加して、データの挿入を行います。 （ご自分の Azure 環境でお試しになる際は、下記コード内の BLOB URL から画像を入手し、ご自分の Azure Storage BLOB へアップロードした上で URL を置き換えてください。） 

      <br />

      <div id="codeSnippetWrapper">
        <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2"><span style="color: rgb(0, 0, 255);">protected</span> <span style="color: rgb(0, 0, 255);">override</span> <span style="color: rgb(0, 0, 255);">void</span> Seed(<br />PicMgr.WebApi.Models.PictureContext context)<br />{<br />    <span style="color: rgb(0, 128, 0);">//  This method will be called after migrating to the latest<br /> version.</span><br /><br />    <span style="color: rgb(0, 128, 0);">//  You can use the DbSet&lt;T&gt;.AddOrUpdate() helper extension method </span><br />    <span style="color: rgb(0, 128, 0);">//  to avoid creating duplicate seed data. E.g.</span><br />    <span style="color: rgb(0, 128, 0);">//</span><br />    <span style="color: rgb(0, 128, 0);">//    context.People.AddOrUpdate(</span><br />    <span style="color: rgb(0, 128, 0);">//      p =&gt; p.FullName,</span><br />    <span style="color: rgb(0, 128, 0);">//      new Person { FullName = &quot;Andrew Peters&quot; },</span><br />    <span style="color: rgb(0, 128, 0);">//      new Person { FullName = &quot;Brice Lambson&quot; },</span><br />    <span style="color: rgb(0, 128, 0);">//      new Person { FullName = &quot;Rowan Miller&quot; }</span><br />    <span style="color: rgb(0, 128, 0);">//    );</span><br />    <span style="color: rgb(0, 128, 0);">//</span><br /><font style="background-color: rgb(255, 255, 0);">    <span style="color: rgb(0, 0, 255);">string</span> dummy = </font><font style="background-color: rgb(255, 255, 0);"><span style="color: rgb(0, 96, 128);">&quot;\n\nPellentesque porta, mauris quis interdum <br />vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue.<br /> Cras posuere, enim a cursus convallis, neque turpis malesuada erat,<br /> ut adipiscing neque tortor ac erat.&quot;</span>;<br /><br />    context.Pictures.AddOrUpdate(p =&gt; p.UniqueId, <span style="color: rgb(0, 0, 255);">new</span> Picture<br />    {<br />        UniqueId = <span style="color: rgb(0, 96, 128);">&quot;1001&quot;</span>,<br />        Title = <span style="color: rgb(0, 96, 128);">&quot;January&quot;</span>,<br />        SubTitle = <span style="color: rgb(0, 96, 128);">&quot;January&quot;</span>,<br />        Description = <span style="color: rgb(0, 96, 128);">&quot;お正月&quot;</span> + dummy,<br />        ImagePath = <br /><span style="color: rgb(0, 96, 128);">&quot;https://claudiapicmgr.blob.core.windows.net/pictures/Claudia_Jan.jpg&quot;</span><br />    });<br /><br />    context.Pictures.AddOrUpdate(p =&gt; p.UniqueId, <span style="color: rgb(0, 0, 255);">new</span> Picture<br />    {<br />        UniqueId = <span style="color: rgb(0, 96, 128);">&quot;1002&quot;</span>,<br />        Title = <span style="color: rgb(0, 96, 128);">&quot;February&quot;</span>,<br />        SubTitle = <span style="color: rgb(0, 96, 128);">&quot;February&quot;</span>,<br />        Description = <span style="color: rgb(0, 96, 128);">&quot;バレンタインデー&quot;</span> + dummy,<br />        ImagePath = <br /><span style="color: rgb(0, 96, 128);">&quot;https://claudiapicmgr.blob.core.windows.net/pictures/Claudia_Feb.jpg&quot;</span><br />    });<br /><br />    context.Pictures.AddOrUpdate(p =&gt; p.UniqueId, <span style="color: rgb(0, 0, 255);">new</span> Picture<br />    {<br />        UniqueId = <span style="color: rgb(0, 96, 128);">&quot;1003&quot;</span>,<br />        Title = <span style="color: rgb(0, 96, 128);">&quot;March&quot;</span>,<br />        SubTitle = <span style="color: rgb(0, 96, 128);">&quot;March&quot;</span>,<br />        Description = <span style="color: rgb(0, 96, 128);">&quot;ひな祭り&quot;</span> + dummy,<br />        ImagePath = <br /><span style="color: rgb(0, 96, 128);">&quot;https://claudiapicmgr.blob.core.windows.net/pictures/Claudia_Mar.jpg&quot;</span><br />    });<br /><br />    context.Pictures.AddOrUpdate(p =&gt; p.UniqueId, <span style="color: rgb(0, 0, 255);">new</span> Picture<br />    {<br />        UniqueId = <span style="color: rgb(0, 96, 128);">&quot;1004&quot;</span>,<br />        Title = <span style="color: rgb(0, 96, 128);">&quot;April&quot;</span>,<br />        SubTitle = <span style="color: rgb(0, 96, 128);">&quot;April&quot;</span>,<br />        Description = <span style="color: rgb(0, 96, 128);">&quot;桜吹雪&quot;</span> + dummy,<br />        ImagePath = <br /><span style="color: rgb(0, 96, 128);">&quot;https://claudiapicmgr.blob.core.windows.net/pictures/Claudia_Apr.jpg&quot;</span><br />    });<br /><br />    context.Pictures.AddOrUpdate(p =&gt; p.UniqueId, <span style="color: rgb(0, 0, 255);">new</span> Picture<br />    {<br />        UniqueId = <span style="color: rgb(0, 96, 128);">&quot;1005&quot;</span>,<br />        Title = <span style="color: rgb(0, 96, 128);">&quot;May&quot;</span>,<br />        SubTitle = <span style="color: rgb(0, 96, 128);">&quot;May&quot;</span>,<br />        Description = <span style="color: rgb(0, 96, 128);">&quot;風薫る&quot;</span> + dummy,<br />        ImagePath = <br /><span style="color: rgb(0, 96, 128);">&quot;https://claudiapicmgr.blob.core.windows.net/pictures/Claudia_May.jpg&quot;</span><br />    });<br /><br />    context.Pictures.AddOrUpdate(p =&gt; p.UniqueId, <span style="color: rgb(0, 0, 255);">new</span> Picture<br />    {<br />        UniqueId = <span style="color: rgb(0, 96, 128);">&quot;1006&quot;</span>,<br />        Title = <span style="color: rgb(0, 96, 128);">&quot;June&quot;</span>,<br />        SubTitle = <span style="color: rgb(0, 96, 128);">&quot;June&quot;</span>,<br />        Description = <span style="color: rgb(0, 96, 128);">&quot;梅雨&quot;</span> + dummy,<br />        ImagePath = <br /><span style="color: rgb(0, 96, 128);">&quot;https://claudiapicmgr.blob.core.windows.net/pictures/Claudia_Jun.jpg&quot;</span><br />    });<br /><br />    context.SaveChanges();<br /></font><br />}</font></pre>

        <br /></div>
パッケージマネージャーコンソールに戻り、以下のコマンドを実行します。 

      <br />update-database 

      <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/7840.10_42F05B7F.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/7840.10_5F00_42F05B7F.png"><img title="10" style="display: inline; background-image: none;" border="0" alt="10" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/7840.10_thumb_16D35E8E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/7840.10_5F00_thumb_5F00_16D35E8E.png" width="559" height="120" /></a> 

      <br />

      <br />ビルドします。これで Azure アプリケーションは完成です。 

      <br /></div>
  </li>

  <li>
    <h3>Azure Web Sites へのデプロイと動作確認</h3>

    <div>ソリューション エクスプローラーから [PicMgr.WebApi] プロジェクトを右クリックし、[発行…] メニューを選択します。 
      <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/0003.11_4D441090.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/0003.11_5F00_4D441090.png"><img title="11" style="display: inline; background-image: none;" border="0" alt="11" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/0081.11_thumb_5A408152.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/0081.11_5F00_thumb_5F00_5A408152.png" width="559" height="242" /></a> 

      <br />&#160; <br /><a href="https://blogs.msdn.com/b/eye2eye/archive/2012/10/14/windows-windows-azure-2.aspx" target="_blank">前回のエントリー</a>と同様に「Web を発行」ダイアログが表示されますので、[設定] タブを選択します。 

      <br />[データベース] の下にある [PictureContext] にリモート接続文字列を入力します。右の[…] を選択し、こちらも<a href="https://blogs.msdn.com/b/eye2eye/archive/2012/10/14/windows-windows-azure-2.aspx" target="_blank">前回のエントリー</a>で作成した SQL データベースに接続するための設定情報を参考に以下のように入力します。[テスト接続] ボタンを押してデータベースに接続できることを確認し、[OK] ボタンを押します。 

      <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/4174.12_221547E7.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/4174.12_5F00_221547E7.png"><img title="12" style="display: inline; background-image: none;" border="0" alt="12" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/0602.12_thumb_18BC1364.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/0602.12_5F00_thumb_5F00_18BC1364.png" width="333" height="488" /></a> 

      <br />

      <br />[この接続文字列を実行時に使用する（更新先 web.config）] 及び [Code First Migrations を実行する（アプリケーションの起動時に実行する）] をチェックし、[次へ &gt;] ボタンを押して、[プレビュー] タブから [発行] ボタンを押します。 

      <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/6354.13_0C3AB28E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/6354.13_5F00_0C3AB28E.png"><img title="13" style="display: inline; background-image: none;" border="0" alt="13" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/6366.13_thumb_6DEFFB97.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/6366.13_5F00_thumb_5F00_6DEFFB97.png" width="559" height="436" /></a> 

      <br />

      <br />アプリケーションが発行されてデプロイが完了すると、<a href="https://blogs.msdn.com/b/eye2eye/archive/2012/10/14/windows-windows-azure-2.aspx" target="_blank">前回のエントリー</a>と同様に Web API 対応アプリのデフォルト ページが表示されます。 

      <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/4604.14_4B2EC3DA.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/4604.14_5F00_4B2EC3DA.png"><img title="14" style="display: inline; background-image: none;" border="0" alt="14" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/5287.14_thumb_387C5AD4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/5287.14_5F00_thumb_5F00_387C5AD4.png" width="559" height="332" /></a> 

      <br />

      <br />

      <br />今度は URL の後ろに”api/pictures”を追加して、JSON データの内容を確認します。HTTP GET が PicturesController クラスの GetPictures メソッドにバインドされ、SQL データベースへアクセスし、以下のように先ほど Seed メソッドで挿入された内容が返されるはずです。 

      <br />

      <div id="codeSnippetWrapper">
        <pre id="codeSnippet" style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><font size="2">[<br />{<span style="color: rgb(0, 96, 128);">&quot;UniqueId&quot;</span>:<span style="color: rgb(0, 96, 128);">&quot;1001&quot;</span>,<span style="color: rgb(0, 96, 128);">&quot;Title&quot;</span>:<span style="color: rgb(0, 96, 128);">&quot;January&quot;</span>,<span style="color: rgb(0, 96, 128);">&quot;SubTitle&quot;</span>:<span style="color: rgb(0, 96, 128);">&quot;January&quot;</span>,<br /><span style="color: rgb(0, 96, 128);">&quot;Description&quot;</span>:<span style="color: rgb(0, 96, 128);">&quot;お正月 ...（省略）&quot;</span>,<span style="color: rgb(0, 96, 128);">&quot;ImagePath&quot;</span>:<br /><span style="color: rgb(0, 96, 128);">&quot;https://claudiapicmgr.blob.core.windows.net/pictures/Claudia_Jan.jpg&quot;</span>},<br />...（省略）<br />{<span style="color: rgb(0, 96, 128);">&quot;UniqueId&quot;</span>:<span style="color: rgb(0, 96, 128);">&quot;1006&quot;</span>,<span style="color: rgb(0, 96, 128);">&quot;Title&quot;</span>:<span style="color: rgb(0, 96, 128);">&quot;June&quot;</span>,<span style="color: rgb(0, 96, 128);">&quot;SubTitle&quot;</span>:<span style="color: rgb(0, 96, 128);">&quot;June&quot;</span>,<br /><span style="color: rgb(0, 96, 128);">&quot;Description&quot;</span>:<span style="color: rgb(0, 96, 128);">&quot;梅雨 ...（省略）&quot;</span>,<span style="color: rgb(0, 96, 128);">&quot;ImagePath&quot;</span>:<br /><span style="color: rgb(0, 96, 128);">&quot;https://claudiapicmgr.blob.core.windows.net/pictures/Claudia_Jun.jpg&quot;</span>}<br />]</font></pre>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />Windows Azure Web Sites にクラウドサービス環境を作成し、アプリケーション フレームワーク技術としては ASP.NET MVC Web API、Entity Framework を活用することで、非常に簡単かつ素早く Azure 対応クラウドサービスが作成できることが実感できましたでしょうか？また、Web Sites の高速簡単デプロイ、デスクトップ上の Web サービスが何のコード変更なしに SQL データベースへの移行も含めてクラウド環境に乗っかってしまうのも、なかなか魅力的ではないかと思います。 

        <br />

        <br />本エントリーではアプリケーション開発の手順を中心に説明していますが、もう少し詳しく知りたい方は英語ですが「<a href="https://www.windowsazure.com/en-us/develop/net/tutorials/web-site-with-sql-database/" target="_blank">Deploying an ASP.NET Web Application to a Windows Azure Web Site and SQL Database</a>」 が参考になるかと思います。 

        <br />

        <br />いよいよ次のエントリーでは、Windows ストアアプリからこの Web サービスへアクセスして返された JSON データをグリッドビューにバインドして表示させます。 

        <br />

        <br />

        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160; </div>
    </div>
  </li>
</ol>

<p id="codeSnippetWrapper">&#160;&#160;&#160;&#160;&#160; <br /></p>

<p>&#160;</p>

<ol></ol>]]></content:encoded>
    </item>
    <item>
      <title>Windows ストアアプリから Windows Azure へアクセスする（その1）</title>
      <link>https://docs.microsoft.com/archive/blogs/eye2eye/windows-windows-azure-1</link>
      <pubDate>Sat, 13 Oct 2012 19:30:24 GMT</pubDate>
      <dc:creator><![CDATA[野村 一行]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eye2eye/2012/10/13/windows-windows-azure-1/</guid>
      <description><![CDATA[10月4日-5日に開催された、Developer Camp 2012 Japan Fall にて、「デバイス + クラウドで実現するこれからのサービス ～ Windows 8 + Windows...]]></description>
      <content:encoded><![CDATA[<p>10月4日-5日に開催された、Developer Camp 2012 Japan Fall にて、「デバイス + クラウドで実現するこれからのサービス ～ Windows 8 + Windows Azure 編 ～」を担当させていただきました。ご多忙のところご参加いただいた方々、USTREAMで視聴いただいた方々、誠にありがとうございました。</p>  <p>ご都合などが合わなく、残念ながらご参加いただけなかった方々にも以下の URL にてストリーミングおよびスライドが公開されていますので、ぜひご覧ください。    <br />ストリーミング： <a title="https://www.ustream.tv/recorded/25927178" href="https://www.ustream.tv/recorded/25927178" target="_blank">https://www.ustream.tv/recorded/25927178</a>     <br />スライド： <a title="https://www.slideshare.net/DeveloperCamp2012/windows-8-windows-azure" href="https://www.slideshare.net/DeveloperCamp2012/windows-8-windows-azure" target="_blank">https://www.slideshare.net/DeveloperCamp2012/windows-8-windows-azure</a></p>  <p><iframe style="border-width: 1px 1px 0px; border-style: solid; border-color: rgb(204, 204, 204); margin-bottom: 5px;" height="356" marginheight="0" src="https://www.slideshare.net/slideshow/embed_code/14597090" frameborder="0" width="427" marginwidth="0" scrolling="no" allowfullscreen="allowfullscreen"></iframe> </p>  <div style="margin-bottom: 5px;"><strong><a title="デバイス + クラウドで実現するこれからのサービス～ Windows 8 + Windows Azure 編 ～" href="https://www.slideshare.net/DeveloperCamp2012/windows-8-windows-azure" target="_blank">デバイス + クラウドで実現する これからのサービス ～ Windows 8 + Windows Azure 編 ～</a> </strong>from <strong><a href="https://www.slideshare.net/DeveloperCamp2012" target="_blank">Developer Camp 2012 Japan Fall</a></strong> </div>  <p>さて、セッション中で最初にお見せしました、Windows ストアアプリから Windows Azure サービスにアクセスし、<a href="https://msdn.microsoft.com/ja-jp/windowsazure/claudiaazure.aspx" target="_blank">クラウディア</a>の画像及び説明文を表示するデモの作成手順を本ブログで数回に分けて説明します。&#160;&#160; <br />内部では特に複雑なことはやっていません。Windows 8 + Windows Azure 連携がシンプルに実現されている１つの例として何かの参考になれば幸いです。</p>  <p>作成するサンプルの画面例（といっても Windows ストアアプリ側のほうですが）を以下をご覧ください。</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/0333.01_6C96D236.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/0333.01_5F00_6C96D236.png"><img title="01" style="display: inline; background-image: none;" border="0" alt="01" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/1768.01_thumb_77E79886.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/1768.01_5F00_thumb_5F00_77E79886.png" width="513" height="322" /></a>     <br />    <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/3482.02_3918328F.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/3482.02_5F00_3918328F.png"><img title="02" style="display: inline; background-image: none;" border="0" alt="02" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/2577.02_thumb_7AB4FF8C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/2577.02_5F00_thumb_5F00_7AB4FF8C.png" width="515" height="323" /></a>     <br />    <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/3036.03_7E55AB1A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/3036.03_5F00_7E55AB1A.png"><img title="03" style="display: inline; background-image: none;" border="0" alt="03" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/6735.03_thumb_5477C796.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/6735.03_5F00_thumb_5F00_5477C796.png" width="516" height="324" /></a>     <br />    <br />では、まずは Azure 側の環境構築と、ベースとなる Azure サービスを作成し、デプロイしてみるところまでステップ・バイ・ステップで説明してゆきます。</p>  <ol>   <li>     <h3>Web Sites と一緒にSQL データベースを作成します。 </h3>      <br />WEB SITES タブを選択し、       <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/4111.00-0_463BDF57.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/4111.00_2D00_0_5F00_463BDF57.png"><img title="00-0" style="display: inline; background-image: none;" border="0" alt="00-0" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/2022.00-0_thumb_01231221.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/2022.00_2D00_0_5F00_thumb_5F00_01231221.png" width="556" height="170" /></a>       <br />      <br />ページ下の NEW を選択します。       <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/3681.00_50FBC75D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/3681.00_5F00_50FBC75D.png"><img title="00" style="display: inline; background-image: none;" border="0" alt="00" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/5810.00_thumb_6C34205E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/5810.00_5F00_thumb_5F00_6C34205E.png" width="559" height="69" /></a>       <br />      <br />CREATE WITH DATABASE を選択します。       <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/5633.01_3BA0A2A6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/5633.01_5F00_3BA0A2A6.png"><img title="01" style="display: inline; background-image: none;" border="0" alt="01" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/3225.01_thumb_26457DEF.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/3225.01_5F00_thumb_5F00_26457DEF.png" width="565" height="217" /></a>       <br />      <br />ユニークな URL を入力します。データベースを新規に作成するため、Create a new SQL database を選択します。       <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/1256.02-2_45F6E868.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/1256.02_2D00_2_5F00_45F6E868.png"><img title="02-2" style="display: inline; background-image: none;" border="0" alt="02-2" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/7485.02-2_thumb_3107F6A6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/7485.02_2D00_2_5F00_thumb_5F00_3107F6A6.png" width="566" height="407" /></a>       <br />      <br />Web サイト設定ページ右下の右矢印ボタンを押し、次のページにてデータベース設定を指定します。       <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/5417.03-2_06BB4F7C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/5417.03_2D00_2_5F00_06BB4F7C.png"><img title="03-2" style="display: inline; background-image: none;" border="0" alt="03-2" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/1108.03-2_thumb_71CC5DB9.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/1108.03_2D00_2_5F00_thumb_5F00_71CC5DB9.png" width="569" height="409" /></a>       <br />      <br />データベース設定ページ右下のチェックボタンを押し、Web サイトが作成されて Running になるまで待ちます。       <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/7043.04-1_0A5E8BBB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/7043.04_2D00_1_5F00_0A5E8BBB.png"><img title="04-1" style="display: inline; background-image: none;" border="0" alt="04-1" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/6052.04-1_thumb_607E1785.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/6052.04_2D00_1_5F00_thumb_5F00_607E1785.png" width="575" height="144" /></a>       <br />      <br />作成した Web サイト名を選択すると、ダッシュボード画面に切り替わります。       <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/8182.05_52AE623B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/8182.05_5F00_52AE623B.png"><img title="05" style="display: inline; background-image: none;" border="0" alt="05" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/7587.05_thumb_78A6A342.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/7587.05_5F00_thumb_5F00_78A6A342.png" width="583" height="327" /></a>       <br />      <br /> 後ほど Azure へのデプロイに使用するために、publish profile ファイルを保存しておきます。保存先とファイル名を記録しておいてください。       <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/7343.06_2375228C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/7343.06_5F00_2375228C.png"><img title="06" style="display: inline; background-image: none;" border="0" alt="06" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/5265.06_thumb_7A00E14B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/5265.06_5F00_thumb_5F00_7A00E14B.png" width="235" height="231" /></a>       <br />      <br />一緒に作成した SQL データベースが構築されているか、上部メニューから LINKED RESOURCES を選択し確認します。       <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/2705.07_1138D144.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/2705.07_5F00_1138D144.png"><img title="07" style="display: inline; background-image: none;" border="0" alt="07" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/2055.07_thumb_7C49DF81.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/2055.07_5F00_thumb_5F00_7C49DF81.png" width="568" height="136" /></a>       <br />      <br /> 続いて SQL データベース名を選択し、ダッシュボード画面に切り替えます。後ほど Azure へのデプロイに使用するために、データベース名及びサーバー名を記録しておいてください。       <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/5076.08_66EEBACA.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/5076.08_5F00_66EEBACA.png"><img title="08" style="display: inline; background-image: none;" border="0" alt="08" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/6710.08_thumb_7F80E8CB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/6710.08_5F00_thumb_5F00_7F80E8CB.png" width="565" height="247" /></a>       <br />      <br />&#160;</li>    <li>     <h3>Visual Studio 2012 で Windows Azure サービスを作成します。 </h3>      <br />新しいプロジェクトで空の Visual Studio ソリューションを作成します。ソリューション名を「PicMgr」とします。       <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/1325.09_77F80A0F.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/1325.09_5F00_77F80A0F.png"><img title="09" style="display: inline; background-image: none;" border="0" alt="09" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/7652.09_thumb_02B7F216.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/7652.09_5F00_thumb_5F00_02B7F216.png" width="567" height="363" /></a>       <br />&#160;&#160;&#160; <br />新しいプロジェクトを追加します。       <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/0407.10_1B4A2017.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/0407.10_5F00_1B4A2017.png"><img title="10" style="display: inline; background-image: none;" border="0" alt="10" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/7801.10_thumb_1A744ADE.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/7801.10_5F00_thumb_5F00_1A744ADE.png" width="567" height="199" /></a>       <br />      <br />ASP.NET MVC 4 Web アプリケーションを作成します。アプリケーション名を「PicMgr.WebApi」とします。.NET Framework のバージョンは必ず ”4” を選択してください。（2012年10月5日時点ではまだ Azure が .NET 4.5 に対応していません。）       <br />&#160;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/1033.11_199E75A5.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/1033.11_5F00_199E75A5.png"><img title="11" style="display: inline; background-image: none;" border="0" alt="11" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/3568.11_thumb_3230A3A6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/3568.11_5F00_thumb_5F00_3230A3A6.png" width="563" height="361" /></a>       <br />      <br />プロジェクト テンプレートの種類を Web API にします。OK ボタンを押します。       <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/3644.12_5F482125.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/3644.12_5F00_5F482125.png"><img title="12" style="display: inline; background-image: none;" border="0" alt="12" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/8510.12_thumb_19C320FA.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/8510.12_5F00_thumb_5F00_19C320FA.png" width="567" height="515" /></a>       <br />      <br />ウィザードが展開されます。[Controllers] フォルダ下の ValuesController.cs の中身を確認してみてください。Get / Post / Put / Delete という REST ベースの CRUD(Create / Read / Update / Delete) 処理が最初から生成されています。       <div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; height: 277px; text-align: left; line-height: 12pt; overflow: auto; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: rgb(244, 244, 244);">       <div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);">         <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"><span style="color: rgb(0, 0, 255);">namespace</span> PicMgr.WebApi.Controllers</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);">{</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">    <span style="color: rgb(0, 0, 255);">public</span> <span style="color: rgb(0, 0, 255);">class</span> ValuesController : ApiController</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);">    {</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        <span style="color: rgb(0, 128, 0);">// GET api/values</span></pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);">        <span style="color: rgb(0, 0, 255);">public</span> IEnumerable&lt;<span style="color: rgb(0, 0, 255);">string</span>&gt; Get()</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        {</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);">            <span style="color: rgb(0, 0, 255);">return</span> <span style="color: rgb(0, 0, 255);">new</span> <span style="color: rgb(0, 0, 255);">string</span>[] { <span style="color: rgb(0, 96, 128);">&quot;value1&quot;</span>, <span style="color: rgb(0, 96, 128);">&quot;value2&quot;</span> };</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        }</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);">&#160;</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        <span style="color: rgb(0, 128, 0);">// GET api/values/5</span></pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);">        <span style="color: rgb(0, 0, 255);">public</span> <span style="color: rgb(0, 0, 255);">string</span> Get(<span style="color: rgb(0, 0, 255);">int</span> id)</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        {</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);">            <span style="color: rgb(0, 0, 255);">return</span> <span style="color: rgb(0, 96, 128);">&quot;value&quot;</span>;</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        }</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);">&#160;</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        <span style="color: rgb(0, 128, 0);">// POST api/values</span></pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);">        <span style="color: rgb(0, 0, 255);">public</span> <span style="color: rgb(0, 0, 255);">void</span> Post([FromBody]<span style="color: rgb(0, 0, 255);">string</span> <span style="color: rgb(0, 0, 255);">value</span>)</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        {</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);">        }</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">&#160;</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);">        <span style="color: rgb(0, 128, 0);">// PUT api/values/5</span></pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        <span style="color: rgb(0, 0, 255);">public</span> <span style="color: rgb(0, 0, 255);">void</span> Put(<span style="color: rgb(0, 0, 255);">int</span> id, [FromBody]<span style="color: rgb(0, 0, 255);">string</span> <span style="color: rgb(0, 0, 255);">value</span>)</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);">        {</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        }</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);">&#160;</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        <span style="color: rgb(0, 128, 0);">// DELETE api/values/5</span></pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);">        <span style="color: rgb(0, 0, 255);">public</span> <span style="color: rgb(0, 0, 255);">void</span> Delete(<span style="color: rgb(0, 0, 255);">int</span> id)</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">        {</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);">        }</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;">    }</pre>
<!--CRLF-->

        <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);">}</pre>
<!--CRLF--></div>
    </div>

    <div class="csharpcode">
      <pre>&#160;</pre>
    </div>
    

    <br />F5 を押して、デバッグモードでサービスを起動します。URL に”api/values”を追加して、JSON ファイルの内容を確認します。上記コードの Get () メソッドの内容が返されていることがわかります。&#160;&#160;&#160;&#160; <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/8562.13_123A423E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/8562.13_5F00_123A423E.png"><img title="13" style="display: inline; background-image: none;" border="0" alt="13" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/1602.13_thumb_61A95536.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/1602.13_5F00_thumb_5F00_61A95536.png" width="565" height="277" /></a> 

    <br />

    <br />デバッグを終了します。 

    <br />

    <br /></li>

  <li>
    <h3>作成した ASP.NET MVC 4 アプリケーションを Azure にデプロイします。 </h3>

    <br />プロジェクト名を右クリックして、発行メニューを選択します。 

    <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/0020.14_0EC0D2B6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/0020.14_5F00_0EC0D2B6.png"><img title="14" style="display: inline; background-image: none;" border="0" alt="14" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/8015.14_thumb_3AFFEA4B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/8015.14_5F00_thumb_5F00_3AFFEA4B.png" width="566" height="236" /></a> 

    <br />

    <br />「Web を発行」ダイアログの[プロファイル]タブで[インポート(I)…]ボタンを押して、さきほど作成した publish profile ファイルを読み込みます。 

    <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/2311.15_3A2A1512.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/2311.15_5F00_3A2A1512.png"><img title="15" style="display: inline; background-image: none;" border="0" alt="15" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/8540.15_thumb_294801D3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/8540.15_5F00_thumb_5F00_294801D3.png" width="568" height="326" /></a> 

    <br />

    <br />[接続]タブ、[設定]タブはいづれも[次へ(X) &gt;]ボタンを押して、[プレビュー]タブで[発行(P)]ボタンを押します。 

    <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/3857.16_13ECDD1C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/3857.16_5F00_13ECDD1C.png"><img title="16" style="display: inline; background-image: none;" border="0" alt="16" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/1856.16_thumb_712BA55E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/1856.16_5F00_thumb_5F00_712BA55E.png" width="564" height="440" /></a> 

    <br />

    <br />発行が完了し、デプロイされると、Web ページが表示されます。URL が Web Sites の作成時に指定したものと同じであることを確認してください。 

    <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/5618.17_5C3CB39C.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/5618.17_5F00_5C3CB39C.png"><img title="17" style="display: inline; background-image: none;" border="0" alt="17" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/7652.17_thumb_4A84CB24.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/7652.17_5F00_thumb_5F00_4A84CB24.png" width="568" height="338" /></a> 

    <br />

    <br />さきほどのデバッグモードと同様にURL に”api/values”を追加して、JSON ファイルの内容を確認すると同じ内容が表示されるはずです。 

    <br />

    <br />次のエントリーで Azure から画像と詳細情報を公開するロジックを追加します。</li>
</ol>]]></content:encoded>
    </item>
    <item>
      <title>12月19日のクラウド技術セミナーで紹介したデータの出典について</title>
      <link>https://docs.microsoft.com/archive/blogs/eye2eye/121912</link>
      <pubDate>Mon, 26 Dec 2011 02:21:16 GMT</pubDate>
      <dc:creator><![CDATA[野村 一行]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eye2eye/2011/12/26/121912/</guid>
      <description><![CDATA[先週弊社品川本社にて開催されました、『クラウド技術セミナー：「Windows Azure...]]></description>
      <content:encoded><![CDATA[<p>先週弊社品川本社にて開催されました、『クラウド技術セミナー：「Windows Azure 対応サービス設計のツボ」』にご参加いただいた皆様、年末のご多忙のなかにもかかわらず半日おつきあいいただきありがとうございました。</p>  <p>残念ながらご都合がつかなかった、あるいはセミナーのご案内自体が届かなかった（大変申し訳ありません）方々にはこちらのセッション資料を公開いたしましたので、ご参考にしていただければ幸いです。（12/26現在 私のセッションタイトルが『Windows Azure 対応 サービス設計のツボ』となっておりますが、正しくは『Windows Azureの歩み・現在、そしてこれから』です。早めに修正する予定ですが、混乱させてしまった方にはお詫び申し上げます。）<a href="https://www.microsoft.com/japan/powerpro/TF/seminar.mspx#s144" target="_blank">https://www.microsoft.com/japan/powerpro/TF/seminar.mspx#s144</a></p>  <p>それで本題ですが、『Windows Azureの歩み・現在、そしてこれから』スライドを作成するにあたり、いくつかの公開資料を基に現在のWindows Azureの性能値などを紹介いたしましたので、以下にご参考までにまとめておきます。</p>  <p><strong>1. Windows Azure Compute について：</strong></p>  <p>7 Things to Know About Windows Azure Capacity    <br /><a href="https://technet.microsoft.com/en-us/cloud/Gg663909" target="_blank">https://technet.microsoft.com/en-us/cloud/Gg663909</a></p>  <p>Windows Azure Training Kit - December 2011 Update    <br /><a href="https://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=8396" target="_blank">https://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=8396</a> 「Presentations」より、     <br />WindowsAzureCompute.pptx</p>  <p>Introduction to Windows Azure: the cloud operating system    <br /><a href="https://channel9.msdn.com/Events/BUILD/BUILD2011/SAC-852F" target="_blank">https://channel9.msdn.com/Events/BUILD/BUILD2011/SAC-852F</a></p>  <p><strong>2. Windows Azure Storage について：</strong></p>  <p>Inside Windows Azure storage: what's new and under the hood deep dive    <br /><a href="https://channel9.msdn.com/Events/BUILD/BUILD2011/SAC-961T" target="_blank">https://channel9.msdn.com/Events/BUILD/BUILD2011/SAC-961T</a></p>  <p>Windows Azure Training Kit - December 2011 Update    <br /><a href="https://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=8396" target="_blank">https://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=8396</a> 「Presentations」より、     <br />InsideWindowsAzureStorage.pptx</p>  <p>Windows Azure Storage: A Highly Available Cloud Storage Service with Strong Consistency    <br /><a href="https://sigops.org/sosp/sosp11/current/2011-Cascais/printable/11-calder.pdf" target="_blank">https://sigops.org/sosp/sosp11/current/2011-Cascais/printable/11-calder.pdf</a></p>  <p><strong>3. SQL Azureについて：</strong></p>  <p>SQL Azure Connection Management    <br /><a href="https://social.technet.microsoft.com/wiki/contents/articles/sql-azure-connection-management.aspx" target="_blank">https://social.technet.microsoft.com/wiki/contents/articles/sql-azure-connection-management.aspx</a></p>  <p>Inside SQL Azure    <br /><a href="https://social.technet.microsoft.com/wiki/contents/articles/inside-sql-azure.aspx" target="_blank">https://social.technet.microsoft.com/wiki/contents/articles/inside-sql-azure.aspx</a></p>  <p>Best Practices for Handling Transient Conditions in SQL Azure Client Applications    <br /><a href="https://windowsazurecat.com/2010/10/best-practices-for-handling-transient-conditions-in-sql-azure-client-applications/" target="_blank">https://windowsazurecat.com/2010/10/best-practices-for-handling-transient-conditions-in-sql-azure-client-applications/</a></p>  <p>Now Available: SQL Azure Q4 2011 Service Release    <br /><a href="https://blogs.msdn.com/b/windowsazure/archive/2011/12/12/now-available-sql-azure-q4-2011-service-release.aspx" target="_blank">https://blogs.msdn.com/b/windowsazure/archive/2011/12/12/now-available-sql-azure-q4-2011-service-release.aspx</a></p>  <p>How to get to SQL Azure Query Performance Data    <br /><a href="https://blogs.msdn.com/b/benko/archive/2011/12/15/how-to-get-to-sql-azure-query-performance-data.aspx" target="_blank">https://blogs.msdn.com/b/benko/archive/2011/12/15/how-to-get-to-sql-azure-query-performance-data.aspx</a></p>  <p><strong>それと、Windows Azure SDKの各バージョンの主な内容については以下のWebページを参考にしました。</strong></p>  <p>Windows Azure SDK 1.3以降のWhat’s new：    <br /><a href="https://msdn.microsoft.com/en-us/library/windowsazure/gg441573.aspx" target="_blank">https://msdn.microsoft.com/en-us/library/windowsazure/gg441573.aspx</a></p>  <p>MSDNブログより：</p>  <p>Windows Azure SDK 1.0    <br /><a href="https://blogs.msdn.com/b/jnak/archive/2009/11/13/november-2009-release-of-the-windows-azure-tools-and-sdk.aspx" target="_blank">https://blogs.msdn.com/b/jnak/archive/2009/11/13/november-2009-release-of-the-windows-azure-tools-and-sdk.aspx</a></p>  <p>Windows Azure SDK 1.1    <br /><a href="https://blogs.msdn.com/b/jnak/archive/2010/02/01/february-2010-release-of-the-windows-azure-tools-for-microsoft-visual-studio-v1-1.aspx" target="_blank">https://blogs.msdn.com/b/jnak/archive/2010/02/01/february-2010-release-of-the-windows-azure-tools-for-microsoft-visual-studio-v1-1.aspx</a></p>  <p>Windows Azure SDK 1.2    <br /><a href="https://blogs.msdn.com/b/jnak/archive/2010/06/07/june-2010-release-of-the-windows-azure-tools-sdk.aspx" target="_blank">https://blogs.msdn.com/b/jnak/archive/2010/06/07/june-2010-release-of-the-windows-azure-tools-sdk.aspx</a></p>  <p>Windows Azure SDK 1.3    <br /><a href="https://blogs.msdn.com/b/windowsazure/archive/2010/11/29/just-released-windows-azure-sdk-1-3-and-the-new-windows-azure-management-portal.aspx" target="_blank">https://blogs.msdn.com/b/windowsazure/archive/2010/11/29/just-released-windows-azure-sdk-1-3-and-the-new-windows-azure-management-portal.aspx</a></p>  <p>Windows Azure SDK 1.4    <br /><a href="https://blogs.msdn.com/b/windowsazure/archive/2011/03/09/now-available-updated-windows-azure-sdk-and-windows-azure-management-portal.aspx" target="_blank">https://blogs.msdn.com/b/windowsazure/archive/2011/03/09/now-available-updated-windows-azure-sdk-and-windows-azure-management-portal.aspx</a></p>  <p>Windows Azure SDK 1.5    <br /><a href="https://blogs.msdn.com/b/windowsazure/archive/2011/09/15/announcing-windows-azure-sdk-1-5-windows-azure-tools-for-microsoft-visual-studio-2010-and-new-service-management-features.aspx" target="_blank">https://blogs.msdn.com/b/windowsazure/archive/2011/09/15/announcing-windows-azure-sdk-1-5-windows-azure-tools-for-microsoft-visual-studio-2010-and-new-service-management-features.aspx</a></p>  <p>Windows Azure SDK 1.6    <br /><a href="https://blogs.msdn.com/b/windowsazure/archive/2011/11/14/updated-windows-azure-sdk-amp-windows-azure-hpc-scheduler-sdk.aspx" target="_blank">https://blogs.msdn.com/b/windowsazure/archive/2011/11/14/updated-windows-azure-sdk-amp-windows-azure-hpc-scheduler-sdk.aspx</a></p>  <p>Windows Azure Training Kit に収録されたプレゼンテーション資料は（も？）内容的にかなり充実しておりますので、これを見るためだけでもダウンロードされることをお勧めいたします。</p>]]></content:encoded>
    </item>
    <item>
      <title>地球上で最も贅沢なAzure 入門セミナー！「Learn Windows Azure」オンラインセミナーのお知らせ</title>
      <link>https://docs.microsoft.com/archive/blogs/eye2eye/azure-learn-windows-azure12452</link>
      <pubDate>Thu, 08 Dec 2011 21:52:00 GMT</pubDate>
      <dc:creator><![CDATA[野村 一行]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eye2eye/2011/12/08/azure-learn-windows-azure12452/</guid>
      <description><![CDATA[前回と同様セミナーのご案内ですが、今回はマイクロソフト本社主催で行われるオンラインイベント、「Learn Windows Azure」（太平洋標準時で12月13日（火）9:00 AM &ndash;...]]></description>
      <content:encoded><![CDATA[<p>前回と同様セミナーのご案内ですが、今回はマイクロソフト本社主催で行われるオンラインイベント、「Learn Windows Azure」（太平洋標準時で12月13日（火）9:00 AM &ndash; 5:00 PM）のお知らせです。 <br /><a href="https://www.learnwindowsazureevent.com/" target="_blank"><span style="font-size: medium;" size="4">https://www.learnwindowsazureevent.com/</span></a> <br />日本だと・・・12月14日（水） 2:00 AM &ndash; 10:00 AM ですね。</p>
<p>あぁ、でも後でオンデマンドでも見る価値はあると思います。何せScott Guthrie、Dave Campbell、Mark Russinovich の3巨頭揃い踏み。</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/5621.clip_image001_1F8EAFEB.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/5621.clip_5F00_image001_5F00_1F8EAFEB.jpg"><img style="display: inline; background-image: none;" title="clip_image001" border="0" alt="clip_image001" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/80/18/metablogapi/4137.clip_image001_thumb_6BE6438C.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-80-18-metablogapi/4137.clip_5F00_image001_5F00_thumb_5F00_6BE6438C.jpg" width="228" height="191" /></a></p>
<p>「誰だっけ？」という方のために簡単に紹介しておくと左側から、</p>
<p>Scott Guthrie &ndash; Windows Azure プラットフォームの開発チームのトップ。Windows Azure SDKやWindows Azure Tools for Microsoft Visual Studioなどの開発ツールは彼の指揮の下にあります。SilverlightやASP.NET MVCのイメージが強い方もいらっしゃると思いますが、今はマイクロソフトの PaaS 戦略をドライブするキーマンの一人です。</p>
<p>Dave Campbell - マイクロソフトのテクニカル フェローにして、SQL Serverの父とも言える存在。もちろんSQL Azureの設計・開発も指揮しています。今年2月に来日し、その時の講演の様子がここで見られます。<a href="https://www.microsoft.com/japan/sqlserver/2008/r2/fact/event/default.mspx" target="_blank">https://www.microsoft.com/japan/sqlserver/2008/r2/fact/event/default.mspx</a></p>
<p>Mark Russinovich - 「Windows Internals」（翻訳では第4版が最新）の共著にあるように、Windows の最深部に精通している数少ないエンジニアの一人。彼もまたマイクロソフトのテクニカル フェローであり、Windows Azure でもファブリックコントローラーなどのコア技術の設計・開発を指揮しています。彼の「Inside Windows Azure」セッションはTechEdやPDC、Buildコンファレンスでも非常に人気があります。</p>
<p>当日のアジェンダは以下のようになっています。</p>
<p>9:00 &ndash; 10:30 a.m. &ndash; Getting Started with Windows Azure <br />Learn how to get started building applications for Windows Azure with the Windows Azure SDK &amp; Tools from Microsoft Corporate VP Scott Guthrie.</p>
<p>10:45 &ndash; 12 p.m. &ndash; Cloud Data &amp; Storage <br />Join Microsoft Technical Fellow Dave Campbell and learn how to use SQL Azure and Windows Azure storage services in your cloud applications.</p>
<p>12:15 &ndash; 1:15 p.m. &ndash; Channel9 Cloud Cover Show Live <br />Join Steve Marx and Wade Wegner for this special live edition to see some fresh Windows Azure demos and hear answers to common Windows Azure questions.</p>
<p>1:30 &ndash; 2:30 p.m. &ndash; Developing Windows Azure Applications with Visual Studio <br />In this session, Jay Schmelzer will show you how to use Visual Studio to its full potential to develop, debug, and deploy cloud applications.</p>
<p>2:45 &ndash; 3:45 p.m. &ndash; Building Scalable Cloud Applications <br />Do you want to build applications that are highly scalable, loosely coupled, and highly available? Then tune in for this session to learn about key Windows Azure services and patterns from David Aiken.</p>
<p>4:00 &ndash; 5:00 p.m. &ndash; Expert Panel Q&amp;A featuring Scott Guthrie, Dave Campbell, and Mark Russinovich!</p>
<p>詳細は明かせませんが、Scott Guthrieが素敵なデモを用意しているようです。</p>
<p>とはいえ、やはり圧巻なのはExpert Panel Q&amp;Aですね。</p>
<p>Twitterのハッシュタグ <a href="https://twitter.com/#!/search/%23WindowsAzure" target="_blank">#WindowsAzure</a> で質問を受け付けて、その場で答えてくれるそうなので、日頃の疑問やうっ憤（！？）をぶつけてみるのもよいかも。</p>
<p>本セミナーの翌週12月19日（月）は日本マイクロソフトで<a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032500699&amp;Culture=ja-JP" target="_blank">「Windows Azure 対応サービス設計のツボ」セミナー</a>です。英語漬けで疲れたらこちらで・・・</p>]]></content:encoded>
    </item>
  </channel>
</rss>