<?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>マイクロソフトのディベロッパー製品で楽しむ方法</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/myamada/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/myamada/feed.xml</link>
    <description />
    <lastBuildDate>Tue, 16 Apr 2019 05:19:44 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Visual Studio 2013 Preivewは、サイドバイサイドでインストールできます。</title>
      <link>https://docs.microsoft.com/archive/blogs/myamada/visual-studio-2013-preivew1229</link>
      <pubDate>Fri, 09 Aug 2013 10:06:00 GMT</pubDate>
      <dc:creator><![CDATA[山田昌良]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/myamada/2013/08/09/visual-studio-2013-preivew1229/</guid>
      <description><![CDATA[Visual Studio 2013 Preview版はもうお試しいただけましたでしょうか？現実的には、業務用のアプリなどを安定したVisual Studio...]]></description>
      <content:encoded><![CDATA[<p><a title="Visual Studio 2013 Preview版" href="https://www.microsoft.com/visualstudio/jpn/2013-downloads">Visual Studio 2013 Preview版</a>はもうお試しいただけましたでしょうか？<br />現実的には、業務用のアプリなどを安定したVisual Studio 2012で作成する必要があったり、Windows ストアアプリを作成するためにはOSもWindows 8.1 Previewにする必要があったりと、敷居が高く感じることもあるかも知れません。</p>
<p>しかし実際には、Visual Studio 2012がインストールされている環境に、Visual Studio 2013 Previewをサイドバイサイドでインストールすることが可能です。<br />サイドバイサイドでインストールすれば、Visual Studio 2012で作成したソリューションをVisual Studio 2013で開いたり編集したりすることができるのはもちろん、Visual Studio 2013で作成したアプリのソリューションファイルをVisual Studio 2012で開くことも可能です。</p>
<p>また、Visual Studio 2013 Previewを使ってWindows ストアアプリを作成するためにはOSもWindows 8.1 Previewにする必要がありますが、インストール自体はWindows 8上であっても行うことができます。Windows ストアアプリ以外のアプリであれば基本的に作成できますので、OSをWindows 8から変えられない環境でも、軽くVisual Studio 2013 Previewを試していただくことは可能です。</p>
<p>まだVisual Studio 2013 Previewを試していらっしゃらない方は、ぜひインストールしてみてください。</p>
<p>&nbsp;</p>
<hr />
<p><strong>サーバーおよびツール製品に関するインターナショナル ユーザー アンケート</strong><strong> 2013 ご協力のお願い （期間延長しました）</strong></p>
<p>マイクロソフトでは、お客様によりよい製品をお届けするために言語版製品の品質について調査を行っております。アンケートはすべて無記名でお客様の個人情報をマイクロソフトが取得することはありません。このアンケートにかかる時間はお客様が選択される製品によって異なりますが、およそ 5 ～<br />15 分ほどです。対象製品をご利用いただいているお客様は、ぜひご意見をお聞かせください。アンケート調査は<strong>9月末</strong>まで実施しています。</p>
<p><strong>対象製品</strong></p>
<p>&bull;Visual Studio</p>
<p>&bull;SQL Server</p>
<p>&bull;Windows Azure</p>
<p>&bull;Windows Server</p>
<p>&bull;System Center</p>
<p><a href="https://aka.ms/stb13_ja" target="_blank">日本語でのアンケートはこちらです。</a></p>
<p>&nbsp;</p>
<p>よろしくお願いします。</p>]]></content:encoded>
    </item>
    <item>
      <title>Visual Studio 2013 Previewをインストールしてみる</title>
      <link>https://docs.microsoft.com/archive/blogs/myamada/visual-studio-2013-preview</link>
      <pubDate>Thu, 04 Jul 2013 03:30:00 GMT</pubDate>
      <dc:creator><![CDATA[山田昌良]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/myamada/2013/07/04/visual-studio-2013-preview/</guid>
      <description><![CDATA[&nbsp;久しぶりの投稿となってしまいました。&nbsp;ここのところは専らWindows 8 ＋ Visual Studio 2012 を使って、Windows...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;久しぶりの投稿となってしまいました。<br />&nbsp;ここのところは専らWindows 8 ＋ Visual Studio 2012 を使って、Windows 8のアプリケーションを作っていました。<br />&nbsp;しかし先日、Windows 8.1と Visual Studio 2013のPreview版が発表され、とりあえずSurface RTでOutlookを使用したかったので、Windows RT 8.1をSurface RTにインストールしたところ、予想以上に Windows 8.1 の使い勝手がよく、メインマシンもWindows 8.1にすることにしました。<br />&nbsp;<br />&nbsp;それにあわせて<a href="https://www.microsoft.com/visualstudio/jpn/2013-downloads">Visual Studio も 2013 Preview版</a>をインストールすることにしたのですが、最も特徴的なのは マイクロソフト IDでサインインするようになっているところではないかと思います。<br />&nbsp;マイクロソフトIDを使用してサインインすることで、自分用にカスタマイズした開発環境をクラウド上に保存される形になるため、別のPCでVisual Studio 2013を使う場合でも、使い慣れた環境がすぐに利用できて便利です。<br />&nbsp;<br />&nbsp;もっとも、このサインインは必須ではなく、サインインしなければ単純にそのローカルマシンの中の設定で起動するので、今までと同じ振る舞いとなります。<br />&nbsp;<br />&nbsp;Visual Studio を使いこんでいる人の多くは、統合環境を自分なりにカスタマイズしている方が多いと思います。私もそうですが、自分なりのセッティングになっていない環境で開発をするのは違和感があるため、自分の開発マシン以外の環境では作業をしたくなかったりする方も少なくないのではないかと思います。<br />&nbsp;今回のVisual Studio 2013 Preview版では、そういった開発者のこだわりを実現してくれていると思います。<br />&nbsp;<br />&nbsp;他にも多数の新機能がありますが、また別途投稿したいと思います。</p>
<p>&nbsp;</p>
<hr />
<p>&nbsp;</p>
<p><strong>サーバーおよびツール製品に関するインターナショナル ユーザー アンケート</strong><strong> 2013 ご協力のお願い</strong></p>
<p>マイクロソフトでは、お客様によりよい製品をお届けするために言語版製品の品質について調査を行っております。アンケートはすべて無記名でお客様の個人情報をマイクロソフトが取得することはありません。このアンケートにかかる時間はお客様が選択される製品によって異なりますが、およそ 5 ～<br />15 分ほどです。対象製品をご利用いただいているお客様は、ぜひご意見をお聞かせください。アンケート調査は7月28日まで実施しています。</p>
<p><strong>対象製品</strong></p>
<p>&bull;Visual Studio</p>
<p>&bull;SQL Server</p>
<p>&bull;Windows Azure</p>
<p>&bull;Windows Server</p>
<p>&bull;System Center</p>
<p><a href="https://aka.ms/stb13_ja" target="_blank">日本語でのアンケートはこちらです。</a></p>
<p>&nbsp;</p>
<p>よろしくお願いします。</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Windows Azure Tools for Microsoft Visual Studio 1.2 を導入する</title>
      <link>https://docs.microsoft.com/archive/blogs/myamada/windows-azure-tools-for-microsoft-visual-studio-1-2</link>
      <pubDate>Sun, 04 Jul 2010 20:23:00 GMT</pubDate>
      <dc:creator><![CDATA[山田昌良]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/myamada/2010/07/04/windows-azure-tools-for-microsoft-visual-studio-1-2/</guid>
      <description><![CDATA[&nbsp;これまで英語版のツールのみの提供だった Windows Azure Tools for Microsoft Visual Studio 1.2 ですが、先日 日本語版の言語パック...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;これまで英語版のツールのみの提供だった Windows Azure Tools for Microsoft Visual Studio 1.2 ですが、先日 <strong>日本語版の言語パック</strong> がリリースされました。<br />&nbsp;これにより、Visual Studio 2010 日本語版上で、<strong>日本語UIを使って Windows Azure 対応のアプリケーションを開発</strong>していただくことが可能になりました。<br />&nbsp;<br />&nbsp;Windows Azure 上で動作するアプリケーションは、基本的には ASP.NETで作成されたものがそのまま動作するようになっているため、ほとんどの部分はこれまでのVisual Studio 2010 のWebアプリケーション開発と同様の手順で開発していただくことができますが、データストレージのアクセスや、クラウド内で実行しているサービスの活用など、Azure独特の部分を使ったプログラムを作成していただく際に、このツールが役に立ちます。<br />&nbsp;<br />&nbsp;このツールは、Visual Studio 2010 もしくは Visual Studio 2008 SP1 のアドインツールとして動作します。<br />&nbsp;ここではVisual Studio 2010 がインストールされている環境に、Windows Azure Tools for Microsoft Visual Studio 1.2 をインストールして使用してみたいと思います。<br />&nbsp;<br />&nbsp;<br />&nbsp;まず、インストールに際してOS側で IIS （インターネットインフォメーションサービス）を有効にして、ASP.NETが使用できるようにしておく必要があります。<br />&nbsp;コントロールパネルの「プログラムの機能」から、「Windowsの機能の有効化または無効化」を選択します。（Windows7の場合）<br />&nbsp;<br /><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/3683.azure1.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/3683.azure1.jpg" border="0" />&nbsp;<br />&nbsp;<br />&nbsp;そして、「インターネット インフォメーション サービス」をチェックして、そのノードの中の「ASP.NET」をチェックします。<br />&nbsp;これでOKをクリックすると、IISが有効化されてASP.NETを使ったWeb アプリケーションを直接実行できるようになります。<br />&nbsp;<br />&nbsp;<img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/8816.azure2.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/8816.azure2.jpg" border="0" />&nbsp;<br />&nbsp;<br />&nbsp;次に Windows Azure Tools for Microsoft Visual Studio 1.2 のコアパッケージをインストールします。インストーラーのUIが英語ですが、ツール自体は日本語版のOSおよびVisual Studioで動作します。<br />&nbsp;<br />&nbsp;<a href="https://www.microsoft.com/downloads/details.aspx?displaylang=ja&amp;FamilyID=2274a0a8-5d37-4eac-b50a-e197dc340f6f">https://www.microsoft.com/downloads/details.aspx?displaylang=ja&amp;FamilyID=2274a0a8-5d37-4eac-b50a-e197dc340f6f</a> <br />&nbsp;に行って、ページの一番下の方にある「VSCloudService.exe」をダウンロード・実行します。<br />&nbsp;<br /><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/4743.azure3.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/4743.azure3.jpg" border="0" /><br />&nbsp;<br />&nbsp;<br />&nbsp;なお、ダイアログボックス上に書かれているように、このツールをインストールすると <br />&nbsp;Windows Azure SDK<br />&nbsp;Windows Azure Tools for Microsoft Visual Studio 2010 1.2 <br />がインストールされることになります。</p>
<p>&nbsp;次の画面で 「I have read and accept the license terms.」をチェックして Next ボタンを押して、そのままインストールを続けます。<br />&nbsp;<br />&nbsp;<img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/2084.azure4.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/2084.azure4.jpg" border="0" />&nbsp;<br />&nbsp;azure6<br />&nbsp;<br />&nbsp;<br />&nbsp;コアパッケージのインストールが終了したら、次は日本語Language Packのインストールをします。<br />&nbsp;<br />&nbsp;先にコアパッケージを<a href="https://www.microsoft.com/downloads/details.aspx?displaylang=ja&amp;FamilyID=2274a0a8-5d37-4eac-b50a-e197dc340f6f">ダウンロードしたページと同じページ</a>に「VSCloudService.VS100.ja-jp.msi」がありますので、これをダウンロードして実行します。</p>
<p>&nbsp;今度は当然日本語UIによるセットアップ画面が表示されます。<br />&nbsp;<br />&nbsp;<img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/5518.azure7.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/5518.azure7.jpg" border="0" /><br />&nbsp;<br />&nbsp;<br />&nbsp;UIに従ってインストールを進めていくと、特に選択するところもなくインストールは終了します。<br />&nbsp;<br /><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/3513.azure10.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/3513.azure10.jpg" border="0" />&nbsp;<br />&nbsp;<br />&nbsp;それでは早速、このツールを活用してクラウドのプロジェクトを作成してみましょう。<br />&nbsp;まずVisual Studio 2010 を起動しますが、このとき管理者モードで実行する必要がありますのでご注意ください。管理者モードで実行しないと、デバッグ等ができないためVisual Studioを再起動することになってしまいます。<br />&nbsp;<br />&nbsp;そして、新規プロジェクトから Visual C#もしくは Visual Basicの下の Cloud を選択して、「Windows Azure クラウドサービス」のプロジェクトを作成します。<br />&nbsp;<br />&nbsp;<img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/8168.azure11.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/8168.azure11.jpg" border="0" /><br />&nbsp;<br />&nbsp;<br />&nbsp;すると、以下のようにこれから作成するクラウドサービスの種類を選択する画面になります。<br />&nbsp;ここでは ASP.NET Web ロールを選択しましょう。選択して「＞」をクリックし、OKをクリックすると、ASP.NETロールのプロジェクトが生成されます。<br />&nbsp;<br />&nbsp;<img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/4370.azure12.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/4370.azure12.jpg" border="0" />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;実際には、通常の ASP.NETアプリケーションとほぼ同様のプロジェクトおよび、クラウドサービスとしてのコンフィグレーションを行うためのファイルの組み合わせになっています。<br />&nbsp;<br /><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/2656.azure13.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/2656.azure13.jpg" border="0" /><br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;とりあえず何も変更を加えない状態で、実行してみましょう。<br />&nbsp;F5キーを押すなどして実行すると、クラウドにアップロードされる場合と同じような状況がローカルマシン上でエミュレーションされます。<br />&nbsp;以下のように、ローカルマシン上(127.0.0.1）でデプロイメントが行われていることが確認できます。<br />&nbsp;<br /><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/7080.azure14.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/7080.azure14.jpg" border="0" /><br />&nbsp;<br />&nbsp;<br />&nbsp;そしてしばらくすると、通常の ASP.NETアプリケーションをテンプレートのまま実行した時と同じような画面が表示されます。<br />&nbsp;<br /><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/7411.azure15.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/7411.azure15.jpg" border="0" /><br />&nbsp;<br />&nbsp;<br />&nbsp;なお、このサービスのエミュレーションの詳細を見るには、タスクバー上に表示されている（もしくは隠れている） Windows Azure Simulation Environment から確認することができます。<br />&nbsp;<br /><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/1172.azure16.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/1172.azure16.jpg" border="0" /><br />&nbsp;<br />&nbsp;<br />&nbsp;例えば「Show Development Fabric UI」を選択すると、以下のように現在実行中のCloudサービスが、正しくエミュレータ上でデプロイされて実行している様子が表示されます。<br />&nbsp;<br /><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/6327.azure17.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/6327.azure17.jpg" border="0" /><br />&nbsp;<br />&nbsp;<br />&nbsp;この環境で、通常の ASP.NETアプリケーションを作成するような形で.aspxや.csのコードを編集していくことでアプリケーションを構築することができます。<br />&nbsp;<br />&nbsp;なお、実際にWindows Azureのサービスにデプロイするには、Windows Azure Platform サブスクリプションを購入していただく必要があります。詳細は<a href=" https://www.microsoft.com/japan/windowsazure/windowsazure/">こちらのWeb page</a>の購入情報を参照してください。</p>]]></content:encoded>
    </item>
    <item>
      <title>Visual Studio 2010 の外観を簡単に変更する</title>
      <link>https://docs.microsoft.com/archive/blogs/myamada/visual-studio-2010</link>
      <pubDate>Sun, 20 Jun 2010 20:33:50 GMT</pubDate>
      <dc:creator><![CDATA[山田昌良]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/myamada/2010/06/20/visual-studio-2010/</guid>
      <description><![CDATA[&nbsp;Visual Studio...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;Visual Studio は非常にカスタマイズ性の高いツールです。<br />&nbsp;ショートカットキーの割り当ての変更や画面上のレイアウトの配置の変更をはじめとして、あらゆる部分がカスタマイズできるようになっています。<br />&nbsp;本格的にVisual Studioをオリジナルにカスタマイズするには <a href="https://www.microsoft.com/downloads/details.aspx?FamilyID=47305cf4-2bea-43c0-91cd-1b853602dcc5&amp;displaylang=en">Visual Studio SDK</a>&nbsp;を使って、自分で拡張アドインを作っていただく必要がありますが、手軽にカスタマイズを楽しむならば、<strong>オンラインギャラリー</strong>がお勧めです。<br />&nbsp;<br />&nbsp;オンラインギャラリーには、すでにたくさんの拡張アドインがアップロードされており、それらはほとんどが無料です。<br />&nbsp;また、インストール＆アンインストールも極めて簡単なので、ちょっと試して気に入ればそのまま使い、気に入らなければすぐにアンインストールすることができます。<br />&nbsp;<br />&nbsp;今回は、人気の高い２つの拡張アドインを、インストール方法と合わせて紹介します。<br />&nbsp;<br />&nbsp;まずは、Visual Studio 2010 のIDEの全体の色調をワンタッチで変更できる拡張アドイン・<strong>Visual Studio Color Theme Editor</strong> です。<br />&nbsp;<br />&nbsp;<br />&nbsp;まず、メニューの <strong>ツール ｜拡張機能マネージャー</strong> を選択して拡張機能マネージャーを起動します。<br />&nbsp;<br /><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/5270.addin1.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/5270.addin1.jpg" border="0" />&nbsp;<br />&nbsp;<br />&nbsp;左側の「<strong>オンラインギャラリー</strong>」を選択します。<br />&nbsp;<br />&nbsp;<img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/7416.addin2.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/7416.addin2.jpg" border="0" /><br />&nbsp;<br />&nbsp;<br />&nbsp;すると、大量の拡張アドインが中央にリストされますが、その中から<strong> Visual Studio Color Theme Editor</strong> を選択します。<br />&nbsp;人気のあるアドインなので、上の方にあってすぐに見つかると思いますが、見つかりにくい場合には右上の検索ボックスに「 Color Theme 」などと入力するとすぐにヒットすると思います。<br />&nbsp;<br />&nbsp;<img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/0336.addin3.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/0336.addin3.jpg" border="0" /><br />&nbsp;<br />&nbsp;<br />&nbsp;選択すると、ダウンロードボタンが表示されるのでそれをクリックすると、ダウンロードが始まります。<br />&nbsp;<br />&nbsp;<img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/2804.addin4.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/2804.addin4.jpg" border="0" /><br />&nbsp;<br />&nbsp;<br />&nbsp;ダウンロードが終了すると、ライセンス条項を表示したりするためのダイアログが表示されるので、書かれている内容を確認してインストールをクリックします。<br />&nbsp;<br />&nbsp;すると、ダイアログの下の方に再起動を促すメッセージとボタンが表示されるので、「<strong>今すぐ再起動</strong>」をクリックして Visual Studio を再起動します。<br />&nbsp;<br />&nbsp;<img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/6560.addin5.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/6560.addin5.jpg" border="0" /><br />&nbsp;<br />&nbsp;<br />&nbsp;すると、Visual Studio の IDE のメニューに、以下のように「Theme」という新しい項目が追加されているのが確認できます。<br />&nbsp;<br />&nbsp;<img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/6013.addin6.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/6013.addin6.jpg" border="0" /><br />&nbsp;<br />&nbsp;<br />&nbsp;ここで何か適当なThemeを選択すると、即座に IDE の周辺の色が変わります。<br />&nbsp;以下は、Emerald を選択した様子です。<br />&nbsp;<br />&nbsp;<img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/1018.addin7.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/1018.addin7.jpg" border="0" /><br />&nbsp;<br />&nbsp;<br />&nbsp;なお、アンインストールしたい場合には、再び拡張機能マネージャーを起動して Visual Studio Color Theme Editor を選択し、「アンインストール」をクリックすることで簡単にアンインストールすることができます。<br />&nbsp;もちろん、「無効化」を選択すれば、アンインストールはされませんがその機能のみが無効化されて、色の変更などもできないようになります。再び「有効化」をクリックすれば、当然その機能が有効になります。<br />&nbsp;<br />&nbsp;<img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/7737.addin8.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/7737.addin8.jpg" border="0" /><br />&nbsp;<br />&nbsp;<br />&nbsp;さて、ここではもう一つ、<strong>Intellisense Presenter</strong> を紹介します。<br />&nbsp;こちらもインストールは非常に簡単ですが、Visual Studio を使ってプログラムを書くのが楽しくなるような、面白い拡張アドインです。<br />&nbsp;Visual Studio上でプログラムを書く上でなくてはならない、というか何かタイプするたびに必ず表示される Intellisense ですが、この表示形態を変更するアドインです。<br />&nbsp;<br />&nbsp;先ほどと同じ要領で、機能拡張マネージャーを起動し、オンラインギャラリーを表示します。<br />&nbsp;その中から「<strong>Intellisense Presenter</strong>」を探すのですが、見つかりにくい場合は検索ボックスで「intellisense」などと入力すると見つかりやすくなると思います。<br />&nbsp;<br />&nbsp;<img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/3580.addin9.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/3580.addin9.jpg" border="0" /><br />&nbsp;<br />&nbsp;<br />&nbsp;これを選択してインストールし、IDEを再起動して何かプログラムを書くと、以下のようにIntellisenseが明るい感じに変わっているのが確認できると思います。<br />&nbsp;<br />&nbsp;<img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/46/84/8637.addin10.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-46-84/8637.addin10.jpg" border="0" /><br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;Visual Studio 2010 における機能拡張アドインは、本当に簡単に導入することができますし、世界中の人達がこのアドインを作成してアップロードしてくださっているので、大変有益なものが多数存在します。<br />&nbsp;ぜひ、オンラインギャラリーからいろいろ検索して、試してみてください。</p>]]></content:encoded>
    </item>
    <item>
      <title>Small Basic 0.9 は前のバージョンから大幅に進歩しています</title>
      <link>https://docs.microsoft.com/archive/blogs/myamada/small-basic-0-9</link>
      <pubDate>Sun, 13 Jun 2010 20:13:00 GMT</pubDate>
      <dc:creator><![CDATA[山田昌良]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/myamada/2010/06/13/small-basic-0-9/</guid>
      <description><![CDATA[&nbsp;今年の2月についに日本語UIを搭載してリリースされた Small Basic ですが、今回新たに大幅にバージョンアップされて バージョン 0.9...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;今年の2月についに日本語UIを搭載してリリースされた Small Basic ですが、今回新たに大幅にバージョンアップされて バージョン 0.9 としてリリースされました。<br />&nbsp;<br /><img height="281" width="564" src="https://public.bay.livefilestore.com/y1pxD046HpruRJfhaxvwjB-4JVyT9raDwBV3TvPYlZYPhxbUFzA8vPQ6WHsXJSl3HUw8MTfZStRVqyVd_v_xVkN2Q/sb9_8.jpg?psid=1" border="0" style="max-width: 550px;" /></p>
<p><br />&nbsp;今回のバージョンの特徴は多岐に渡りますが、特に目立つのはボタンやテキストボックスなどのコントロールを搭載できることだと思います。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1pxD046HpruRKQ0Q1MpCc-EohLodf3TMyUIMKZNjZgCneOmfHYVqtayHB_WgWNZAuYTHv0NCFCQyEwpIPu4gFl0Q/sb9_9.jpg?psid=1" border="0" style="max-width: 550px;" /></p>
<p>&nbsp;<br />&nbsp;またインストールが、国際的な観点から非常に簡単になりました。<br />&nbsp;これまでは、Small Basicをインストールすると、使うにせよ使わないにせよ、日本語以外の言語・例えばフランス語やイタリア語などのUIも、同時にインストールされていました。しかもそれらを使用したショートカットがスタートメニュー上に全言語分生成されるため、ほとんど使用しないものが多数並んでしまう格好になり、邪魔に感じられた方もいらっしゃったと思います。</p>
<p>&nbsp;しかし今回は、標準ではOSの言語に対応する言語のUIのみがインストールされるようになりました。<strong>つまり、日本語OS上で Small Basic 0.9 をインストールすると、その日本語UI版のみがインストールされます。<br /></strong>&nbsp;多くの場合において、この方がすっきりして使いやすいと感じていただけると思います。<br />&nbsp;<br />&nbsp;もちろん、複数の言語のUIをインストールすることも可能です。<br />&nbsp;以下に、簡単なインストールの流れを紹介します。<br />&nbsp;<br />&nbsp;まず、以下のURLの右側にある「Download Small Basic」ボタンをクリックして、インストールを開始します。<br />&nbsp;<a href="https://msdn.microsoft.com/en-us/beginner/ff423682.aspx">https://msdn.microsoft.com/en-us/beginner/ff423682.aspx</a><br />&nbsp;<br />&nbsp;すると、以下のようなセットアップウィザードが開始されます。<br />&nbsp;なお、インストーラーの画面は英語のみですが、インストール後の Small Basic 本体は日本語になっていますのでご安心ください。<br />&nbsp;<br /><img src="https://ddbeog.bay.livefilestore.com/y1pq2JADdR_7-dMtQoQhCG5Qfs38cZMd0m4pbdM_iLEpv4NTzcFIzUCPkrNJy1Lz818BGMoRndFIjR5qeC4QNZpxdWxGsl9_495/sb9_1.jpg?psid=1" border="0" style="max-width: 550px;" /><br />&nbsp;<br />&nbsp;<br />&nbsp;次の画面で I acept the terms in the License Agreement をチェックしてNextをクリックします。<br />&nbsp;<br /><img src="https://ddbeog.bay.livefilestore.com/y1pbJ-UGyEIjZQwjsQ7LebsZJm9epjhVvpC3YB4cUykeV8DG7u6kdbzb7INwiyV1FM1XDAELXHefE1OxLQn6ymkfjrXsLcNuBwa/sb9_2.jpg?psid=1" border="0" style="max-width: 550px;" /><br />&nbsp;<br />&nbsp;<br />&nbsp;そして次の画面で、もしも今自分が使用しているOSの言語（日本語OSを使っている場合には日本語）のUIのみをインストールしたい場合には、何も変更せずに Next をクリックします。<br />&nbsp;<br /><img src="https://ddbeog.bay.livefilestore.com/y1pbJ-UGyEIjZRoSLbp2UqtzHGdQeGFbqQb3Gj3vEeUd60jb-nTAxGj37Fn9BjzkeqbwSmiMUmRG0C9W02ZFuWBW_UcX7ok3PzY/sb9_3.jpg?psid=1" border="0" style="max-width: 550px;" />&nbsp;<br /><br />&nbsp;<br />&nbsp;<br />&nbsp;もしもそれ以外の言語、例えば自分は日本語OSを使っているけれども、英語のUIと日本語のUIの両方をインストールしたい、という場合は、この画面の Main Files の左端にある ＋ をクリックしてツリーを開き、インストールしたい言語を選択していきます。<br />&nbsp;<br /><img src="https://ddbeog.bay.livefilestore.com/y1pCPXarpvaZ9Im67lF7bASv0AbzprU8GJqw0jY-lJXAXQJ6XxFSqeiyBxoDg00TIlvjho8cBdARBklAsB39BGsor2q1hWE9de_/sb9_4.jpg?psid=1" border="0" style="max-width: 550px;" />&nbsp;<br /><br />&nbsp;<br />&nbsp;<br />&nbsp;次の画面で実際のインストールが開始されます。<br />&nbsp;<br /><img src="https://ddbeog.bay.livefilestore.com/y1pCPXarpvaZ9IGNFOSM3a-j658aRjLck925ZVKD_2Gb0MPp5MMvS447niLnSL2JVPjW7BIWmfxp3DRuhfRL419X_rk1JSGnHZo/sb9_5.jpg?psid=1" border="0" style="max-width: 550px;" />&nbsp;<br />&nbsp;<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1pMwSY_xlUGHxchRq9UrxDo2Gv-IhI0D6ZHhFxvUxN0J26wJlaTAfGtGujG5MsplOigOFfBA36f9R5rwd5PbqV9A/sb9_6.jpg?psid=1" border="0" style="max-width: 550px;" /><br />&nbsp;<br />&nbsp;<br />&nbsp;インストールが終了すると、スタートメニューに以下のように自分がインストールした言語のショートカットのみが表示されます。<br />&nbsp;以下の例では、英語UIと日本語UIをインストールするように指定したため、その２つのショートカットが生成されています。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1p5L4i7J7Y3pJA549b9s5FFCosJVcmruC1J90_CYVVGLqDDx_Bgz4vGnB6XV_wR7axZRSbvvJznzy_gkVGytzIKg/sb9_7.jpg?psid=1" border="0" style="max-width: 550px;" />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;Small Basic 0.9 の新機能の詳細については、今後こちらのブログでも紹介していきたいと思いますが、さしあたり、ボタンコントロールとテキストコントロールを試していただくには、以下のようなサンプルを実行して確認していただくと分かりやすいかも知れません。</p>
<p align="left" class="MsoNormal" style="text-align: left; margin: 0mm 0mm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; color: black; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;">mybox</span><span lang="EN-US" style="font-family: Consolas; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;"> <span style="color: maroon;">=</span> <span style="color: #006060;">Controls</span><span style="color: maroon;">.</span><span style="color: #802020;">AddTextBox</span><span style="color: maroon;">(</span><span style="color: #dd6633;">10</span><span style="color: maroon;">,</span><span style="color: #dd6633;">10</span><span style="color: maroon;">)</span><o:p></o:p></span></p>
<p align="left" class="MsoNormal" style="text-align: left; margin: 0mm 0mm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; color: #006060; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;">Controls</span><span lang="EN-US" style="font-family: Consolas; color: maroon; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;">.</span><span lang="EN-US" style="font-family: Consolas; color: #802020; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;">AddButton</span><span lang="EN-US" style="font-family: Consolas; color: maroon; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;">(</span><span lang="EN-US" style="font-family: Consolas; color: #cc6633; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;">"OK"</span><span lang="EN-US" style="font-family: Consolas; color: maroon; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;">,</span><span lang="EN-US" style="font-family: Consolas; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;"> <span style="color: #dd6633;">10</span><span style="color: maroon;">,</span><span style="color: #dd6633;">40</span><span style="color: maroon;">)</span><o:p></o:p></span></p>
<p align="left" class="MsoNormal" style="text-align: left; margin: 0mm 0mm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; color: #006060; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;">Controls</span><span lang="EN-US" style="font-family: Consolas; color: maroon; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;">.</span><span lang="EN-US" style="font-family: Consolas; color: #802020; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;">ButtonClicked</span><span lang="EN-US" style="font-family: Consolas; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;"> <span style="color: maroon;">=</span> <span style="color: black;">myclicked</span><o:p></o:p></span></p>
<p align="left" class="MsoNormal" style="text-align: left; margin: 0mm 0mm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><o:p>&nbsp;</o:p></span></p>
<p align="left" class="MsoNormal" style="text-align: left; margin: 0mm 0mm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><o:p>&nbsp;</o:p></span></p>
<p align="left" class="MsoNormal" style="text-align: left; margin: 0mm 0mm 0pt; mso-layout-grid-align: none;"><b><span lang="EN-US" style="font-family: Consolas; color: #7777ff; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;">Sub</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;"> <span style="color: black;">myclicked</span><o:p></o:p></span></p>
<p align="left" class="MsoNormal" style="text-align: left; margin: 0mm 0mm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp; </span><span style="color: black;">a</span> <span style="color: maroon;">=</span> <span style="color: #006060;">Controls</span><span style="color: maroon;">.</span><span style="color: #802020;">GetTextBoxText</span><span style="color: maroon;">(</span><span style="color: black;">mybox</span><span style="color: maroon;">)</span><o:p></o:p></span></p>
<p align="left" class="MsoNormal" style="text-align: left; margin: 0mm 0mm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp; </span><span style="color: #006060;">GraphicsWindow</span><span style="color: maroon;">.</span><span style="color: #802020;">DrawText</span><span style="color: maroon;">(</span><span style="color: #dd6633;">10</span><span style="color: maroon;">,</span><span style="color: #dd6633;">120</span><span style="color: maroon;">,</span> <span style="color: black;">a</span> <span style="color: maroon;">+</span> <span style="color: #cc6633;">"さんこんにちは！"</span><span style="color: maroon;">)</span><o:p></o:p></span></p>
<p align="left" class="MsoNormal" style="text-align: left; margin: 0mm 0mm 0pt; mso-layout-grid-align: none;"><b><span lang="EN-US" style="font-family: Consolas; color: #7777ff; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;">EndSub</span></b><span lang="EN-US" style="font-family: Consolas; font-size: 12pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><o:p></o:p></span></p>
<p>それでは、ぜひこの新しくバージョンアップされた Small Basicをダウンロードして、楽しんでみてください。</p>
<p>なお、前のバージョン（０．８など）がインストールされている場合には、あらかじめアンインストールしてからインストールしてください。</p>]]></content:encoded>
    </item>
    <item>
      <title>Team Foundation Server 2010 を使ってソース管理</title>
      <link>https://docs.microsoft.com/archive/blogs/myamada/team-foundation-server-2010</link>
      <pubDate>Thu, 10 Jun 2010 03:12:00 GMT</pubDate>
      <dc:creator><![CDATA[山田昌良]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/myamada/2010/06/10/team-foundation-server-2010/</guid>
      <description><![CDATA[&nbsp;前の前の記事で紹介しましたように、Team Foundation Server 2010 （以下TFS2010）...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;<a target="_blank" href="https://blogs.msdn.com/b/myamada/archive/2010/05/21/team-foundation-server-2010.aspx">前の前の記事</a>で紹介しましたように、Team Foundation Server 2010 （以下TFS2010） の導入は非常に簡単です。<br />&nbsp;そして、TFS2010の機能の中で最も手軽ながら<strong>最も有益な使い道は、ソースコード管理</strong>ではないかと思います。<br />&nbsp;<br />&nbsp;自分で作成したプログラムのソースコードの変更履歴などを簡単にたどることができ、例えばプログラムをいろいろ変更しているうちにおかしくなってしまった、というような場合でも、「上手く動いていた時の状態に逆戻り」することが簡単にできます。<br />&nbsp;また、別の開発用マシンで作業の再開をする場合などにも便利ですし、違うバージョンのアプリケーションを開発するためにソースコードの分岐をしたりといったことも可能です。<br />&nbsp;<br />&nbsp;なお、我々は以前 Visual Source Safe という製品を、ソースコード管理専門のツールとして提供させていただいていました。<br />&nbsp;しかしながら、既に Visual Source Safe は次期バージョンの開発を行っておらず、もしも Visual Source Safe のようなソースコード管理機能をお使いになりたいのであれば、ぜひ TFS 2008 をお使いください、そうすればこれまで以上に有益なソースコード管理を行うことができます、というようなメッセージを出させていただいていました。<br />&nbsp;しかし TFS 2008 は、導入そのものの敷居が高かったため、Visual Source Safe から TFS へとステップアップするのは困難であるというフィードバックを多数いただいておりました。<br />&nbsp;そして今回の TFS 2010 は、その導入の容易さから、現実的な意味での Visual Source Safe の次期バージョン、と考えていただくこともできるかと思います。<br />&nbsp;<br />&nbsp;それでは、実際にソースコードをチェックインしたり、変更履歴を活用したりしてみましょう。<br />&nbsp;<br />&nbsp;なお、ここでは既に TFS2010はインストールされており、何でも構いませんがプロジェクトが一つ作成されていることを前提にします。<br />&nbsp;もしもまだ TFS2010 そのものの準備等ができていない場合には、<a target="_blank" href="https://blogs.msdn.com/b/myamada/archive/2010/05/21/team-foundation-server-2010.aspx">前の前の記事</a>をご覧ください。本当に簡単に導入できますのでご安心ください。<br />&nbsp;<br />&nbsp;まず、チームエクスプローラー上で、自分の作成したプロジェクトのノードの中に「<strong>ソース管理</strong>」という項目があることを確認してください。<br />&nbsp;これをダブルリックすると、現在チェックインされているソースコードの一覧が表示されます。<br />&nbsp;まだ何もチェックインされていない状態であれば、プロジェクト名のノード等しか表示されないと思います。<br />&nbsp;<br /><img src="https://ddbeog.bay.livefilestore.com/y1paFD8Sgdb62UfM3eAjHiIr2PGC8jDqzUkqQGF-IjBZtJiOkoYiWET665oACboMTGPTmluvKXW_DSyd_Omcki3cmxNwQv9Smfc/tfss1.jpg?psid=1" border="0" style="max-width: 550px;" /><br />&nbsp;<br />&nbsp;今後、プログラムなどを書いてチェックインすると、このノードの下にそれらが追加されていく形になります。<br />&nbsp;それでは早速、何かプログラムを作成してみましょう。<br />&nbsp;何でも構いませんが、ここでは C# の コンソールアプリケーションを作ってみました。<br />&nbsp;ここでは適当に Console.WriteLine(); などを使って、画面上に "Phase1" と表示するようにしています。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1p6i3RXQOu_5EFt1tVT1TmYirglrWf8--2JdaaNHY2tB5llojVZGrJciEDkSJQ22uKd8c3XvLobARx1XjIofAjTQ/tfss2.jpg?psid=1" border="0" style="max-width: 550px;" /><br />&nbsp;<br />&nbsp;<br />&nbsp;そしてこのプロジェクトを構成するファイル群を、TFSにチェックインします。<br />&nbsp;メニューの <strong>ファイル ｜ ソース管理 ｜ ソリューションをソース管理に追加...</strong> を選択してください。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1pMvgHBETGgKnm4dOoodKfwYK4gHYe-W7GcuwDxLsA-aU1sU4lhvedJpXPULska0JPnes74iAQ0rJgdqQU93KS9A/tfss3.jpg?psid=1" border="0" style="max-width: 550px;" /><br />&nbsp;<br />&nbsp;<br />&nbsp;すると、以下のようなダイアログが表れて、複数のプロジェクトノードがある場合にはどのノードの下にチェックインするか、また追加するフォルダー名は何にするかなどを選択することができます。<br />&nbsp;基本的にはそのままで OK をクリックします。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1pbXdK_y2dApvpIA278oKjONPP5BVlAbP6cRCSLCZZTD_dRXH-n4CWI_RSwzG4ADiMHw1NBeSrTd5RJpT5GyKPpg/tfss4.jpg?psid=1" border="0" style="max-width: 550px;" />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;すると、現在作成中のプロジェクトを構成するファイルが、チェックインの保留状態になり、「保留中の変更」ウインドウが表示されると思います。（表示されない場合は、メニューの <strong>表示 ｜ その他のウインドウ ｜ 保留中の変更</strong> を選択してください）<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1pbXdK_y2dApvX4Fq76X5dIb0tffxqgY1LTcWYcdOhiaKIbUyseFPN8EUx8g1iq5mELbozycnyYvnyeitscFbQ3g/tfss5.jpg?psid=1" border="0" style="max-width: 550px;" /><br />&nbsp;<br />&nbsp;<br />&nbsp;とりあえず、これらのファイルをチェックインしましょう。<br />&nbsp;「保留中の変更」ウインドウ上の <strong>コメント(M):</strong> の欄に何かコメントを書いて（例：まだスケルトン部分しか書いてありません 等） 、<strong>チェックイン(I)</strong> をクリックします。<br />&nbsp;すると、確認のメッセージが表示された後、ファイル群がチェックインされます。<br />&nbsp;<br />&nbsp;チェックイン後は、ソース管理の画面上に自分のプロジェクト名のフォルダーが追加されて、その中にプロジェクトを構成するファイルが入っているのが確認できると思います。<br />&nbsp;<br />&nbsp;これで、以降全く違うPCを使用している場合であっても、VS2010さえインストールされていれば、このTFSサーバーに接続してこのプロジェクトをチェックアウトすれば、問題なく作業を再開することができますし、複数人で一つのプログラムを編集している場合でも、いわゆる上書きによって自分の直前の変更が消えてしまうということを未然に防ぐことができます。<br />&nbsp;<br />&nbsp;なお、もしも同じファイルを違うマシンで二人の開発者が別々に変更してしまい、あとからチェックインする人が前の人の変更を上書きして消してしまうような状況では、以下のようなメッセージが表示されて、一旦チェックインを拒否されます。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1pWw9tbq0kf3WlMhtPMPhp86ffQvtP9aUn0H2hMXxftslHLgI9aPcaf75Faxi_-6wpXxrqge_s8YlmssT4mPktPQ/tfss5_1.jpg?psid=1" border="0" style="max-width: 550px;" /></p>
<p>&nbsp;<br />&nbsp;そこで OK をクリックすると、以下のように競合の解決をするための方法を選択する画面になります。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1pjA7mwlZnX8YWSuelDowQ2OBQSBUHNnRA73EdfoP1w1m__p9T8P2h5NLeIVUDMUzHFCVNMwdnqqr89cPkiib5aA/tfss5_2.jpg?psid=1" border="0" style="max-width: 550px;" /><br />&nbsp;<br />&nbsp;<br />&nbsp;大抵の場合は、「<strong>自動マージ(M)</strong>」を選択すれば、自動的に二人の変更をまとめて一つのファイルにしてくれます。<br />&nbsp;もしも自動的にまとめられない（マージできない）場合には、「<strong>マージ ツールで変更をマージする(T)</strong>」を選択して、目で見て競合を解決することができます。<br />&nbsp;このような状況になるのは、ソースファイルの全く同一の場所を、同時に二人以上の開発者が変更した場合などに起こります。<br />&nbsp;<br />&nbsp;&nbsp;次に、先ほどチェックインしたソースファイルに変更を加えたとしても、必要であればいつでも前の状態にさかのぼることができるところを見てみましょう。<br />&nbsp;<br />&nbsp;先ほどのプログラムの "Phase 1" と表示させる部分を適当に変更してみます。<br />&nbsp;すると、「保留中の変更」ウインドウ上において 今変更を加えた Program.cs ファイルが編集されたことがすぐに認識され、次のチェックインの保留状態になります。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1pkwQkr4ijOsGkxMpB3bzylHKOmJv-fRgWwQ12qv--7PND06GshokpirAk2bD28lGltqUSrJ3UVGfDFduO2JlfqQ/tfss6.jpg?psid=1" border="0" style="max-width: 550px;" /> </p>
<p>&nbsp;<br />&nbsp;とりあえずこの状態でチェックインします。適当なコメントをつけて、<strong>チェックイン(I)</strong> をクリックします。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1pzkNspGHGD_fC76cH0nlzOjftjBhIQk2LhXv7YToW11TQmOKjdkQ0HMQhR-LlgSuV1dl4ONu2FAoiYVlJe10RQQ/tfss7.jpg?psid=1" border="0" style="max-width: 550px;" /> </p>
<p>&nbsp;<br />&nbsp;これで、この Program.cs ファイルは、見かけ上は前の状態が破棄され、更新された現在の状態が上書きされたような形になります。<br />&nbsp;しかし、実際には前の状態にいつでも復元できるように、データベース中に情報が保存されています。<br />&nbsp;そして、その前の状態と今の状態を比較したり、前の状態に復元したりするのはとても簡単です。<br />&nbsp;それでは前の状態と今の状態を比較する方法を紹介します。<br />&nbsp;<br />&nbsp;まずソース管理エクスプローラーを開きます。<br /><img src="https://public.bay.livefilestore.com/y1psx84uvIq2VQa1y5BH7e2y_gpm57hIjBX2D7TxvNHRMVcQt3DaNTthsrvS012ZAqzcgWJZCjVKMHXyM7QciGajA/tfss8.jpg?psid=1" border="0" style="max-width: 550px;" />&nbsp;</p>
<p>&nbsp;<br />&nbsp;そして、前の状態と比較したいファイル（ここでは Program.cs）を右クリックして、「<strong>履歴の表示(H)</strong>」を選択します。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1py9aV_v6f7Kmah1ggWiaKCC7r-4Gr18cPVGeYhAY1DsXLT1-RJ7oprm1wzJk_KZdKBc5Gepg-SuAH6_YuhaH6AA/tfss9.jpg?psid=1" border="0" style="max-width: 550px;" />&nbsp;<br /><br />&nbsp;<br />&nbsp;<br />&nbsp;すると、これまでの変更履歴が以下のように表示されます。<br />&nbsp;なお、今回は単純な実験なので履歴も2行しかなく、それほど恩恵を感じられないかも知れませんが、実際のアプリケーション開発において何十回となく変更を加えてチェックインを繰り返してきた場合、この変更履歴は大変重宝すると思います。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1py9aV_v6f7KmqR-7W4VMHVQ6j6C6Lmhi7cM2Sm8blaMGex40qVjVw0qlyeavt2xCWJpou5dbsPVUq2NtT2V9UTg/tfss10.jpg?psid=1" border="0" style="max-width: 550px;" />&nbsp;</p>
<p><br />&nbsp;右クリックして <strong>比較...</strong> を選択すると、以下のようなダイアログが表示されるので、比較元（ソース）と比較対象（ターゲット）を指定してOKをクリックします。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1pWWORXgWFbAqXQQH8yHpmVwnVi008ujhWvNkpN1OIdD0fttJcsjl0PW2jX1QFulOTRCOVRX1hZ8luvmxkbiU6Sg/tfss11.jpg?psid=1" border="0" style="max-width: 550px;" /><br />&nbsp;<br />&nbsp;<br />&nbsp;すると、以下のように相違のある部分が違う色で表示されるので、簡単に比較することができると思います。<br />&nbsp;&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1pWWORXgWFbArw-p5-34053mo4oN146t2aiaskBtxkZoxKMVp5FozTLpjl_1zQdQAO621HrsQ5SPm0ESSDw3ae6g/tfss12.jpg?psid=1" border="0" style="max-width: 550px;" /><br />&nbsp;<br />&nbsp;<br />&nbsp;また、ソースファイルを以前の状態に戻したい場合は、その対象ファイルをソース管理エクスプローラー上で右クリックして、「<strong>特定バージョンの取得(G)...</strong>」を選択すると、簡単に以前のバージョンのファイルが取得できます。</p>
<p><img src="https://public.bay.livefilestore.com/y1pWWORXgWFbAoitDsA_89Z4DfMPdeFemOYjkHLmTgOSh94bbK2n7i8QkAU33UGnNgEm3Q020M0KUrg7-hOLCytEA/tfss13.jpg?psid=1" border="0" style="max-width: 550px;" /><br />&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;このように、ソース管理も非常に視覚的に、かつ簡単に行うことができます。<br />&nbsp;開発者が複数人いるようなプロジェクトで効果を発揮するのはもちろんですが、ひとりですべてのプログラムっを書くようなプロジェクトであっても、ソース管理を使用するメリットは非常に大きいと思います。<br />&nbsp;「3日前の状態では動いていたのに、変なところをいじったら元に戻せなくなってしまった」というような失敗は、ソース管理ツールのない時代には珍しくないことだったと思いますが、ソース管理を使用すればチェックインした時のポイントであればいつでも戻ることができるので、そのような失敗はほとんど皆無になると思います。<br />&nbsp;<br />&nbsp;次回は、TFSを使用したバグの管理を紹介したいと思います。&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Twitterを活用したプログラムをC#で作成しよう</title>
      <link>https://docs.microsoft.com/archive/blogs/myamada/twitterc</link>
      <pubDate>Sun, 30 May 2010 00:42:00 GMT</pubDate>
      <dc:creator><![CDATA[山田昌良]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/myamada/2010/05/30/twitterc/</guid>
      <description><![CDATA[&nbsp;今回は、Visual Studio 2010 を使用して Twitter を活用するプログラムを作ってみましょう。&nbsp;今やITに関係のない人であっても、様々な形で活用されている...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;今回は、Visual Studio 2010 を使用して Twitter を活用するプログラムを作ってみましょう。<br />&nbsp;今やITに関係のない人であっても、様々な形で活用されている Twitter ですが、実際にやりとりされているデータは基本的なXMLファイルです。<br />&nbsp;したがって、XMLファイルから必要なデータを取り出したり、必要なXML形式のデータを生成したりといった技術を使えば、すぐに Twitter を活用したプログラムを作成することができます。<br />&nbsp;<br />&nbsp;例えば、Twitter で標準的に表示されるタイムラインのデータですが、これは<br />&nbsp;<a href="https://twitter.com/statuses/friends_timeline.xml">https://twitter.com/statuses/friends_timeline.xml</a><br />として送信されています。<br />試しに、IEやFireFoxなどで、上記のURLを直接入力すると、ID・パスワードを聞いてくるのでそれを入力してユーザー認証したのちに、タイムラインを構成しているXMLファイルが表示されます。</p>
<p><img src="https://ddbeog.bay.livefilestore.com/y1phAMqQhBRNVEjmSphnEclf5TnkUQ_X5VTN359XG7WLevqINjE614RVwGldMSIsG7q730h8GPkwi4NTQ2YTpTz4fSDhaFryr4S/tw1.jpg" border="0" style="max-width: 550px;" /></p>
<p>&nbsp;</p>
<p>&nbsp;まずは上記のようなXMLデータを、自分のプログラムから取得するコードを書いてみましょう。<br />&nbsp;C#でコンソールアプリケーションなどを選択し、以下のようなコードを入力します。<br />&nbsp;ただし入力する前に、プログラムの先頭に<br /><strong>&nbsp;using System.Net;<br /></strong>を追加してください。これによりWebClientクラスなどが簡単に使えるようになります。</p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; COLOR: blue; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt">using</span><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"> System;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; COLOR: blue; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt">using</span><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"> System.Collections.Generic;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; COLOR: blue; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt">using</span><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"> System.Linq;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; COLOR: blue; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt">using</span><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"> System.Text;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; COLOR: blue; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt">using</span><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"> System.Xml;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; COLOR: blue; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt">using</span><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"> System.IO;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; COLOR: blue; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt">using</span><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"> System.Net;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; COLOR: blue; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt">namespace</span><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"> ConsoleApplication1</span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt">{<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span><span style="COLOR: blue">class</span> <span style="COLOR: #2b91af">Program</span><o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: blue">static</span> <span style="COLOR: blue">void</span> Main(<span style="COLOR: blue">string</span>[] args)<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: #2b91af">WebClient</span> myweb = <span style="COLOR: blue">new</span> <span style="COLOR: #2b91af">WebClient</span>();<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>myweb.Credentials = <span style="COLOR: blue">new</span> <span style="COLOR: #2b91af">NetworkCredential</span>(<span style="COLOR: #a31515">"**ID**"</span>, <span style="COLOR: #a31515">"**password**"</span>);<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: blue">byte</span>[] pagedata = myweb.DownloadData(<span style="COLOR: #a31515">"https://twitter.com/statuses/friends_timeline.xml"</span>);<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: #2b91af">Encoding</span> ec = <span style="COLOR: #2b91af">Encoding</span>.UTF8;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: #2b91af">Console</span>.WriteLine(ec.GetString(pagedata));<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt">}<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="FONT-FAMILY: 'MS Gothic'; FONT-SIZE: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt"><o:p>&nbsp;</o:p></span></p>
<p><br />&nbsp;なお、<span style="font-size: x-small;"><span style="font-family: ＭＳ ゴシック;"><span style="COLOR: #a31515">"**ID**"</span></span></span> および <span style="COLOR: #a31515"><span style="font-family: ＭＳ ゴシック; font-size: x-small;">"**password**"</span></span> と書かれている部分には、ご自分のTwitterのIDとパスワードを入力してください。<br />&nbsp;<br />&nbsp;これで実行すると、以下のように、タイムラインを構成するXMLファイルが表示されるはずです。<br />&nbsp;<br /><img src="https://ddbeog.bay.livefilestore.com/y1pGhH2VwGSM-9dcujecTvx-gnUlDTvOB4Q60yR13vnZRmN1IazEpSiN8dkUxLe0BPEw5-vRiSOdwipQi5b7VBFpI57TnsKpkso/tw2.jpg" border="0" style="max-width: 550px;" /><br />&nbsp;<br />&nbsp;&nbsp;（ちなみに上記のTweetは私のテスト書き込みです。）</p>
<p><br />&nbsp;それでは次に、取得したXMLファイルの中から、必要な情報のみを取り出して表示することにします。<br />&nbsp;今のままですと、Tweetした一人一人の自己紹介などまで含まれてしまうため大変冗長ですし、そもそもXMLをエレメント単位に分割しなければそのデータを応用することができませんから、このステップは重要です。<br />&nbsp;<br />&nbsp;XMLを解析するための方法は多数存在しますが、ここで使用させていただいたのは、<strong>XmlDocument</strong> クラスです。このクラスにはXML内のテキストデータを扱うための便利なメソッドが多数含まれており、比較的簡単に使うことができるので取り上げてみました。<br />&nbsp;<br />&nbsp;流れとしては、<strong>LoadXml()</strong> を使用して先に取り込んだXMLデータを読み込み、その中から&lt;Status&gt;というエレメントで囲まれたものを一つのつぶやきデータとしてとらえて mylist に入れて、そのmylistの中から 表示したいデータ、ここでは Tweetしたユーザーの名前とそのTweetした内容、そして日時を表示する、という形になります。<br />&nbsp;以下がプログラムのコードです。Mainの中のみを紹介しています。</p>
<p class="MsoNormal" align="left">
<p><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af;">WebClient</span> myweb = <span style="color: blue;">new</span> <span style="color: #2b91af;">WebClient</span>();<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span>myweb.Credentials = <span style="color: blue;">new</span> <span style="color: #2b91af;">NetworkCredential</span>(<span style="color: #a31515;">"**id**"</span>, <span style="color: #a31515;">"**password**"</span>);<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">byte</span>[] pagedata = myweb.DownloadData(<span style="color: #a31515;">"https://twitter.com/statuses/friends_timeline.xml"</span>);<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af;">Encoding</span> ec = <span style="color: #2b91af;">Encoding</span>.UTF8;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">string</span> tag = <span style="color: #a31515;">"status"</span>;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af;">XmlDocument</span> xdoc = <span style="color: blue;">new</span> <span style="color: #2b91af;">XmlDocument</span>();<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span>xdoc.LoadXml(ec.GetString(pagedata));<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af;">XmlElement</span> root = xdoc.DocumentElement;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af;">XmlNodeList</span> mylist = root.GetElementsByTagName(tag);<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">for</span> (<span style="color: blue;">int</span> i = 0; i &lt; mylist.Count; i++)<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af;">Console</span>.WriteLine(mylist[i].ChildNodes[9].ChildNodes[1].InnerText);<span style="mso-spacerun: yes;">&nbsp; </span><span style="color: green;">// User name</span><o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af;">Console</span>.WriteLine(mylist[i].ChildNodes[2].InnerText);<span style="mso-spacerun: yes;">&nbsp;&nbsp; </span><span style="color: green;">// Tweet</span><o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;</span><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af;">Console</span>.WriteLine(mylist[i].ChildNodes[0].InnerText);<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: green;">// posted time</span><o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af;">Console</span>.WriteLine();<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" align="left">&nbsp;</p>
</span></span><br />この状態で実行すると、以下のようにかなり整理された形で表示されるはずです。</p>
</p>
<p><img src="https://ddbeog.bay.livefilestore.com/y1psNlUakywyf3Ylqp7PuTEV-yt8j8d6CllOOSfRs4TOEiGgrT-2CFA612Iyf0qs1mWPVxp1h5xVfyGaQIpXyd1HLRkiXFyNDiQ/tw3.jpg" border="0" style="max-width: 550px;" /></p>
<p>&nbsp;もう少し解説します。<br />&nbsp;forループに入る前の段階で、既に<strong>mylistの中にはすべてのXMLデータが取り込まれています</strong>。<br />&nbsp;<strong>mylist[0]</strong>には最新のTweetの情報が入っていますし、<strong>mylist[1]</strong>はその次のTweet情報・・というようにして、一番最後の <strong>mylist[</strong>X<strong>]</strong> にはそのタイムラインの中で一番古いTweet情報が入っていることになります。<br />&nbsp;<br />&nbsp;各mylist[]の要素には、多数の子要素（<strong>ChildNodes</strong>）がぶら下がっています。<br />&nbsp;その中で、Tweetの本文はChildNodes[2]に入っていますので、<strong>mylist[i].ChildNodes[2].InnerText</strong> を表示させれば、Tweetの本文を表示することができるわけです。<br />&nbsp;同様に、<strong>mylist[i].ChildNodes[0].InnerText</strong> は投稿された時間です。<br />&nbsp;そしてユーザー名は若干ややこしくて、子要素のなかにさらに子要素があるという構造になっています。これは、ユーザー一人の持っている情報（例えばプロフィールやID、表示名など）が多いため、別のノード（枝）を用意してそこにユーザー情報を展開しているためです。ユーザー情報の元はmylist[i].ChildNodes[9]に入っていますが、さらにその下にぶら下がっている子要素の１番目にユーザー名が格納されているため、結局 <strong>mylist[i].ChildNodes[9].ChildNodes[1].InnerText</strong> がユーザー名を表すことになります。<br />&nbsp;<br />&nbsp;</p>
<p><br />&nbsp;さて、今回の最後のプログラムは、少しだけ上記のテクニックを応用して、現在のタイムラインの中で一番積極的にTweetしている人が誰なのかを調べるプログラムを作ってみましょう。<br />&nbsp;つまり、自分のタイムラインに登場するユーザー一人一人の、Tweetの回数をカウントしてリストとして表示するというものです。<br />&nbsp;方法は非常に原始的で、 UserNameというリストに対して、新規登場したユーザー名を追加していき、もしもその人のTweetがあったら、UserCountというリストの対応する位置の値を＋１する、という流れになります。<br />&nbsp;<br /><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af;">List</span>&lt;<span style="color: blue;">string</span>&gt; UserName = <span style="color: blue;">new</span> <span style="color: #2b91af;">List</span>&lt;<span style="color: blue;">string</span>&gt;();<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: green;">//to keep user names </span><o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af;">List</span>&lt;<span style="color: blue;">int</span>&gt; UserCounter = <span style="color: blue;">new</span> <span style="color: #2b91af;">List</span>&lt;<span style="color: blue;">int</span>&gt;();<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: green;">//to count how many posts are there for each user</span><o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af;">WebClient</span> myweb = <span style="color: blue;">new</span> <span style="color: #2b91af;">WebClient</span>();<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span>myweb.Credentials = <span style="color: blue;">new</span> <span style="color: #2b91af;">NetworkCredential</span>(<span style="color: #a31515;">"**ID**"</span>, <span style="color: #a31515;">"**password**"</span>);<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">byte</span>[] pagedata = myweb.DownloadData(<span style="color: #a31515;">"https://twitter.com/statuses/friends_timeline.xml"</span>);<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af;">Encoding</span> ec = <span style="color: #2b91af;">Encoding</span>.UTF8;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">string</span> tag = <span style="color: #a31515;">"status"</span>;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af;">XmlDocument</span> xdoc = <span style="color: blue;">new</span> <span style="color: #2b91af;">XmlDocument</span>();<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span>xdoc.LoadXml(ec.GetString(pagedata));<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af;">XmlElement</span> root = xdoc.DocumentElement;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af;">XmlNodeList</span> mylist = root.GetElementsByTagName(tag);<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">for</span> (<span style="color: blue;">int</span> i = 0; i &lt; mylist.Count; i++)<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">string</span> CurrentUser = mylist[i].ChildNodes[9].ChildNodes[1].InnerText;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">bool</span> IsNewuser = <span style="color: blue;">true</span>;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">for</span> (<span style="color: blue;">int</span> j = 0; j &lt; UserName.Count; j++)<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">if</span> (UserName[j] == CurrentUser)<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>{<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>UserCounter[j]++;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>IsNewuser = <span style="color: blue;">false</span>;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">if</span> (IsNewuser == <span style="color: blue;">true</span>)<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>UserName.Add(CurrentUser);<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>UserCounter.Add(1);<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">int</span> k = 0;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">foreach</span> (<span style="color: blue;">string</span> item <span style="color: blue;">in</span> UserName)<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af;">Console</span>.WriteLine(item + <span style="color: #a31515;">"</span></span><span style="font-family: 'ＭＳ ゴシック'; color: #a31515; font-size: 9.5pt; mso-ascii-font-family: 'MS Gothic'; mso-fareast-font-family: 'ＭＳ ゴシック'; mso-hansi-font-family: 'MS Gothic'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;">さ</span><span style="font-family: 'ＭＳ ゴシック'; color: #a31515; font-size: 9.5pt; mso-ascii-font-family: 'MS Gothic'; mso-fareast-font-family: 'ＭＳ ゴシック'; mso-hansi-font-family: 'MS Gothic'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;">ん</span><span lang="EN-US" style="font-family: 'MS Gothic'; color: #a31515; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"> : "</span><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"> + UserCounter[k].ToString() + <span style="color: #a31515;">"</span></span><span style="font-family: 'ＭＳ ゴシック'; color: #a31515; font-size: 9.5pt; mso-ascii-font-family: 'MS Gothic'; mso-fareast-font-family: 'ＭＳ ゴシック'; mso-hansi-font-family: 'MS Gothic'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;">回</span><span style="font-family: 'ＭＳ ゴシック'; color: #a31515; font-size: 9.5pt; mso-ascii-font-family: 'MS Gothic'; mso-fareast-font-family: 'ＭＳ ゴシック'; mso-hansi-font-family: 'MS Gothic'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;">つ</span><span style="font-family: 'ＭＳ ゴシック'; color: #a31515; font-size: 9.5pt; mso-ascii-font-family: 'MS Gothic'; mso-fareast-font-family: 'ＭＳ ゴシック'; mso-hansi-font-family: 'MS Gothic'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;">ぶ</span><span style="font-family: 'ＭＳ ゴシック'; color: #a31515; font-size: 9.5pt; mso-ascii-font-family: 'MS Gothic'; mso-fareast-font-family: 'ＭＳ ゴシック'; mso-hansi-font-family: 'MS Gothic'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;">や</span><span style="font-family: 'ＭＳ ゴシック'; color: #a31515; font-size: 9.5pt; mso-ascii-font-family: 'MS Gothic'; mso-fareast-font-family: 'ＭＳ ゴシック'; mso-hansi-font-family: 'MS Gothic'; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;">き</span><span lang="EN-US" style="font-family: 'MS Gothic'; color: #a31515; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;">"</span><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;">);<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>k++;<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" align="left"><span lang="EN-US" style="font-family: 'MS Gothic'; font-size: 9.5pt; mso-bidi-font-family: 'MS Gothic'; mso-font-kerning: 0pt;"><o:p>&nbsp;</o:p></span>&nbsp;<br /><img src="https://ddbeog.bay.livefilestore.com/y1pPEfFPs_TXPdXpF9zXdwugd2v5-z-WoklAaEW-THU_kCG4XsRgYDLZxqGejxZ0PN-jCnITtwBBOn12WWI1qEPRpB-ME9Vj0Wm/tw4.jpg" border="0" style="max-width: 550px;" />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;今回は、現状のタイムラインだけを加工するプログラムを紹介しましたが、もちろんこれ以外にも、Twitterは便利なAPIを多数公開しているので、次回はそれらをつかった更に便利なプログラムを紹介したいと思います。</p>]]></content:encoded>
    </item>
    <item>
      <title>Team Foundation Server 2010 は本当に手軽に導入できます</title>
      <link>https://docs.microsoft.com/archive/blogs/myamada/team-foundation-server-2010-2</link>
      <pubDate>Fri, 21 May 2010 01:30:00 GMT</pubDate>
      <dc:creator><![CDATA[山田昌良]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/myamada/2010/05/21/team-foundation-server-2010-2/</guid>
      <description><![CDATA[&nbsp;今日のITビジネスでは、PCを使用したシステム開発も大規模なものになるケースが多くなっているように思います。&nbsp;大規模なシステム開発においては複数の開発者・複数のテスト担当者がかか...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;今日のITビジネスでは、PCを使用したシステム開発も大規模なものになるケースが多くなっているように思います。<br />&nbsp;大規模なシステム開発においては複数の開発者・複数のテスト担当者がかかわるため、ソースコードの管理やバグの管理、作業の進捗管理などが重要になってきます。<br />&nbsp;そのような、開発プロセスを管理する際に使用するシステムとして提供させていただいているのが Team Foundation Server (以下 TFS）です。</p>
<p>&nbsp;今回は、いかに簡単に TFS 2010 を導入できるかを紹介したいと思います。<br />&nbsp;<br />&nbsp;実はTFSはこれまで、導入の敷居の非常に高い製品と言われてきました。<br />&nbsp;Express版ではないSQL サーバーのインストールやそのReporting 機能の有効化、IISサーバーのコンフィグレーション、Active Directoryのアカウントの設定など、あらゆることを事前に完全に設定しておかなければならず、また、Windows7などの Client OSにはインストールすることがそもそもできなかったので、導入するまでの敷居が高くなってしまっていたように思います。<br />&nbsp;<br />&nbsp;しかし、今回の TFS 2010 は今までとは比較にならないほど導入が簡単です。<br />&nbsp;TFS 2008 や 2005 の導入を検討していただいたけれども結局断念された、という方もきっと、今回の TFS 2010であればご満足いただけると思っています。<br />&nbsp;<br />&nbsp;<br />&nbsp;今回のこの記事では、とりあえず TFS 2010 を気軽に試してみたい、という方を対象に、日ごろ Visual Studio などを使用している クライアントマシンの上にそのまま TFS 2010 をインストールしてプロジェクトを一つ作るところまでを紹介します。<br />&nbsp;次回以降、ソースファイル管理やバグ管理なども紹介していこうと思います。<br />&nbsp;以下に紹介するのは、OSが Windows7で、既にVisual Studio 2010 をインストールされている場合の例です。<br />&nbsp;なお、他のOSでも同様ですし、Visual Studio 2010 が入っている必要はありません。<br />&nbsp;<br />&nbsp;<br />&nbsp;まずインストールですが、おそらく悩まれるところはないと思います。<br />&nbsp;セットアップを起動して、途中で以下のような「インストールする機能」を選択する場面がありますがとりあえず全部選択してインストールします。<br />&nbsp;<br /><img height="516" width="531" src="https://ddbeog.bay.livefilestore.com/y1pNypRA5LVpINKpll1cqLPn0fvIDMRqeIRDbb-70JwZnU-_iU6CgsNkHdrfftnVd9tVXkpzcCqCxz6MZi5v6nDn1-fzQjcLbSc/tfs1.jpg" border="0" style="max-width: 550px;" />&nbsp;<br /><br />&nbsp;<br />&nbsp;<br />&nbsp;インストールが終わると以下のよう画面になると思います。<br />&nbsp;「構成」ボタンをクリックして、そのままサーバーの構成をしてしまいましょう。<br />&nbsp;<br /><img height="499" width="538" src="https://ddbeog.bay.livefilestore.com/y1p-F-16R8JbwmPtbu35cT9EZ1XmbnRyuaVY8zCgSLXdb8CFysRTIJowub6DF9IXgHjebabK3-Bvb8-S0lK2O8wqaEZQX6CsTcQ/tfs2.jpg" border="0" style="max-width: 550px;" />&nbsp;<br /><br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;最初にライセンス認証の画面が出てきます。<br />&nbsp;すでにTFS 2010をオンラインなどでご購入されている方はここでプロダクトキーを入力していただき、そうでない場合は「評価版ライセンスをインストールする」を選択して進みます。<br />&nbsp;なお、評価版ライセンスであっても機能的には製品版と同等の機能を使用することができますが、有効期間は90日間ですので、それ以降継続してご使用いただく場合には、あとで製品版ライセンスを管理画面で入力すれば期限がなくなります。<br />&nbsp;<br /><img height="497" width="551" src="https://public.bay.livefilestore.com/y1p7rKrCvBvUq8wJzet_3LgtXoap4MK8LJBg8xj0P98oeJ2tKxaVmO7KpMJQzL-lwrb2Ok2qtr1oPBpGJOkBj8t0g/tfs3.jpg" border="0" style="max-width: 550px;" />&nbsp;<br /><br />&nbsp;<br />&nbsp;<br />&nbsp;「アクティブ化」をクリックすると、構成センターの画面になります。<br />&nbsp;ここで、TFSをどのようなレベルで使用するかを選択することができます。<br />&nbsp;最も簡単なのは「基本」構成ですので、ここでは基本を選択して進みます。基本構成であれば、SQL サーバーを単体でインストールする必要もなく、SQLがなければ SQL Expressを自動的にインストールしてくれますし、IISの設定なども自動的に行ってくれます。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1prvY_msG8CKVHtMi_2yHfwzthxoVuwS6h9nwQ4bcvg4Nx7qDPKHzm1kNh9Ym2JIABNUWHx863R-wNi6AZfCk65A/tfs4.jpg" border="0" style="max-width: 550px;" /><br />&nbsp;<br />&nbsp;<br />&nbsp;ほぼ既定のまま進めて、実際の構成を行います。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1pehnxqX3pEpwjDJIIyRciEC6asHwtjBr4-D3nrFIV2CYLCyh1yFh3m8hN6nJvqZpgFI7UzEY43kbbudDdrJSzOw/tfs6.jpg" border="0" style="max-width: 550px;" />&nbsp;<br /><br />&nbsp;<br />&nbsp;<br />&nbsp;すると、おそらく数分内に構成が終了し、以下のようなメッセージが表示されるはずです。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1pKYAIsSf7tpj5BVPr_MOwWRgoteU0yfm-9NnRDi2MrpN5kEBHqDoukXR4sUw0Mn9EbIoybsVYybuMdQppfxtrOg/tfs7.jpg" border="0" style="max-width: 550px;" />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;これでサーバー側の設定はとりあえず終了です。おそらく何ら悩まれるところはなかったはずです。<br />&nbsp;<br />&nbsp;では、今度はこのTFSサーバー上に、ひとつプロジェクトを作っておきましょう。<br />&nbsp;ここでは、TFSサーバーをインストールしたマシンと同じマシンにVisual Studio 2010 が入っている場合を取り上げているため、同じマシン上でVisual Studio 2010 を起動しますが、違うマシンでももちろん構いません。ただし別マシンにVisual Studioが入っている場合には、そのマシンからTFSサーバーに接続する際にサーバー名を入力する必要がありますので、マシン名を確認しておいてください。<br />&nbsp;<br />&nbsp;それではまず、Visual Studio 2010 を起動します。<br />&nbsp;スタート画面の中に「Team Foundation Server への接続」というリンクがあるので、これをクリックします。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1paLz4gd3mrHP1CEGoqmWPEGJNvoWFlT-WtgpG-qqol3GE4IfZheOp2gnGcEDJe_bD-0GdzW2M7dr2AT-IBrMnuQ/tfs8.jpg" border="0" style="max-width: 550px;" />&nbsp;<br /><br />&nbsp;<br />&nbsp;<br />&nbsp;すると以下のように、サーバーに接続する画面になります。<br />&nbsp;同じマシンにVisual Studio 2010 とTFSが入っている場合には、すぐにドロップダウンにサーバーが表れますが、違うマシンの場合には、「サーバー...」をクリックしてサーバー名を入力します。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1poLi-SwJVheu2Xg1t1v5iOE7RZ9wYTm_3HQWM25lU6b3ipPOwaBnWsZHYfOnGaHP5BHo50UBB6EXWTfVk78RCFQ/tfs9.jpg" border="0" style="max-width: 550px;" />&nbsp;<br /><br />&nbsp;<br />&nbsp;<br />&nbsp;するとチームエクスプローラーに、接続したTFSサーバー名が表示されると思います。<br />&nbsp;しかし、現状そのTFSにはまだ何も存在しない（プロジェクトが存在しない）はずなので、チームプロジェクトを作りましょう。<br />&nbsp;チームエクスプローラーの TFSサーバーの名前￥DefaultCollection を右クリックして、「新しいチームプロジェクト(W)...」を選択します。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1pu_MoCk8pS6qk8MOceZ90jML1e6z48t46RKHzLkdiDdsK0uuxphvuWZC-J89GYg6IbfG8xPzOmI31JmyL2FUvUg/tfs10.jpg" border="0" style="max-width: 550px;" />&nbsp;<br /><br />&nbsp;<br />&nbsp;<br />&nbsp;すると、チームプロジェクトの設定ウィザードの画面になるので、まずはチームプロジェクト名を適当に入力します。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1p4MjQuXbh_L-qCfz0XVDM6V6wWUAum2rb7Vd0WE1p6lc1RBulHmDh1kDyC2r-G6fM_cZpHGkxm84jgiNYyvGscA/tfs11.jpg" border="0" style="max-width: 550px;" />&nbsp;</p>
<p><br />&nbsp;<br />&nbsp;次にプロセステンプレートの選択画面になります。<br />&nbsp;これは、自分が作成するチームプロジェクトの規模や種類によって使い分けることが可能ですが、とりあえここではデフォルトのまま（MSF for Agile Software Development v5.0）で次に行きます。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1pRh0FboMhK5T31YwGrADGXGcJbiv5Qd_ObcbfuNKQhQbHsQtygkM5HJoE-L5WSLl5F-hpTM-ufbN-JJpXCsql5w/tfs12.jpg" border="0" style="max-width: 550px;" />&nbsp;<br /><br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;次はソース管理の設定です。<br />&nbsp;これから先作成したプログラムのソースファイルを格納する場所の名前を決めるのですが、今回は実験なので、特に変更しないで次に行きましょう。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1p68NTphy6elUZTF_3jVZ6dNv30-XqCelekriMxkl8yE50DzJauUc2ZYPLNmu58QoeXxPNSYMEDkUTNQ9u24xNqg/tfs13.jpg" border="0" style="max-width: 550px;" />&nbsp;<br /><br />&nbsp;<br />&nbsp;<br />&nbsp;これで進めていくと、チームプロジェクトが生成されるはずです。<br />&nbsp;拍子抜けするくらい簡単だったのではないでしょうか。ほとんど何も設定を変更する必要はなく、プロジェクト名さえ決めればあとはデフォルトで通常は問題ないと思います。<br />&nbsp;<br /><img src="https://public.bay.livefilestore.com/y1peBA6pmH57eYLjQEQfQSPqGJ5cozPnOnfHqDXcrLl9F50pyzwikAudubZdfegor353sIuf6BweYwnMTb0JcbJdQ/tfs14.jpg" border="0" style="max-width: 550px;" />&nbsp;<br /><br />&nbsp;<br />&nbsp;<br />&nbsp;プロジェクトが作成されると、チームエクスプローラーには以下のようにそのプロジェクトが表示されます。<br /><br /><img src="https://public.bay.livefilestore.com/y1pyKCSuQQPuKVRE2sLyWS2Ty4eY0ch7SctsWML4zWeFUxvJWkDdBkoVsq4QuyeOWjKnBJ01Le0CEi2A7z5EeqwQw/tfs15.jpg" border="0" style="max-width: 550px;" /></p>
<p>&nbsp;ここでソースコードをチェックインしたり、バグを登録したりといったことが簡単にできるのですが、その話は次回以降にしたいと思います。<br />&nbsp;<br />&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Visual Studio には逆アセンブラがついています</title>
      <link>https://docs.microsoft.com/archive/blogs/myamada/visual-studio</link>
      <pubDate>Fri, 14 May 2010 01:39:00 GMT</pubDate>
      <dc:creator><![CDATA[山田昌良]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/myamada/2010/05/14/visual-studio/</guid>
      <description><![CDATA[&nbsp;Windowsのアプリケーションや...]]></description>
      <content:encoded><![CDATA[<P>&nbsp;Windowsのアプリケーションや Webアプリケーションなどを構築するうえで、アセンブラ言語を使うことは、一部のドライバ系・制御系のプログラムを書かれる方を除いて非常に少なくなりました。<BR>&nbsp;<BR>&nbsp;以前は C/C++言語でアプリケーションのプログラムを書くことさえ「それでは処理が遅くなる」と言われて、泣く泣く一部を x86アセンブラを使って書いたり、インラインアセンブラを使用したり、もしくは C言語コンパイラにいったんアセンブラのソースコードを吐かせて、無駄な処理をしている部分をごっそり書き換えたりするといった形で、アセンブラ言語は欠かせない存在でした。<BR>（※ 軽く20年くらい前の話ですが）</P>
<P><BR>&nbsp;<BR>&nbsp;時は流れて今では、アセンブラ言語を使わないのはおろか、VC++を使ってネイティブコードを書くことでさえも既に高速化のための手段とされる風潮さえあると思います。<BR>&nbsp;通常はVBやC#などを使ってマネージドコードを書き、どうしても処理速度にこだわる必要がある場合のみC++のお世話になる、といったスタイルが、私などの場合にもあてはまります。<BR>&nbsp;<BR>&nbsp;しかし、どんなに時代が流れても、現状やっぱりCPUの上で最終的に実行されているのは機械語のコード（＝アセンブラ言語と１：１対応）ですから、アセンブラ言語の存在なくして今のこのPCの世界もあり得ない、と言っても間違っていないと思います。<BR>&nbsp;<BR>&nbsp;そして、Visual Studio は今でも逆アセンブリ機能をサポートしています。<BR>&nbsp;<BR>&nbsp;何かVC++などでアプリケーションを作成してステップ実行し、メニューの デバッグ ｜ ウインドウ ｜ 逆アセンブル とたどっていただくと・・・<BR>&nbsp;<BR><IMG style="WIDTH: 571px; HEIGHT: 416px" src="https://ddbeog.bay.livefilestore.com/y1ph7Cysqm0EutIdjjEdLQxKNyoC4AL_8j0ndfePaI2l9Zc8Qr2-Kftz-VaNA_NcdvNIpB9_mDbsxPFd-eHHuX1tySekXBW4oM6/asm2.jpg" width=571 height=416 mce_src="https://ddbeog.bay.livefilestore.com/y1ph7Cysqm0EutIdjjEdLQxKNyoC4AL_8j0ndfePaI2l9Zc8Qr2-Kftz-VaNA_NcdvNIpB9_mDbsxPFd-eHHuX1tySekXBW4oM6/asm2.jpg "><BR>&nbsp;<BR>&nbsp;</P>
<P>&nbsp;見事にアセンブラ言語の状態でのコードが表示されます。<BR>&nbsp;<BR><IMG style="WIDTH: 502px; HEIGHT: 200px" src="https://ddbeog.bay.livefilestore.com/y1p4VI3GQGQpFBQRRyiCA3x1cVyqE2_vdrjL-1mmIORAlnTeZVGBEnYO9EdJLj4HQrwrb4SLMW_242oFz2m2dJVhyET720su5sD/asm1.jpg" width=502 height=200 mce_src="https://ddbeog.bay.livefilestore.com/y1p4VI3GQGQpFBQRRyiCA3x1cVyqE2_vdrjL-1mmIORAlnTeZVGBEnYO9EdJLj4HQrwrb4SLMW_242oFz2m2dJVhyET720su5sD/asm1.jpg "><BR>&nbsp;<BR>&nbsp;<BR>&nbsp;もちろんこれはただの飾りではありません。<BR>&nbsp;この逆アセンブリ画面は、デバッガのステップ実行と完全に連動していますので、このままステップ実行をしながらデバッグすることもできますし、途中でどうしてもわからないクラッシュなどの問題が発生する場合に、ヒントになる場合もあると思います。<BR>&nbsp;<BR>&nbsp;なお、この機能はVisual Studio 2010 の新機能というわけではなく、Visual Studio 2008 にもありましたし、今手元にないので再現できませんが、もっと前のバージョンのVisual Studioからずっとサポートしている機能になると思います。<BR>&nbsp;<BR>&nbsp;他のコンポーネントとの依存性の強い今日のプログラミングでは、この逆アセンブルもどの程度役に立つかわかりませんが、それでもこのようにアセンブラのソースを見るだけでも、精神的にプログラミングの原点に返ることができるかも知れませんね。<BR></P>]]></content:encoded>
    </item>
    <item>
      <title>Visual Studio 2010 のコードサンプル</title>
      <link>https://docs.microsoft.com/archive/blogs/myamada/visual-studio-2010-2</link>
      <pubDate>Mon, 10 May 2010 02:51:00 GMT</pubDate>
      <dc:creator><![CDATA[山田昌良]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/myamada/2010/05/10/visual-studio-2010-2/</guid>
      <description><![CDATA[&nbsp; Visual Studio 2008 以前の Visual Studio では、コードサンプルはヘルプドキュメントの中に含まれていたり、Program Filesの下のVisual...]]></description>
      <content:encoded><![CDATA[<P>&nbsp; Visual Studio 2008 以前の Visual Studio では、コードサンプルはヘルプドキュメントの中に含まれていたり、Program Filesの下のVisual Studioがインストールされているフォルダの配下に配置されていたりしましたが、今回のVisual Studio 2010 では基本的に以下のページからオンラインで提供しています。</P>
<P><A href="https://msdn.microsoft.com/ja-jp/vstudio/dd238515.aspx" mce_href="https://msdn.microsoft.com/ja-jp/vstudio/dd238515.aspx">https://msdn.microsoft.com/ja-jp/vstudio/dd238515.aspx</A></P>
<P>&nbsp; なお、サンプル本体や、詳細な説明などは英語のままなのですが、日本語版 Visual Studio 2010 で動作させる上では基本的に問題はありません。<BR>&nbsp; <BR>&nbsp; 試しに一つ、以下のビデオビューアーのデモをダウンロードしてビルドして実行してみましょう。<BR>&nbsp;&nbsp;<BR><A href="https://code.msdn.microsoft.com/wpfsamples/Wiki/View.aspx?title=ja-JP" mce_href="https://code.msdn.microsoft.com/wpfsamples/Wiki/View.aspx?title=ja-JP"><IMG style="WIDTH: 484px; HEIGHT: 178px" src="https://ddbeog.bay.livefilestore.com/y1pBYAJcUTPayKz3rma4lhUCf-iZ1XwH4w7Kzka5K5QlmiX0CamtaCNCBN7-PAOH8jbGNblD77M2ocXVi-YJ_J8xhxRftfJ_fjI/sample1.jpg" width=484 height=178 mce_src="https://ddbeog.bay.livefilestore.com/y1pBYAJcUTPayKz3rma4lhUCf-iZ1XwH4w7Kzka5K5QlmiX0CamtaCNCBN7-PAOH8jbGNblD77M2ocXVi-YJ_J8xhxRftfJ_fjI/sample1.jpg"></A>&nbsp;&nbsp;<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;<BR>&nbsp; 以下のようなWPFアプリケーションになっているので、とりあえずタイトルのみ変更して<BR>&nbsp;&nbsp;<BR><IMG style="WIDTH: 705px; HEIGHT: 508px" src="https://public.bay.livefilestore.com/y1pAKwzfBJLfPDFjHVrNDXk0M67Dp28rk-c1cjbUqsPU9dwJ3OQBFbOrMgI_24oGif_D7yTys9TAt2HjgyV-Q5mjw/sample2.jpg" width=705 height=508 mce_src="https://public.bay.livefilestore.com/y1pAKwzfBJLfPDFjHVrNDXk0M67Dp28rk-c1cjbUqsPU9dwJ3OQBFbOrMgI_24oGif_D7yTys9TAt2HjgyV-Q5mjw/sample2.jpg">&nbsp; </P>
<P><BR>&nbsp; 実行してみると、確かに変更が反映されて実行できていることが確認できます。<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;<IMG style="WIDTH: 650px; HEIGHT: 364px" src="https://public.bay.livefilestore.com/y1pKgzNLAgAnyuJR8pUCbhoOrYzfDkd_nVBSS2sLPuq2m7q-m82-IxOPvueas08NfLF8YziYpTKHPYi1D_qsuZRWA/sample3.jpg" width=650 height=364 mce_src="https://public.bay.livefilestore.com/y1pKgzNLAgAnyuJR8pUCbhoOrYzfDkd_nVBSS2sLPuq2m7q-m82-IxOPvueas08NfLF8YziYpTKHPYi1D_qsuZRWA/sample3.jpg"><BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;<BR>&nbsp; サンプルをお使いいただくと、より早くVisual Studio 2010 や .NET Framework4 の新機能などおよびその使い方などをご理解いただけると思います。<BR>&nbsp; ぜひご活用ください。<BR></P>]]></content:encoded>
    </item>
  </channel>
</rss>