質問

問題:

ASP.NET MVCアプリの場合、ドメインフォルダーを無視し、別のライブラリプロジェクトでドメインモデルを書き込みます。

このようなライブラリプロジェクトを備えたVisual Studioは、フォルダーごとにフォルダーの名前を付けます。たとえば、私の図書館プロジェクトが呼ばれている場合:

ES.ELEARNING.DOMAIN

また、サービスと呼ばれるフォルダーがあります。これは、サービスフォルダー内のすべてのクラスを自動化します。

ES.ELEARNING.DOMAIN.SERVICES

それはすべて順調で良いですが、私はやり過ぎとして私を襲います。私のプロジェクトは比較的簡単なので、クラス名の衝突の可能性はありません。たとえあったとしても、コンパイラはそれを拾います。

そのため、名前空間名をプロジェクト名に手動で編集するだけです。

ES.ELEARNING.DOMAIN

そうすれば、フロントエンドを開発するとき、ドメインモデルプロジェクトは、ドメインモデルを提供するブラックボックスにすぎません。また、1つの機能ブロックとして扱うのではなく、名前空間名をプロジェクトフォルダー構造に結合するポイントはわかりません。

したがって、2つの質問が発生します。

  1. これは悪い練習ですか?もしそうなら、なぜですか?覚えておいてください:これらは小規模から中程度のプロジェクトです。

  2. 私の名前空間に名前を付ける方法vs 2010を伝える方法はありますか?

ありがとう

注:プロジェクトの命名では、ESはクライアントであり、eラーニングはアプリ、ドメインはコンポーネントです

PS:私が見つけた名前空間の命名規則に関するその他の質問は、さまざまな問題に対処しています。したがって、私が決定できる限り、複製しません。

役に立ちましたか?

解決

特定のフォルダーがコンテンツを強制的に名前空間部品として使用するように強制するために、フォルダーを右クリックして「プロパティ」を選択してから、「名前空間プロバイダー」を変更できます。 False. 。それはそれが適用されるすべてのフォルダーに行う必要があるので、それがあなたの質問に本当に完全に答えたかどうかはわかりません。

編集: :ように見えます resharper この機能を追加します。

他のヒント

特定の環境に合った命名規則を使用するためにIDEを採用することは良い習慣です。プロジェクトプロパティのアプリケーションタブでデフォルトの名前空間ボックスを使用して、vsがクラスファイルに自動的に挿入する名前空間を変更できます。

VS2010でこれを無効にするように構成できるかどうかはわかりません。しかし、私はそれをしません。

コードファイルがドメインフォルダーに配置されている場合、その名前空間はcompany.domainである必要があります。ドメインにサブフォルダーサービスがある場合、名前空間はcompany.domain.servicesである必要があります。それは良い(そして何が重要か - 一般的な、練習)です。

あなたはそれらに違反した上で規則に固執する方が良いです:)

名前空間、フォルダー、クラスに名前を付けている間、特異なエンディングを使用するという私の提案。例えば

namespace ES.eLearning.Domain.Services

ASとして事前にフィフル化されます

ES.eLearning.Domain.Service // <-- note missing "s"

ソースコードでの使用の別の例:

ES.eLearning.Domain.Constants.FileTypes.Text

ASを理解するのが「より良い」可能性があります

ES.eLearning.Domain.Constant.FileType.Text

それはすべての個人的な好みであり、ルールではありません。コード(名前空間)を短くて読みやすくする可能性のある小さなものです。

詩一方、ASP.NET MVCはこの「ルール」に従っていません。

Content
Controllers
Models
Scripts
Views

しかし、とにかくソースコードでそれらを「名前変更」し続けるものはありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top