0

WebフォームからMVCに移行していますが、少し迷っています。私の質問は、 MVC対n層アーキテクチャによってほとんど答えられましたが、完全ではありませんでした。

Webフォームでは、通常、ソリューションの下で3つのプロジェクトを使用してサイトを構築します。UI、BLL、DAL、そしておそらくテスト用のもの(これは一般的な方法だと思います)。

今、MVC3を起動していますが、Visual Studioのレイアウトに基づいて、3つを分離する必要はないようです。

MVCは複数のプロジェクトで実行するように設計されていますか、それとも1つのプロジェクトから実行する必要がありますか?WebフォームはN-Tierアプリケーションに適しているようです。おそらく、Modelsフォルダーを削除してDALに移動し、Controllerフォルダーを削除してBLLに移動することで、MVCN-Tierを作成できます。 MVCが私に望んでいること(またはVisual Studioがそれを設定する方法)と戦っていますか?または、モデルとコントローラーをそのままにして、モデルフォルダーに「ビューモデル」を作成すると、コントローラーはほとんどのロジックについてBLLと通信しますか?どんなポインタも素晴らしいでしょう。

4

2 に答える 2

3

MVC はプレゼンテーション パターンのみであるため、プレゼンテーション ロジックをどのように構築する必要があるかを示しているだけです。データ アクセス パターンやビジネス ドメインの構造については何も述べていません。

私は、Web プロジェクト (MVC)、モデル (ドメイン) プロジェクト、およびアプリによってはデータ アクセス プロジェクトやサービス プロジェクトで Web アプリを構築する傾向があります。そこには何もしたくないので、私は常にWebプロジェクトのModels-folderを削除します。すべてのドメイン モデルとビュー モデルはモデル プロジェクトに存在します。

コントローラーに関しては、モデルとビューがそれに応じて応答できるように (応答)、コントローラーはユーザーが実行したいこと (要求) の変換のみを行う必要があります。つまり、コントローラーは非常に薄いため、ほとんど気付かないはずです。コントローラーには、モデルと表示するビューを選択するためのロジックが含まれている必要があります。他のすべてのロジックはモデルに属します。

さらに、ビューには if や foreach などの非常に単純なプレゼンテーション ロジックのみを含める必要がありますが、条件はビュー モデルで準備する必要があります。

于 2013-02-15T11:50:02.620 に答える
1

MVC モデルは UI 専用です。以前と同じ関心の分離を引き続き使用できます。

このプロジェクトでは、Web サイト レイヤーとビュー モデルを Web プロジェクトに保持します。データ アクセスには WCF サービスを使用します (これは DAL に対応します)。ギャップを埋めるのは、サービスへのクライアント側アクセスと、サービス結果からビュー モデルへの変換が必要なロジック プロジェクト (これはビジネス ロジックに対応します) です。

コントローラーとビュー モデルはどちらも非常に薄いです。ロジックは、ロジック レイヤーと、分離されたドメイン モデルにあります。通常、サービス コントラクト (この場合は DAL) とビュー モデルの間でドメイン モデルを共有しますが、ビュー モデルがドメイン モデルを直接公開することはありません。

これが役立つことを願っています。

于 2013-02-19T15:20:02.073 に答える