昨年10月 .NET Framework ライブラリのソースコードをリリースすること、そしてVisual Studio 2008でそのデバッグサポートができるようにする計画があることをブログ投稿しました。これが現在どなたでもお使い頂ける様になったことを告知できうれしく思っております。具体的には、次の .NET Framework ライブラリへのソースコードを現在参照およびデバッグすることができます。:
- .NET ベースクラスライブラリ(System、System.CodeDom、System.Collections、System.ComponentModel、 System.Diagnostics、System.Drawing、System.Globalization、System.IO, System.Net、System.Reflection、System.Runtime、System.Security、System.Text、System.Threadingなどを含む)
- ASP.NET (System.Web, System.Web.Extensions)
- Windows フォーム(System.Windows.Forms)
- Windows Presentation Foundation (System.Windows)
- ADO.NET および XML (System.Data and System.Xml)
上記リストにさらにフレームワークライブラリ(LINQ、WCF、ワークフローを含む)を追加しようとしています。今後それらが利用可能になった際に詳細をブログでお知らせいたします。
Visual Studio 2008で参照ソースへのアクセスを利用可能に
Visual Studio 2008で.NET Framework ソースアクセスするセットアップには数分程度しかかかりません。Shawn Burke が、ここでより深くこれを有効にする方法の詳細な手順を述べた ブログ投稿 を行っています。
もし問題にぶつかったり、セットアップについてご質問がございましたら、ここのMSDN にある参照ソースフォーラム でお問い合わせください。
.NET Framework ライブラリソースへのステップイン
上記のShawnのブログにある構成手順に従っていくと、.NET Frameworkライブラリに対するデバッグシンボルを動的にロードし、ソースコードにステップインすることができます。VS 2008はフレームワークコードを通じてデバッグすると、MSDNリファレンスサーバからオンデマンドでシンボルおよびソースファイルの両方をダウンロードします。
:
デベロッパーのコメントはソースファイルに含まれています。上記でControlベースクラスに対するDisposeメソッドの一例を確認することができます。
時々コメントの中に弊社のバグ・ワークアイテムトラッキングデータベースの過去のバグ・トラッキング番号が参照されており、特定のコード決断についての追加履歴が提供されています。例えば、上記のコメントは、特定のフィールドは古いフレームワークのリリースとの下位互換を保持するためにNullにしておくべきではないことを述べており、そのために修正された下位互換バグであることを示しています。
リファレンスライセンス
.NET Frameworkソースは読み取り専用のリファレンスライセンスの下リリースされています。10月にソースをリリースすることを告知した際、ソースを見ることの潜在的影響について心配されている方々がいらっしゃいました。この問題を明らかにして対応するために、ライセンスを少し変更し、.NET Frameworkと同じまたは実質的に同じ特徴を持つWindowsプラットフォーム以外に対するソフトウェアを開発されているユーザには適用されないライセンスであることを明記しました。開発されているソフトウェアがWindwosプラットフォームに対するものでしたら、コードを見ていただくことは可能で、例えそのソフトウェアが.NET Frameworkと"同じまた実質的に同じ特徴もしくは機能"を持っていた場合でも可能です。
まとめ
私たちは、ソースコードへのアクセスや.NET Frameworkライブラリのデバッガー統合を有効にすることは、.NET デベロッパーにとって非常に有用であると考えています。ソースの順をおって、レビューすることができると、.NET Frameworkライブラリがどのように実装されているのかについてより良い洞察が行え、その結果より良いアプリケーションを構築でき、より良くそれらを利用することができるようになるはずです。
Hope this helps,
Scott