ずっと前に、独自のクラスをフレームワークの名前空間に追加することに対する Microsoft の非常に強力な推奨事項を読んだことを覚えています。探しても失敗しました。
私が覚えている主な理由は、フレームワークの後続のバージョンでは、クラス名の競合が発生する可能性があるためです。
他に理由はありますか?独自のクラスをフレームワークの名前空間に追加することをお勧めしますか? この問題に関する現存する公式のガイダンスはありますか?
ずっと前に、独自のクラスをフレームワークの名前空間に追加することに対する Microsoft の非常に強力な推奨事項を読んだことを覚えています。探しても失敗しました。
私が覚えている主な理由は、フレームワークの後続のバージョンでは、クラス名の競合が発生する可能性があるためです。
他に理由はありますか?独自のクラスをフレームワークの名前空間に追加することをお勧めしますか? この問題に関する現存する公式のガイダンスはありますか?
もう/まだ存在しないものをスタブしようとしているときに、自分に属していない名前空間にクラスを配置したい唯一のケースは、変更したくないコードベースで使用されていることです。
たとえば、.NET 3.5 がベータ版だったときに .NET 2.0 を対象としていたアプリケーションの HashSet 実装を記述し、System.Collections.Generic 名前空間に配置しました。.NET 3.5 にアップグレードすることはわかっていたので、その時が来たらこのクラスを削除しました。
名前空間として使用することをお勧めします。Company.Product.Component
これには、自分の製品でフレームワークの名前空間を使用しないことが含まれる場合があります。MSDN: 名前空間の名前 (クラス ライブラリを開発するための設計ガイドライン) を参照してください。
個人的にはSystem
、.NET フレームワークに属していないのと同じように、自分のクラスに名前空間を使用することはありません。java.lang
どちらもJavaでは使用しません。ただし、これはあくまで私の個人的な意見です。
それが役立つことを願っています。
乾杯、マティアス