2012-01-22 4 views
0

私はすでにこの問題についていくつかの記事を読んでいますが、私は自分の問題を解決する方法がわからないのでもう一度質問したいと思います。MVC3プロジェクトでビジネスレイヤをビルドする方法は?

MVC3を使用するプロジェクトで作業します。プロジェクトは学校システム(学校、生徒、教師、親、ユーザー、役割など)を管理する必要があります。そのような学校管理システムの中心には科目のスケジュールがあります。

EF4 (データベースの最初のアプローチ)、つまり、すべてのエンティティクラスが自動的に作成されるため、私は、学校、瞳孔、教師、ロールなどのデータベーステーブルを表すクラスを持っていて、DbContextクラスを派生させています。

問題はUIと私がすでに言及したEF4を使って得たクラスの間のレイヤーにあります。私は、主に私たちのプレゼンテーション(UI)レイヤーの外観を知っています。リポジトリと作業単位のパターンについて読んで、その仕組みを理解しています。私はそれらのパターンを適用できると思っていましたが、プロジェクト・アーキテクトは何か他のものを使いたいと思っていました。彼は層の明確な分離を望んでいます。彼はビジネスレイヤーに配置されたコントローラから簡単なメソッドを呼び出すことを望んでいます。つまり、ほとんどのロジックがコントローラ内にあるべきではなく、ビジネスレイヤー内にあるべきです。

私はまず何をすべきかはわかりません。私はすべてのエンティティクラスの学校、生徒、教師、役割などを持っています。私はクラスを派生したDbContextを持っています。つまり、これらのクラスはビジネスレイヤーに入力されます。ビジネス層の何を出力する必要がありますか?ビジネス層をどのように設計できますか?

ありがとうございます。私の意見ではゴラン

答えて

2

ビジネスレイヤーを作成するだけです。通常、これはソリューション内の新しいプロジェクトになります。 PROJECT.BusinessまたはPROJECT.BLLまたは同様のもの。

この層は、あなたがなど生徒、教師、学校、同様のクラスを作成しますので、あなたのドメインにマッピングするクラス..

を持っているあなたは、学校のクラスを持っているかもしれませんが、その学校のクラスはGetStudents」のようなメソッドを持っています() "このGetStudents()メソッドは、データレイヤーをインスタンス化し、生徒のコレクションを返します。ロジックを適用する必要がある場合は、これがその場所です。

MVCはUIレイヤーです。 EFはデータレイヤーです。必要に応じてビジネスレイヤを作成します。これはMVCレイヤまたはデータレイヤの一部ではなく、完全にあなた次第です。

+0

Mystere Man、あなたが提案したことを実装しました。どうもありがとうございました。 – tesicg

0

あなたがして、データベースとクエリからデータを取得するためのリポジトリを持つ必要があります。データを操作したり、出力を準備したりする操作では、モデルにすでにあるクラスを拡張するだけで、その機能を提供することができます。ビジネスレイヤーは、ビューに関連するデータを出力する必要があります。このデータは、リポジトリを介してコントローラ内で要求され、拡張されたクラスによって処理された後、厳密に型付けされたビューのモデルで準備されます。

+0

ありがとうございます。 – tesicg

関連する問題