とある本のAmazonレビューを読んでいたところ、この本の内容は以下の記事を読めば十分だと記載されてました。
MSDNに.NET Frameworkを使ったAPI、ライブラリの設計のガイドラインが示されています。
名前付けのケース
では入出力を意味するIOについては?
IOStreamという例外については認めると記載があります。
名前空間名については <Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]
会社名.製品名.機能名.副名前空間
というのが名前空間です。
なんでいちいち社名を入れるんだ?と思っていたのですが、それがガイドラインのようです。
自社のプロジェクトでも社名.プロダクト名ってなってました。
あまり製品名が被ることはないと思いますが、ライブラリを公開することを考えるとかち合わないようにということなんでしょう。
入れ子の型
以下のような型です。
class A { // 入れ子の型 class B { } }
実装の詳細をモデル化するのに適しており、エンドユーザーはほとんど宣言することはない。とされています。
よって、エンドユーザーが一般的に利用するクラスとしては入れ子の型にするのは望ましくないようです。
私としては、とりあえずここで宣言しておけばいいやと、宣言していたりするので、ここは気をつけた方がいいですね。