API を廃止する

ビューの切り替え:
スクリプトなし
API を廃止する

 

このドキュメントでは、.NET Framework の API を廃止するプロセスについて詳しく説明します。本書は、API を非推奨とするフレームワークのアプローチに関する問い合わせや懸案事項に回答することを目的としています。ここで説明されていない事項に関する問題点やお問い合わせは、dncompat@microsoft.com まで英語でご連絡ください。

本書では、Visual Studio デザイナの要素、言語固有の要素、コンパイラ関連の要素を廃止するプロセスについては説明しません。

-API が廃止されるとどうなりますか。

API が廃止されると、使用者はその API についてサポートを受けられなくなるため、その API を使用しないでください。一般に、廃止予定の API は最終的には削除されます。その結果、その API と依存関係のある API もすべて削除されることになります。

-廃止予定と非推奨に違いはありますか。

本書では、"廃止予定" とは API を破棄するプロセス全体を指します。"非推奨" とは、具体的にその API に ObsoleteAttribute (警告またはエラー) を設定する行為を指します。

-マイクロソフトが API を廃止する理由を教えてください。

新しいテクノロジやソリューションが利用できるようになると、既存のソリューションが存在意義を失ったり、ソリューションの最適なアプローチが進化したりします。このような状況では、現行のソリューションが廃棄されるか、いずれ廃止されることになります。古いメカニズムが単に適切ではなくなるという理由で、該当する API は廃止予定に設定され、最終的には削除されることが示されます。API の使用者にこの状況が周知されれば、適切な対応策を講じることができます。

-使用していた API が廃止予定になり、警告を受けました。この後どうなりますか。

API を廃止するプロセスは、時間をかけて段階的に行います。API を廃止予定警告 (obsolete-as-warning) 状態に設定してから、廃止予定エラー (obsolete-as-error) に設定するまでは、完全リリースを行います。この時点で、その API を使用して再コンパイルを試みると失敗します。非推奨エラー (deprecation-as-error) に設定した API は、リリースにサービスを提供している期間ではなく、標準リリース期間内のみ実行できます。

このような状態の API を使用できる期間はそのリリースにサービスを提供しているライフサイクル内で、最も短いリリースでも、通常は 7 年間です。この期間が過ぎると、その API を削除します。この時点で、アプリケーションをその API を含むバージョンのライブラリにバインドしたり、使用すると失敗します。

-廃止予定警告 (obsolete-as-warning) と廃止予定エラー (obsolete-as-error) の違いを教えてください。

廃止予定警告中に廃止予定の API を呼び出すアプリケーションのコンパイルを試みると、コンパイル時に警告が生成されます。依然としてコンパイルすることはできますが、廃止予定であることを示すフィードバックを受け取ります。

廃止予定エラー中に廃止予定の API を呼び出すアプリケーションのコンパイルを試みると、エラーが生成され、コンパイルできません。そのエラーに関して廃止予定を示すメッセージが表示されます。

-API が非推奨に設定されているとき、その API を使用していても機能しますか。

機能します。ObsoleteAttribute が設定されている API は、依然としてフレームワーク内で使用できます。その API を使用するコンパイル済みのアプリケーションは完全に機能します。

-廃止予定の API の一覧を入手できますか。

入手できます。参照用のページを 1 ページ作成し、廃止予定を示すメッセージからそのページを参照先として示す予定です。参照用ページは、廃止予定のすべての API についての概要から構成されます。この一覧を廃止予定の API に関するユーザーとの公式通信手段として適切な場所に公開し、完全なサポートを提供する予定です。

-廃止予定の API に関する詳細情報が必要な場合の手段はありますか。

廃止予定の API に関する参照ドキュメントには、上記の一覧以外に追加のコメントや説明文を用意します。こうした情報にはサービス期間が満了する日付も含める予定で、その API が使用できなくなる時期を合理的に判断できます。

-コンパイル時に廃止予定警告が表示された場合はどうすればよいですか。

