0

これは質問のフォローアップです:

ソリューション内のフォルダーは名前空間と一致する必要がありますか?

その質問に対するコンセンサスは、修飾された「はい」でした。つまり、一般的にはフォルダー == 名前空間ですが、奴隷的ではありません (Java が必要とする方法)。

実際、それが私がプロジェクトを設定する方法です。

しかし、ソース管理をセットアップすると、現在のフォルダー構造について躊躇するようになりました。.NET Framework と同様に、私のプロジェクトの名前空間は、デプロイされたユニットと常に 1 対 1 で一致するとは限りません。あなたが持っていると言う

lib -> lib.dll
lib.data -> lib.dll
lib.ecom -> lib.ecom.dll
lib.ecom.paypal -> lib.ecom.paypal.dll

つまり、子の名前空間は、親に同梱される場​​合と同梱されない場合があります。

一緒に展開する名前空間は何らかの方法でグループ化されていますか?

ところで、私は VS や NAnt を使用していません。古き良きビルド バッチだけです。

4

1 に答える 1

1

私は通常、これについてあまり考えず、「正しいと思われること」を行うだけですが、通常、次の戦略にかなり適した名前を使用することになります。

あなたがやっているように、.dll 名にはツリー内で最も一般的な名前空間を使用します。

lib と lib.data では、これは lib なので、dll は lib と呼ばれます。lib.ecom と lib.ecom.paypal では、これは lib.ecom なので、dll は ecom と呼ばれます。

場合によっては、物事についてもう少し考える必要があります。たとえば、次の名前空間があり (警告、単純化された例が近づきます)、それらを 2 つの dll にグループ化したい場合があります。

myapp.view
myapp.presentation

myapp.model
myapp.dataaccess

myapp アセンブリを 2 つ持つことになるため、myapp を使用することはできません。この場合、最も適切な名前空間の名前を使用します。これらの名前空間が最も重要な場合、最初の名前は myapp.presentation と呼ばれ、2 番目の名前は myapp.model と呼ばれます。

于 2008-09-11T08:59:10.453 に答える