4

過去に、私はいつも特定のプロジェクトの名前空間をプロジェクト(およびプリンシパルクラス)と同じように呼び出していました。

namespace KeepAlive
{
    public partial class KeepAlive : ServiceBase
    {...

次に、他のプロジェクトから、そのクラスを呼び出すたびに、常に次のようになりました。

KeepAlive.KeepAlive()...

私は今、これはあまり良い考えではないかもしれないと考え始めていますが、実際に自分の名前空間を何と呼ぶべきか困っています。他の人は何をしますか?すべてのプロジェクトに 1 つの名前空間しかありませんか?

4

6 に答える 6

7

クラスの名前を名前空間と同じにするのは悪い考えです。私の意見では、場合によっては正しいものを参照するのが非常に難しくなります。

私は通常、プロジェクト (および名前空間) に適切な名前を付け、適切なエントリ ポイントに "EntryPoint" または "Program" を付けます。あなたの例では、おそらくクラスを「KeepAliveService」と呼びます。

于 2008-11-14T11:02:19.520 に答える
7

この単純なスキームがあります。

  CompanyName.ProductName

次に、アプリケーション層、例えば

  CompanyName.ProductName.Data
  CompanyName.ProductName.Web

内部はモジュールや機能ごとに分割されており、通常はフォルダーに対応しています

  CompanyName.ProductName.Web.Shop
  CompanyName.ProductName.Web.Newsletter

ところで: 同様の質問に対する回答は、次の場所にあります。

于 2008-11-14T11:22:55.983 に答える
5

CompanyName.ProductName.AreaOfSystem.SubAreaOfSystem

クラスと同じ名前で呼ばないでください。

私たちの分野には次のようなものがあります。

  • サービス
  • スマートカード
  • UI

サブエリアは控えめに使用されますが、関連する場合:

  • Smartcard.Mifare
  • Smartcard.DESFire

論理的にはそうではない可能性があるため、私たちのものはフォルダーに対応していません。ソリューション エクスプローラーのナビゲーションを容易にするために、フォルダー内の特定の部分を切り離すことがありますが、必ずしも名前空間がフォルダー構造に従う必要があるとは限りません。特に、フォルダー内に数個のファイルしかない場合 (通常、タイプの少ない名前空間はばかげています)。

于 2008-11-14T11:26:07.567 に答える
3

その名前空間に入るすべてのものの共通記述子で名前空間に名前を付けます。

于 2008-11-14T10:59:27.700 に答える
0

私たちは古いものに固執します

uk.co.company.system.layer

多くの MS Server 製品を使用しているため、衝突を最小限に抑え、概念的な分離に役立ちます。

例えば。

uk.co.acme.biztalk.bizutils.

于 2008-11-14T12:29:19.547 に答える
0

私はJavaパッケージの方法が好きです:com.stackoverflow.Data(またはあなたの会社のプライマリドメイン名が何であれ)。
そうすれば、名前空間があいまいになることはありません。

于 2008-11-14T12:26:28.647 に答える