警告に関連するメッセージをお読みください。ほとんどの警告メッセージには、新しい代替の API を示します。元の API と代替の API の動作に違いがある可能性があります。具体的にその動作の違いを調整する必要がある場合を除いて、警告メッセージに示した新しい代替の API を使用して再コンパイルします。具体的に元の API の動作が必要な場合は、元の API を使用してコンパイルすることもできます。この場合、廃止予定の API を必要とする理由をマイクロソフトに連絡してください。

代替 API を示していない場合、その動作はサポートされなくなります。この場合は、別のソリューションを検討してください。現在のソリューションが必要な場合は、廃止予定の API を必要とする理由をマイクロソフトに連絡してください。

-廃止されるまでの期間を教えてください。どの程度の期間使用できますか。

マイクロソフトがサービスを提供する期間は製品ごとに異なりますが、おおよそ 7 年間です。廃止予定の API を実際に削除するまでの期間に規則はありませんが、本書のガイドラインとしてはこの 7 年間の期間がすぎたら削除されると予測できます。

-複数回のリリースに渡って API に廃止予定警告が設定されることはありますか。

あります。標準的な方法では、廃止予定警告に設定したリリースの次のリリースでその API に廃止予定エラーを設定しますが、別の方法が求められる場合もあります。たとえば、ある API に廃止予定警告を設定した後、ユーザーから引き続きその API を使用したコンパイルを希望するフィードバックが数多くマイクロソフトに寄せられたとします。このような場合は、ユーザーが対応策を講じる時間的な余裕を持てるように、その後 1 ~ 2 回は廃止予定警告に設定したままリリースを行うことがあります。

-どのようなときに API が非推奨になりますか。

API を廃止するプロセスが継続されている間は、API が非推奨になることがあります。リリースにサービスを提供している間は、API が非推奨であることは許容できます。

-API が非推奨に設定されずに削除されることはありますか。

ありません。API は時間をかけて段階的に廃止する必要があります。めったにない例外的な状況が発生した場合は、個別に対処します。

-API が廃止されるまでの期間を決めるポリシーはありますか。

API を廃止予定に設定した後、できる限り早く非推奨に設定します。対照的に、API を完全に削除するときは、このプロセスを標準のプロセスで行っていない場合、できる限り実行を遅らせます。

-API の非推奨設定を解除できますか。

できます。API の非推奨設定はいつでも解除できます。ただし、解除には正当な理由が必要です。

-API を廃止することにセキュリティはどのように関係しますか。

API を廃止することとセキュリティの問題とは無関係です。API のセキュリティに問題があれば、適切な変更が行われます。セキュリティ上の理由から API が変更され、その API が有益ではなくなったと判断される場合、その時点で廃止する可能性はありますが、これはセキュリティ上の理由ではなく API の有益性の点から判断します。

-代替の API がなくても、その API が非推奨になることがありますか。

めったにない例外的な場合ですが、可能性はあります。ここに示す理由は、API を非推奨にする正当な理由にはなりませんが、次のような状況では代替 API がなくても API を非推奨に設定するかもしれません。

  •        o       API が機能しない - めったにない例外的な状況ですが、公にリリースした API が単に無効な場合です。API が現状で使用に適さないことを例示する必要があります。

           o       API の適用範囲が意図したよりも広範である - API は、開発チームが意図した適用範囲よりも広範に導入される場合があります。このような API は、非推奨に設定することが容認される場合があります。

-API のセット全体が非推奨になることがありますか。

そうするメリットがあれば、可能性はあります。変更範囲の処理量と理由によってはこの措置が許可される場合があります。API のセット全体を非推奨にしてはいけない具体的な注意事項はありません。

-API の廃止メカニズムを変更する予定はありますか。

API を廃止するプロセスに将来新たなメカニズムが追加される可能性はあります。このようなメカニズムは、既存のプロセスを補強するものになるでしょう。