2011-01-03 24 views
1

私はMVCが初めてです。私は私のメインMVCプロジェクトとは別のプロジェクトに自分のデータオブジェクトを持っていたいと思います。すべてのクラスとファイルを私の 'models'フォルダから新しいプロジェクトに移動し、MVCプロジェクトの新しいデータプロジェクトへの参照を追加するだけですか?私はどのようにして、私のコントローラの中で(まだMVCプロジェクトにある)モデルと私の見解の両方で、モデルをどのように使用するのでしょうか?MVCと別のプロジェクト

+0

Mh、使用されるプログラミング言語や使用されるフレームワークなどについてもう少し具体的に話すことができますか?それはあなたが望むものを想像するのに役立ちます。 あなたの質問は、私はあなたが「単に」この順序(私が意味する、インスタンス化)ですべてを作成することができると思います言うよう:-controller -model(何を必要としない) -View(モデルを必要とします) (モデルとビューが必要です) これは簡単です。つまり、コンストラクタのモデルとビューへのポインタを設定することができます。 –

+0

残念です。私の間違い。私は(間違って)MVCはMicrosoftのものだと想定していました。申し訳ありません。私はVisual Studio 2010でC#を使って.net(4.0)を使用しています。 – Craig

+0

MVCは設計パターン、コーディングパラダイムです。 ASP.NET MVCは、Microsoftが提供するツールセットです。あなたのタグを更新しました。 :) – Sapph

答えて

2

あなたは正しい方向に向かっています。実際、最も重要なプロジェクトを除くすべてのプロジェクトでは、私のモデルを別のクラスライブラリに入れたいです。そして、あなたが言及したように、MVCプロジェクトからクラスライブラリを参照し、モデルクラスを使用することができます。クラスライブラリでモデルを準備して磨いてしまえば、MVCプロジェクトやWindows Phone 7などのあらゆる種類のプレゼンテーションレイヤに「公開」するか、WCFを通じて公開することができます。

リポジトリはモデルの一部ではありませんが、注意してください。これらは永続性の懸念事項であり、CRUD操作は単純で単純です。どんな種類の操作でもモデルレイヤーに入るはずです。

0

実装テクノロジに適したツールを使用してライブラリを作成します。たとえば、Javaでは、モデルを含むjarファイルを作成します。あなたはそれらを使ったどのプロジェクトのクラスパスにもジャーを置くでしょう。一度それをすると、ライブラリにアクセスできます。

これは、複数の場所で実装されているモデルオブジェクトとビジネス要件を再利用したい場合に適しています。たとえば、顧客がモデルAPIを使用して独自の種類のクライアントを実装したいと思うかもしれません。

モデルレイヤーを独自のプロジェクトとして管理することも、「メイン」プロジェクトに保持して、必要な成果物を生成するビルドプロセスを持つこともできます。最善のアプローチが何であるかについての厳しい答えを得るために十分な情報を私たちに与えていない。

これは言うことができます:ほとんどのプロジェクトは、1つのプロジェクト内のすべてのレイヤーから開始します。プロジェクトの一部が大幅に複雑になると、別のプロジェクトをリファクタリングすることができます。私が見たいくつかのプロジェクトでは、Webクライアントは独自の開発チーム(および独自のMVCレイヤ)を持つ独自のプロジェクトになるほど複雑です。他のプロジェクトでは、MVCスタック全体が1つのプロジェクトにまとめられていました。パラダイムに従うために別のプロジェクトにMVCのMは必要ないことに注意してください。正しいレイヤーにあるすべての問題を処理するだけです。

+0

ありがとう。私はちょうど本当に小さな学習プロジェクトを作っています。だから実際の生活では、私はそれを1つとして保つだろう。しかし、私は古いWebアプリケーションをMVCに変換したいと思います。それには2つのインターフェースがあります。 WinformsとWebアプリケーション。私は現在、blとdlを持つ古典的なasp.net Webサービスを使用しています。これはデータレイヤーとしてのエンティティフレームワークに変換され、Webサービスがefプロジェクトを参照するようになります。実際にはわからない。私はおそらく、データオブジェクトを持つ共有クラスlibを持つ必要があります。実際に。私はこれについて考える必要があります。 – Craig

関連する問題