web-dev-qa-db-ja.com

バージョンサフィックスが付いた名前空間のC#名

Microsoftの公式ドキュメント

✓名前空間名の第2レベルで、安定したバージョンに依存しない製品名を使用してください。

しかし 参照ソース では、次の名前空間はバージョンで終わります:

Microsoft.Build.Tasks.v4.0
Microsoft.Build.Utilities.v4.0
Microsoft.Build.Utilities.v3.5

では、マイクロソフトは独自のガイドラインに違反していますか? API/SDK名前空間にバージョンサフィックスを追加することは良い考えですか?

6
Jawad Al Shaikh

ドキュメントが第2レベルに言及する場合、それらは(<Product>|<Technology>)として示される名前空間のセクションを参照しています。製品またはテクノロジは、バージョンに依存しない必要があります。

したがって、技術的にはMicrosoftは独自のガイドラインに違反していませんが、名前空間でバージョンを使用することは確かに優れたアイデアではありません。ライブラリを更新する適切な方法は、ライブラリの次のリリースでは使用できなくなるメソッドとクラスを非推奨にすることです。代わりに、ドキュメントやコード自体でコメントとして使用される置換への明確な参照があります。 。

9
Neil

それは少し奇妙に見え、シームレスにアップグレードすることはできません。一方、これにより、Microsoftはより自由に物事を移動したり、次のバージョンに完全な再設計を適用したりすることができます。

どちらのアプローチが適切かは、問題の領域に依存します。この場合、それはスマートに見えます。あなたのビルド環境は、非常に多くのテクノロジーやファッションに縛られています。新しい展開モデルが登場した場合は、ビルドツールに大幅な変更を加える必要があります。基本的には新商品になります。とにかく、古いビルドツールを使用することはできません。それらはもはや適合しません。ターゲットは、新しい使用モデルに適合する新しいアプリケーションです。

あなたはそれをバージョンのアップグレードではなく、以前の世代とは別に設定されるべき新世代のようなものだと考えるかもしれません。

1
Martin Maat