ベテランに学ぶ開発技術情報の活かし方
昨年10月にリニューアルしたマイクロソフトの開発者向け技術情報サイト「MSDNオンライン」。日々の開発業務で役立つ情報が満載のサイトですが、「逆に情報が多すぎてどう読んだらよいか分からない」「検索エンジン経由でAPIのライブラリをたまに読む程度」といった方も多いのではないでしょうか。しかし、これだけボリュームのある技術情報を活用しない手はないはず。
そこで、勉強会やブログなどで積極的な情報交換を行なっている開発者コミュニティ「わんくま同盟」の有志にご協力いただき、ユーザー視点で、実務で役立つMSDNオンラインの活用テクニックを公募しました。その中から厳選した8つのテクニックを紹介します。
- Windows Azureを最短でマスターしたい
- Windows 7アプリに移行するには、どこを押さえておけばよい?
- 開発でつまづいた! でも身近に聞ける人がいない
- 環境構築の手間なく開発製品を評価・学習するスゴ技
- Windows phoneアプリを開発したい
- MSDNライブラリのもっと上手な使い方ってないの?
- せっかく調べた開発ノウハウなので、みんなと共有したい
- 旧バージョンのクラスライブラリを確認したい
末尾に付録としてMSDN担当者お薦めの見所も紹介しているので、ぜひ気に入ったコンテンツを使い倒し、開発スキルの向上、日々の業務の効率化にお役立てください。
Windows Azureを最短でマスターしたい
投稿者:割と普通 氏(waりとnaはてな日記)
2010年2月にWindows Azureの商用課金がスタートし、.NET環境でもクラウドコンピューティングが身近になってきました。以前は、Windows Azureを学習するための日本語コンテンツが不足していましたが、最近はMSDNにも日本語コンテンツが充実してきています。しかし、それらの良いコンテンツがあるにも関わらず、学習や情報のキャッチアップに活用していることが少ないように見受けられます。
そこで今回は、MSDNを通してWindows Azure初学者が一連の技術を習得し、Windows Azure最新情報のキャッチアップまで行えるようになるガイドラインを紹介します。
Windows Azureを学ぶ
MSDNオンライン内でお勧めできるコンテンツはいくつかありますが、以下の流れでコンテンツを通読することで、Windows Azureの基礎的な開発手法を学習できます。
- MSDN日本語サイト>Windows Azure Platformデベロッパーセンター>ラーニング > チュートリアル
- MSDN日本語サイト>Windows Azure Platformデベロッパーセンター>ラーニング > サンプルコード集 >サンプル コード集 C#
- MSDN英語サイト>(Windows Azure Platform )TrainingKit
- MSDN英語サイト>(Windows Azure)Code Gallery
Windows Azure初学者向けの情報を分かりやすく紹介しています。Windows Azureを学習する際に、最初に通読したい内容です。
WebロールやWorkerロールを用いたサービス開発、ブロブストレージの利用法についての記事が公開されています(2010年2月14日現在)。サンプルコードを提示するだけでなく、Visual Studioの使用手順を含めたアプリケーション動作確認手順まで学習できます。
TrainingKitに含まれているサンプルコードは、HelloWorldやストレージサービスの操作といった基礎的なものだけでなく、SQL Azure、Windows Azure Platform AppFabric、Dallasまでのサンプルコードを含んでいます。TrainingKitに含まれるコンテンツを一通り読破できれば、Windows Azure中級者を名乗れると思います。
Code Galleryを利用して、MSDNに登録されたコードサンプルをダウンロードできます。Windows Azureストレージアカウントのデータを操作できる「Windows Azure Management Tool(MMC)」や、Azureから出力されるIISログを取得するコマンドラインツール「Azure Log Fetcher」などが登録されています。新しいコードサンプルの登録や、登録されたコードサンプルのバージョンアップが行われることがあるので、定期的なチェックをお勧めします。
Windows Azure最新情報をキャッチアップする
Windows Azureについての基礎学習後は、Windows Azureを活用するために最新情報を継続的にキャッチアップしておくとよいでしょう。新しいWindows Azureの情報を公開している日本語サイトは、Windows Azureエバンジェリストである砂金氏のブログ「Azureの鼓動」が有名です。しかし、さらに最新の情報をキャッチアップするためには、開発チームブログ(英語)のRSSを購読することをオススメします。
- Windows Azure チームのブログ
- Windows Azure Platform AppFabric チームのブログ
- SQL Azure チームのブログ
- クラウド コンピューティング ツール チームのブログ
残念ながら英語版のサイトしか存在しませんが、不具合情報やハマリどころのTIPSなどの検索にはMSDNフォーラムサイトも活用できます。情報量が多く活発に議論されているので、「英語は苦手」と言わず、困ったときにはフォーラムサイト内をキーワード検索すると解決方法が見つかるかもしれません。
Windows 7アプリに移行するには、どこを押さえておけばよい?
投稿者:とっちゃん氏(とっちゃん's Blog)
みなさん、Windows 7はもう使っていますか? まだ、開発もターゲットもWindows XPという方も少なくないかもしれませんが、時代は着実に変わりつつあります。
Windows Vista(Windows Server 2008)とWindows 7(Windows Server 2008 R2)は、Windows XP(Windows Server 2003/2003 R2)以前のバージョンと比べると随所にさまざまな違いがあります。
まず、もっとも大きなものが「UAC(User Account Contorol)」と呼ばれる実行アカウントに強い権限を最初から与えないという仕組み。Windows XPまでのソフトが最も大きなダメージを受けるといわれる「Virtual Store」など。ざっと数えても片手ではきかないくらい、さまざまな機能が拡張されています。
さて、それらOSのバージョンによる違いはどこかでまとまって公開されていないのでしょうか? 残念ながらつい先日リニューアルされたばかりのWindowsデベロッパーセンターでも全部を網羅的にまとめたページは用意されていませんでした。
ですが、悲観することはありません。実はOSのバージョンによる違いの情報は、Windows XPからWindows Vista、Windows VistaからWindows 7の2か所に分離しているだけです。しかも、Windows VistaからWindows 7への変化は実質的にはほとんどなく、見た目が少し変わったこと(タスクバーなど)や、一部のAPI拡張(Windows 7形式リボンやタッチなど)、わずらわしいUACの表示方法がゆるくなった(黒くなるタイミングが1/10以下になったとも言われていますが)程度です。プログラム的に対応が必要となる個所は、「Windows 7にも対応しているよ」という互換性マークを付けるだけという、たった1行で解説できてしまう程度のものしかありません。
もちろん、それ以外にクリアしなければならない課題はありますが、すべてWindows Vistaの互換性情報として「Windows VistaおよびWindows Server 2008アプリケーション互換性解説書」ページにまとめられています。
まずはこの互換性解説書ページを読み、Windows XPからは何が変わって何が変わっていないのかをチェックするところから初めてみてはいかがでしょうか。
開発でつまづいた! でも身近に聞ける人がいない
投稿者:中 博俊 氏(中の技術日誌ブログ)
Microsoftは主に開発者向けの掲示板としてMSDNフォーラムを開設しています。例えば次のようなフォーラムがあります。
MSDNフォーラムでは、開発言語や製品ごとに情報交換をすることができます。.NET系書籍の執筆者やMicrosoft MVPの受賞者も頻繁に回答しているため、スピーディーに適切な回答を得やすいのが特長です。質問をするのは簡単。
- 質問するをクリックする。
- 質問投稿画面が出てくるので、タイトルと本文、タグを入力します。
タイトルは分かりやすく本文の抜粋を書き、本文には開発環境や、試している事柄などを書きます。ここでこのような掲示板などへの投稿のポイントをお教えしましょう。
質問時に押さえておきたいポイント
質問する人は当然、動作環境や各種設定、試した内容などさまざまな情報を知っていますが、回答者は質問文に書かれていない内容を読み取ることはできません。特に初心者の多くは、単純に「○○が分からない」という文脈を無視した質問をしがちです。
早く回答をもらいたいのであれば、回答してくれる人にできる限りの情報を最初に提供してしまいましょう。例えば次の項目などが考えられます。
- Visual Studioのバージョン(SPも含め)
- 言語(C#、VBなど)
- ソフトの環境(ASP.NETか、WindowsFormsか、WPFかなど)
- 参考にしたWebサイトのURL
- 試したこと
そして一番大事な事柄は、こうなって欲しいのにこう動くという、希望動作と、現実の動作です。これらが書かれているだけで回答してもらえる確率がぐっとアップすると思いますよ。
Visual Studio 2010もそろそろ出てきますし、皆さんもMSDNフォーラムを活用してみてください。
環境構築の手間なく開発製品を評価・学習するスゴ技
投稿者:oden氏(おでんをつつく会(仮))/ちゅき氏(PCだいちゅき)
「MSDNバーチャルラボ」は、リモートデスクトップ形式で実機検証できる無償のオンラインサービスです。手元の環境を改変せずにマイクロソフトの開発者向け製品を評価、習得できるため、環境構築の手間やライセンスフィーなどを考えると、費用対効果の非常に高いサービスと言えます。
また、MSDNバーチャルラボの価値は評価検証だけにとどまりません。トレーニングマニュアルがついているため、既に環境が整っている方にとっても、ハンズオン形式で効率よく製品機能を試すのに役立つことでしょう。各トレーニングは特定機能を最大90分間で実習できるように設計されているため、短期間で効果的な製品機能の体験が可能です。
公式の動作環境にはWindows XP、2000、2003と記載されていますが、筆者の手元のWindows VistaとWindows 7(どちらも64bit版)でも動作を確認しています。ブラウザはIE6以上で、CookieとActiveXを有効にしておく必要があります。また、Windows Live IDも必要です。
MSDNバーチャルラボでは、次の製品やテクノロジのハンズオンが提供されています。Windows 7も当然含まれています。
- Visual Studio 2008
- Visual Studio 2005
- .NET Framework 3.0
- Windows 7
- Windows Vista
- 2007 Office system
- SharePoint Server 2007
- SQL Server 2005
- Internet Information Services
これは日本語版の内容ですが、英語版ではExpression Studio、.NET Framework 4といった最新の環境や、Windows Live、Azure Services Platformといったオンラインサービスの活用法までも体験することが可能です。操作方法はこれから紹介する日本語版と大差がないので、興味がある方はぜひ英語版もお試しください。
なお、マイクロソフトの開発者向け以外の製品は、TechNetバーチャルラボをご利用いただくとよいでしょう。
バーチャルラボの利用手順
- IEで「MSDNバーチャルラボ」にアクセスします。MSDNオンラインのナビゲーションからアクセスする場合は、上部の[ラーニング]をクリックし、[バーチャルラボ]を選択します。
- [製品とテクノロジ別バーチャルラボ]から評価・習得したい製品やテクノロジを選択します。ここでは[Visual Studio 2008]を選択したものとして進めますので、名称は適宜読み替えてください。
- [Microsoft Visual Studio 2008を無料体験]から目的のバーチャルラボを選択します。ここでは[Visual Studio 2008 Professional Edition で行う単体テスト]を選択したものとします。
- [イベントの登録]ボタンをクリックして、続いて表示されるページで[登録]ボタンをクリックします。ここでWindows Liveにログインしていない場合はログイン画面が表示され、初めてバーチャルラボを利用するLive IDではアンケート目的の個人情報入力フォームが表示されるので指示通りに進めます。オンデマンドWebcastイベントの開始画面が表示されるので、画面に表示されるEnterキーをクリックしてください。
- バーチャルラボの開始画面に移り、しばらく待つと[バーチャルラボを開始]ボタンが表示されるので、これをクリックしてください。初めて利用する場合は[NTLM Authentication]ウィンドウが表示されるので、[Don’t ask me again]チェックボックスにチェックを入れて[Yes]ボタンをクリックしてください。すると、バーチャルラボの仮想環境上のデスクトップ画面がブラウザ上に表示されます。
- ブラウザの右側に[ラボマニュアル]へのリンクが張られていますので、そちらを参考にバーチャルラボを試してください。
バーチャルラボの中断と再開、終了
利用時間が90分を過ぎると自動的に終了しますが、ウィンドウ右側の[バーチャルラボの終了]を選択し、明示的に終了することも可能です。1つのLive IDで同時に複数のバーチャルラボを利用することはできません。別のバーチャルラボを利用したい場合は明示的に終了するようにしてください。また、操作途中で誤ってブラウザを閉じてしまった場合でも、イベントの登録時にLive IDのメールアドレスへ再開用のアドレスが送られていますので、そちらから再開できます。
実務での使いどころ
MSDNバーチャルラボのコンテンツは、移行計画や作業手順の標準化の作成時に非常に有効であると感じています。バーチャルラボを取り入れた移行計画や作業手順の標準化資料は、読み手が実際に手を動かしながら理解できるため、ホワイトペーパーやガイドライン記事、動画を併記するだけの資料と比べ、理解度の高い資料と感じられました。
また、これらのMSDNバーチャルラボのコンテンツ群は、RSSで最新情報の一覧を得ることができます。筆者はRSSの最新一覧では他の頻度の高いコンテンツに埋もれがちであるため、MSDN Flashニュースレターのチェックと併用しています。
Windows phoneアプリを開発したい
投稿者:和田 健司氏(酢ろぐ(ch3cooh.jp))
Windows phoneのバージョン6.5から新しく指タッチ操作を認識するGesture機能が搭載されました。Gesture機能の他にも無線LANやBluetooth、赤外線、LED、バイブレーション、加速度センサ、地磁気センサ、GPSなどが搭載され、魅力的なデバイスになっています。
しかし、残念ながら.NET Compact Frameworkの標準ライブラリ群を使った開発では、Windows phoneの力を100%引き出すことができません。P/Invokeを使用しネイティブ関数を駆使して初めてデバイスのすべての機能を扱うことができます。
せっかく.NETを使ってコーディングするのに、ネイティブ関数を網羅する必要があるのは少し大変ですよね。Windows phoneアプリケーション開発の書籍は、国内で発刊されている数も少なく情報が乏しい状態です。
そのような状況で、デバイスを使うアプリケーションを開発する際に、一番参考になる日本語サイトが「MSDNライブラリ」と「MSDNマガジン」です。
Windows phoneに関する開発Tipsの探し方
さて本題です。Googleなどの検索エンジンを利用すると、すぐに使えるコードを発見することができます。例えば赤外線に関するサンプルコードを探したい場合、下記のように検索します。
site:msdn.microsoft.com/ja-jp/ "Windows Mobile" 赤外線
赤外線通信のエンドポイントの説明が書かれた IrDAEndPointクラスについてのリファレンスの解説から「方法 : 赤外線ファイル転送を行う」にたどり着くことができます。あとはコピー&ペーストで自分のアプリケーションに取り込めば、赤外線通信の対応は完了です。
一方、MSDNマガジンの記事は、単なるリファレンスより実践的な内容が含まれていますので重宝すると思います。
site:msdn.microsoft.com/ja-jp/magazine/ "Windows Mobile"
MSDNマガジンでお勧めの記事は、加速度センサを使って音楽を操作する「シェイクとスキップで音楽を操作する」と、Bluetoothとレゴブロックを使ってロボットを操作する「いろいろな場所へ : ロボットが教えてくれること」です。両方ともデバイスの性能を駆使したサンプルコードが掲載されています。
目的のドキュメントが見当たらない場合は
デスクトップ版の.NET Frameworkの情報は個人のブログでも参考になるものが多いのですが、Windows phoneアプリケーション開発の場合は1次ソースであるMSDNを見る方が手っ取り早いケースが多々あります。
MSDNライブラリとMSDNマガジンで分からない点があれば、MSDNフォーラムで質問をしてみてください。Windows phone開発に長けたベテランの方々からの回答をいただくことができます。ただ端末固有の問題の場合は、守秘義務などから回答が貰えない場合があります。そういう時は端末メーカー様に質問するのが良さそうです。
それでは、楽しいWindows phoneアプリケーション開発を体験してください。
MSDNライブラリのもっと上手な使い方ってないの?
投稿者:えムナウ氏(えムナウのプログラミングのページ/.Net ユーザーエクスペリエンス研究所)
筆者のMSDNライブラリの使いこなしポイントを3つの切り口で紹介します。
1. 開発技術の全体像を把握
MSDNライブラリには、開発技術を体系だてて解説したページがあります。通常の開発業務では、クラスの使い方など細かい部分の調査が多くなりがちかと思いますが、少し暇になった時などに読んでおくと、開発技術の全体像がつかめて便利です。例えば、次のようなものがあります。
2. 開発に役立つチートシート
MSDNライブラリには、開発で必要な情報が表形式でまとめられているページがあります。これらを普段から見つけておいてお気に入りに入れておくと、いざという時に便利です。筆者のお気に入りを一部紹介します。
開発技術間の互換性情報
Silverlight
C#の型の最大値・規定値情報
3. クラスライブラリの比較
MSDNライブラリには、.NET Frameworkのクラスライブラリリファレンスがあります。このトップページには名前空間の一覧表が載っているため、例えばExcelにコピー&ペーストして比較することで、.NET Frameworkのバージョンごとの違いが分かり、差分の名前空間を集中して調べれば、有名ではない新技術もチェックすることもできます。
せっかく調べた開発ノウハウなので、みんなと共有したい
投稿者:biac氏(biac の それさえもおそらくは幸せな日々@nifty)
クラシックモードの「MSDNライブラリ」では、ページ上部のバーに[コンテンツの追加...]というリンクが表示されていることがあります(表示が[コミュニティコンテンツ]の場合もあり)。それに気付いたらクリックしてみてください。すると、ページの一番下にジャンプし、MSDNコミュニティコンテンツが表示されます(注1)。
[コンテンツの追加]リンクをクリックして投稿する場合は、MSDNコミュニティコンテンツの概要や、ユーザーエイリアスの入力、投稿規定への同意を確認する画面が表示されます。
「MSDNコミュニティコンテンツ」は、開発者がそのトピックスに関連する追加情報を共同執筆できるスペースです。コードサンプルや関連項目へのリンクを投稿することができます(ただし、バク報告や質問の場ではないことが明記されています)。クラシックモードでしかコンテンツを投稿できませんが、コンテンツそのものはどのモードでも最下部に表示されます。
MSDNコミュニティコンテンツは宝箱です。誰かがハマって苦労して調べて分かったことや、いろいろ試してみて動くようになったサンプルコードなど、本文にはない貴重な情報が載っていますので、見逃す手はありません。更新情報はRSSフィードで提供されているので、RSSリーダーを使えば最新コンテンツのチェックも容易です。全体の更新情報は「http://msdn.microsoft.com/ja-jp/library/community-edits.rss」で取得できます。
さて、このように実装に大変有益なMSDNコミュニティコンテンツですが、誰が書くのでしょうか? それは、あなたです。残念ながら登録されているコンテンツの数は少なく、検索エンジンで検索したところ、日本では300件に届いていないようでした(msdn.microsoft.comを「MSDNコミュニティコンテンツ」「最終編集者」で検索した結果)。
補足情報、誤った記述の指摘、役立つサンプルコードなど、他の閲覧者にも有益な情報があれば、積極的に書き込んで情報共有しましょう。他人の書いたコンテンツを編集することもできます。詳しいルールは「MSDNコミュニティコンテンツFAQ」と「MSDNコミュニティコンテンツ--利用規約」を参照してください。
なお、ライブラリの誤りについてはMSDNフォーラムの「VisualStudioドキュメントフィードバック」に、.NET FrameworkやVisual Studioの不具合はMicrosoft Connectの「Visual Studio & .NET Framework Japan」にも報告するようにしましょう。マイクロソフトにいち早く確実に情報を伝えることができます。
旧バージョンのクラスライブラリを確認したい
投稿者:中 博俊 氏(中の技術日誌ブログ)
みなさんはMSDNライブラリのオンライン版を活用していますか? MSDNライブラリは、昔は各バージョン共通だったんですが、今はVisual Studioのバージョンにより分岐されています。
.NET Frameworkクラスライブラリのトップページは、実際には次のように分かれています。
http://msdn.microsoft.com/ja-jp/library/ms229335.aspx http://msdn.microsoft.com/ja-jp/library/ms229335(VS.80).aspx http://msdn.microsoft.com/ja-jp/library/ms229335(VS.90).aspx http://msdn.microsoft.com/ja-jp/library/ms229335(VS.100).aspx
本稿執筆時点ではVisual Studio 2008が現役ですので、(VS.90)などがない場合にはVS.90が表示されるようになっていますが、Visual Studio 2010が発売される頃にはVS.100に変更されるのではないかなと思われます。ちなみにVisual Studioのバージョン名の対応は
- Visual Studio 2002:Ver7.0
- Visual Studio 2003:Ver7.1
- Visual Studio 2005:Ver8.0
- Visual Studio 2008:Ver9.0
- Visual Studio 2010:Ver10.0
となっています。
またこのurlの中にja-jpと言う文言がありますが、これja(日本語)-jp(日本国)という意味のロケールを意味します。ということは、これをアメリカのen-usに変更したらアメリカのMSDNがそのまま見られるのではないかと思いませんか?
http://msdn.microsoft.com/en-us/library/ms229335.aspx
その通りUSのサイトが表示されます。
一時期まではURL構造がUSとJAで違っていたのですが、最近は一本化されましたので、この記事はUSではどうなっているかを確認するのが非常に簡単になっています。
ちなみにMSDNライブラリのトップコンテンツの種類が日本では10なのに対し、アメリカでは12になっており、残念ながら翻訳されていない記事も多々ある状況です。日本語のMSDNライブラリだけでなく、英語の方のコンテンツも併せて見てみるとよいでしょう。
付録:その他の主なMSDNオンラインの見所
MSDNオンラインでは、今回紹介したもの以外にも有益なコンテンツが豊富に提供されています。最後に、マイクロソフトのMSDN担当者に聞いた見所も併せてご紹介します。
- コンテンツ利用ガイド
- Code Recipe
- MSDN検索術
- MSDN Subscription ~ クラウド開発者も強力に支援します
- マイクロソフト勉強会キット
- Windowsデベロッパーセンター
MSDNオンライン上のコンテンツを「情報別」「開発ステップ別」「サービス一覧」の3つの切り口で紹介したページです。さらにMSDNを活用するためのナビゲーションとして活用するとよいでしょう。
サンプル コードを中心とした開発者のためのサイトです。すぐに使えるサンプル コードから学習用として使える解説付きサンプル コードを多数提供しています。その他、知っていると得する開発に関するヒントやテクニックも紹介しています。今後3年で2,000サンプルの提供を目標に挙げています。
問題を解決しようと検索エンジンを使っても、「解決方法が見つからない」「検索の結果が多すぎて面倒」などと感じたことはないでしょうか。ここでは、サンプルコードの探し方やエラーコードの解決方法など、実際のシナリオを例に5つのテクニックを解説しています。実務に役立つテクニック集「検索術」もPDF/XPS形式で無料ダウンロード提供されています。
MSDN Subscriptionは、ソフトウェア開発に必要なOS、サーバーなどの各種ソフトウェアの提供によって、包括的にソフトウェア開発をサポートするサービスです。クラウドコンピューティングプラットフォームである「Windows Azure」の無償利用分の提供も新たに開始されました。
マイクロソフトの製品やテクノロジーに関するプレゼンテーション資料や技術情報など、勉強会に役立つ内容をキットとしてまとめてダウンロード提供しています。
これからWindows 7の開発を始める方に向けて「開発スタートガイド」をダウンロード提供しています。また、必要な情報にたどりつきやすいよう 「Windowsデベロッパーセンターの歩き方」も公開しています。