- PR -

名前空間とプロジェクト構成

投稿者投稿内容
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-04-17 14:48
#VS2005/VB
#名前のガイドラインのことではありません

アプリケーションから切り出していわゆる共通クラスライブラリを作っていましたが
今まで名前空間をあまり意識したことがなかったのでいまいちしっくりきません。
そこで皆さんはどのようにしているかをお聞かせいただけたらと思います。

1.名前空間のつけ方
A.既定(プロジェクト名=ルート名前空間)
B.プロパティのルート名前空間でやりくりする
C.プロパティのルート名前空間を空にしてNamespaceステートメントを使う

2.1に対してどのようなフォルダ名とプロジェクト名をつけますか?
  たとえば、IO.vbproj(名前要素)、Madoka.IO.vbproj(フルパス)

3.ソリューションはどんな単位ですか?
  一括、配布単位、依存関係の無いものは単独

#なんか「一般的な」イメージがわかないんです。。。

[ メッセージ編集済み 編集者: まどか 編集日時 2006-04-17 14:50 ]
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2006-04-17 14:55
http://msdn2.microsoft.com/ja-jp/library/ms229026(VS.80).aspx

ここに名前空間の名前のガイドラインがありますね。

私は1.に関してはCが好みです。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-04-17 15:01
Enterprise Library は参考になりました。
(結構前に見たので最新バージョンがどうなっているかわかりませんが、より洗練されている事でしょう)
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-04-17 15:05
ありがとうございます。

引用:

私は1.に関してはCが好みです。


最終的にその方向にいきそうではあるのですが、
Aでやっていてプロジェクトを作っていくうちにフォルダ名がちぐはぐになっちゃいまして。。。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-17 15:11
引用:

まどかさんの書き込み (2006-04-17 14:48) より:

1.名前空間のつけ方
A.既定(プロジェクト名=ルート名前空間)
B.プロパティのルート名前空間でやりくりする
C.プロパティのルート名前空間を空にしてNamespaceステートメントを使う


「つけ方」というと命名になってしまうような...(^^)

私は C# では C (ルートは空にはしません)、VB だと A (特別に何かあれば明示的に書きます) ですね。

引用:

2.1に対してどのようなフォルダ名とプロジェクト名をつけますか?
  たとえば、IO.vbproj(名前要素)、Madoka.IO.vbproj(フルパス)


C# だと新規項目の namespace がディレクトリで意識されていますから、
ディレクトリ構造に合わせた方が良いんでしょうかね?

ただ、VB は新規項目の NameSpace が決まっていないですからね...
これには一般的にどうというのは存在しないように思えます。

クラス ライブラリであれば迷わず名前空間に沿ったディレクトリ分けをします。
たいてい、アプリケーション モデル名前空間、コア名前空間が主になってしまいますが、
そこまで大規模になるほどに、アセンブリの数が多くなることも今のところはないです。

引用:

3.ソリューションはどんな単位ですか?
  一括、配布単位、依存関係の無いものは単独


1. アプリケーション単位 (クラス ライブラリのプロジェクト参照) だったり、
2. セットアップ用ということで、全部詰め込んであったり、
3. 他の会社と部門別に作る場合は、分散ソリューションにしたり

1. は、クラス ライブラリが開発途中の場合、VSS と組み合わせると最強ですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-04-17 15:21
引用:

私は C# では C (ルートは空にはしません)


空にしないということは、トップだけにしてあとは明示宣言するということですよね?

引用:

VB だと A (特別に何かあれば明示的に書きます) ですね。


ということはプロジェクト名で管理していると。

引用:

ただ、VB は新規項目の NameSpace が決まっていないですからね...
これには一般的にどうというのは存在しないように思えます。


これの意味がわからないのですが、
新規プロジェクトを作成するとプロパティのルート名前空間がプロジェクト名に設定されますが
それで決まっていないとは?

引用:

クラス ライブラリであれば迷わず名前空間に沿ったディレクトリ分けをします。


名前要素ですよね?
\Madoka
----\IO
であって
\Madoka
----\Madoka.IO
ではないですよね?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-17 15:36
引用:

まどかさんの書き込み (2006-04-17 15:21) より:

空にしないということは、トップだけにしてあとは明示宣言するということですよね?


トップだけの意味がわかりかねますが... 名前空間に囲まれていない (トップレベル) という意味でしょうか。

ルート名前空間は用意しますが、全部明示的に namespace は書いていますよ。
(でも、空にはしないという意味です)

引用:

ということはプロジェクト名で管理していると。


管理とは言えないでしょうね。
「VB では必要な場合のみ書いています」という意味ですから。
新規項目の作成で NameSpace がコードに書かれませんから郷に (VB に) 従っているという意味です。

引用:

これの意味がわからないのですが、
新規プロジェクトを作成するとプロパティのルート名前空間がプロジェクト名に設定されますが
それで決まっていないとは?


「新しい項目」を追加した後の「コード」の話です。
C# では namespace がありますが、VB に NameSpace の記述がないですから。

引用:

名前要素ですよね?


はい、そうです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2006-04-17 15:59
こんにちは〜。
私の場合、VS2003ですが、VBの場合は以下のようにしてます。

・プロジェクト名⇒BonoIO.vbproj
・プロジェクトのプロパティのルート名前空間⇒Bono.IO

NameSpaceステートメントは、ルート名前空間の直下にクラスを配置するときは書きません。
サブの名前空間を使うときは、NameSpaceステートメントを使用しますが、ルート名前空間からの相対で指定してます。

[ メッセージ編集済み 編集者: ぼのぼの 編集日時 2006-04-17 16:01 ]

スキルアップ/キャリアアップ(JOB@IT)