デフォルトのASP.NETMVCプロジェクトは、これまでに取り組んだ少数のMVCプロジェクトで使用したことがあるかどうかわからない「Models」ディレクトリを設定します。通常、私はビジネスロジッククラスを格納する別の「ライブラリ」プロジェクトを持っています。
今、私は興味 があります。デフォルトのASP.NET "Models"ディレクトリを利用しないことで、何か大きなものが欠けているのでしょうか。 これをうまく利用する組み込み機能はありますか?
デフォルトのASP.NETMVCプロジェクトは、これまでに取り組んだ少数のMVCプロジェクトで使用したことがあるかどうかわからない「Models」ディレクトリを設定します。通常、私はビジネスロジッククラスを格納する別の「ライブラリ」プロジェクトを持っています。
今、私は興味 があります。デフォルトのASP.NET "Models"ディレクトリを利用しないことで、何か大きなものが欠けているのでしょうか。 これをうまく利用する組み込み機能はありますか?
私は通常、このディレクトリをビューモデルに使用します。ドメインモデルは別のプロジェクト/アセンブリに存在しますが、ビューモデルはモデルディレクトリのWebプロジェクトに保持されます。このディレクトリにモデルを追加すると、モデルは*.Models名前空間に自動的に設定されます。
あなたは何も見逃していません。私の意見では、フォルダーが作成される唯一の理由は、それが ASP.NET MVC であり、「M」、「V」、および「C」用のフォルダーが必要だったからです。既定では、ASP.NET MVC は "M" の実装方法を通知しないため、モデル クラスを配置する場所の提案として空白のフォルダーが表示されるだけです。このフォルダは自由に削除して、モデルを好きな場所に配置してください。
フォルダ自体には「特別な」機能はありませんが、モデルクラス(つまり、ORM生成(LINQ)などのデータクラス)をどこに保持するかについての提案にすぎません。
クラスの例は、基礎となるデータエンティティをモデル化するCustomer、Address、Orderなどです。
私は通常、モデルを別のプロジェクト/アセンブリに保持するので、Models
フォルダーを使用して UI 固有のクラスを格納Widget
しFoosit
ますWidgetFoositContext
。
public class WidgetFoositContext {
public Widget Widget { get; }
public Foosit Foosit { get; }
}
モデル ディレクトリを使用して、ビジネス オブジェクトの構成を保存します。製品コントローラーにいる場合は、製品自体を格納する ProductViewData クラスを作成し、推奨製品のリストとその製品のレビューのリストを作成します。
私は自分のビジネス オブジェクトをかなりシンプルに保つことを好みます。models ディレクトリは、私の見解で必要となるさまざまな形式のデータをまとめることができる場所です。