共用方式為


Windows API Code Pack の過去、現在、そして未来

みなさん、こんにちは。Windows 開発統括部の古内です。

さて、今日は 2010 年 4 月 27 日に Developing for Windows Blog に投稿された 「Windows API Code Pack – Past, Present, and Future」 の翻訳をお届けします。.NET Framework を使用したアプリケーションから Windows の機能を簡単に呼び出せるようにするためのソースコード ライブラリである Windows API Code Pack の歴史を学ぶことができます。

なお、文中で触れられている最新の Windows API Code Pack 1.1 は、こちらからダウンロードできます。


Windows API Code Pack – 過去、現在、未来

私が Windows API Code Pack について記事を書くのはこれが初めてではありませんし、これが最後でもないでしょう。ただし、今回の記事は、.NET Framework を使用して Windows アプリケーションを開発しているすべての Windows 開発者のために書きました。すなわち、皆さんに宛てた記事です。 Windows API Code Pack は将来のリリースに向けて準備中です。皆さんからのフィードバックをお待ちしています。API Code Pack は今でも使えるのだろうかとご心配の方、もちろん、現役で利用可能ですよ!

背景情報

.NET Framework 上での Windows 開発を対象とした "公式の" マネージ API が存在するとしたら、Windows API Code Pack はそれに最も近いものでしょう。Windows API Code Pack は無償のマネージ ソース コード ライブラリであり、マイクロソフトから現状有姿で提供されています。このライブラリは、自分で書いたコードと同じように利用できます。Windows API Code Pack は、マネージ コードで Windows アプリケーションを作成する開発者がアプリケーションをより洗練させるための足がかりとして、非常に堅牢なソリューションを提供します。また、Windows Vista から継続されたいくつかの基本 (コア) 機能に加えて、Windows 7 の数多くの新機能にも対応しています。

Windows API Code Pack はかつて、Windows Vista Bridge (または単に "Bridge") と呼ばれていました。マイクロソフトは、Windows Vista および .NET Framework 3.0 のリリース後に Windows Vista Bridge の開発に着手しました。.NET Framework 3.0 では、Windows Shell を含むいくつかの Win32 API がサポートされていなかったため、マネージ コード開発者は、Windows のパワーを完全には活用しにくい状況に置かれていました。これを受けて、Code Pack チームは、マネージ コード開発者がこのギャップを乗り越え、検索、再起動と回復、グラス、電源管理といった Windows の便利な機能にアクセスできるようにするための "ブリッジ" の構築に取りかかったのです。この取り組みの成果が、Windows Vista Bridge サンプル ライブラリ (英語) です。

Windows Vista Bridge を更新するにあたり、私たちは従来の名称が新しいライブラリにふさわしくないことに気づきました。このライブラリはもはや特定の Windows リリースと結び付くものではありません。そうした観点から、Windows API Code Pack for Microsoft .NET Framework という、やや冗長ながら内容を正確に表す名称が採用されました。Vista のリリースに出荷された Vista Bridge と異なり、Windows API Code Pack のアルファ版 (バージョン 0.8) は、Windows 7 の出荷よりも 6 ヶ月の 2009 年 4 月 20 日にリリースされました。初期バージョンをリリースすることで、開発者からフィードバックを募り、機能リストを更新し、より多くのバグを発見する機会が得られました。また、このリリースにより、Windows 7 対応のマネージ コードが初めて現実のものとなりました。それまで、 .NET Framework (3.5) は Windows 7 の機能を全くサポートしていなかったからです。

Windows API Code Pack バージョン 1.0.1

最初のアルファ版 0.8 のリリースから 1 年が経過し、その間、さらに 3 つのバージョンがリリースされました。現在のバージョンである 1.0.1 は、2009 年 11 月 18 日にリリースされ、Windows を取り扱うすべてのマネージ コード開発者が利用できる数多くの便利な機能をサポートしています。完全なタスク バー統合、拡張された Windows Shell およびライブラリ、DirectX 11、センサー、その他多くの機能がこれに含まれます。

Windows API Code Pack のダウンロード数は、リリースから現在までで 67,000 回を突破しました。また、Windows 7 Training Kit for DevelopersFlashcards.ShowImages.Show などの関連プロジェクトについても、ほぼ同数のダウンロードが記録されています。これらは、Windows API Code Pack DLL を使用する、または Windows API Code Pack のコードを含むプロジェクトです。この場を借りて、Windows API Code Pack をダウンロードしてくださった皆様にお礼を申し上げたいと思います。ありがとうございました!

Windows API Code Pack バージョン 1.X

Windows API Code Pack の進化はまだまだ続きます。バグ フィックス、大規模なコードのクリーンアップと標準化、いくつかの新機能などを導入した新しいバージョンが、数週間あるいは数か月以内にリリースされる予定です。

Code Pack チームは、既存のコード ベースに大幅な手直しを加えました。マイクロソフトの開発プロセスに従って、Visual Studio FxCop の分析結果、新しい名前付け規則への準拠、パフォーマンスの向上、アップグレードなど、さまざまな尺度からオリジナルのコードが再検討された結果、よりクリーンで凝集度の高いベースラインが生まれました。このベースライン コードは、マイクロソフト内部で将来のリリースの基盤として利用されるとともに、開発者の皆さんからも高く評価されるだろうと確信しています。

また、主要なすべてのプロジェクト (DLL) に対する自動テストも追加されました。Windows API Code Pack に自動テストが搭載されることで、マイクロソフト内部の開発プロセスが効率化されます。さらに、皆さんが Code Pack をカスタマイズした際に何らかの破損が生じると、テスト中にアラートを受け取れるようになります。Windows API Code Pack では、xUnit と呼ばれるテスト フレームワークを使用しています。Visual Studio (VS) の単体テストではなく xUnit を選んだ理由は、単体テストが、VS の無償バージョンである Express に含まれていないためです。これにより対象ユーザーが限定されることは望ましくありませんでした。

こうしたコード変更の結果、導入された新機能の数は多くありません。しかし、その代わりに、今後の開発の基礎となる、従来よりはるかに強固で、保守とデバッグが容易なコード ベースが誕生しました。私たちは、数週間以内に出荷予定の次期リリース用に、いくつかの新機能の開発を進めています。

もちろん、ここからが皆さんの出番です。Code Pack に追加したい機能がある方、特定の Win32 API をラップしたいとお考えの方、もしくは、何らかのフィードバックをお送りになりたい方、今がチャンスです。Windows API Code Pack. に関する開発者サイトの Discussions (英語) または Issue Tracker (英語) からフィードバックやバグを提出してください。

私たちは、Windows Shell (特に、Shell 統合、ファイル ハンドラーとプロパティのサポート、ライブラリ、検索とインデックスなどの分野) のサポート向上には格別の関心を寄せています。また、Windows に関連したソーシャル API と Web API の追加、および Windows サービス、タスク スケジュール、電源管理に関する基本 API のさらなる充実についても検討しています。その他にも、アイデアやフィードバックがありましたら、ぜひお聞かせください。