1

上記を行うには単純なパターンが必要です。 いくつかのことに注意しますデータアクセス、ビジネスロジック、プレゼンテーションを分離するためのシンプルなエレガントなパターン

1)I持って、私はそれが実際のデータを取得し、それを返しません使用することを義務づけていますクラスのDataTable

2)私はすべての可能性をサポートする汎用的なインタフェースを備えた心配していませんよ私たちは1つのデータベースタイプに固執しています。

3)エラーをうまくトラップし、エラーが発生したことをユーザーに通知するにはどうすればよいですか。

4)私はMVCを習得しないでください - 今はオプションではありません。

私は実際のパターンデザインに興味があります。

+2

"MVCが必要ですが、MVCパターンを使用するように教えてください!" – Wedge

+0

Wedge、コメントの前に私のコメントを答えに読んでください。 – sarsnake

答えて

1

プレゼンテーション(私はASP.NET MVC Frameworkの話ではないていますことに注意してください)とデータアクセスからビジネスロジックを分離するDAOパターンから独立したビジネスロジックにMVCパターンを使用します。

DataTableを返すクラスは、モデルの一部になります。あなたは、DataTableを取り込んでそれをあなたの様々なドメインオブジェクトに変換するレイヤー(各ドメインオブジェクト用のDAO)を作成します。あなたのUIには、ユーザーに出力を提示する以外のロジックは含まれていてはなりません。モデルからデータを取得するための実際のロジックは、コントローラレイヤーで処理され、ユーザーがモデルから要求しているデータを取得し、適切なビューに送信してユーザーに提示します。

例外はレイヤ境界で処理する必要があります。キャッチして何かをするか(単にログに記録してユーザーにエラーページを送信することがあります)、必要に応じてより高いレベルの例外をラップします。

+0

私はMVCに精通しています。しかし、現在のサイト設計のため、レイヤーを分離して完全なMVCモードにならないようにします – sarsnake

+0

私はあなたが何を意味するかは分かりません。 MVCアーキテクチャーを作成せずにビジネスロジックとプレゼンテーションを分離する方法がわかりません。 –

+0

私が探しているのは、n層のような疎結合のアプローチです。 – sarsnake

-1

私はMVCを習得しないでください - 今はオプションではありません。

単純なMVCまたはMVPパターンは、ASP MVCフレームワークを使用せずに実行できます。導入するのはかなり簡単です。ここにはとても簡単な例がありますMVP Example

0

あなたが描いているものに近づくパターンはたくさんあります。私はMartin Fowlerの優れた本のコピーを入手することをお勧めしますEnterprise Architectureのパターン具体的には第14章ウェブプレゼンテーションパターン。プレゼンテーション、ドメイン(ビジネスロジック)、およびデータソースを分離しようとすると、同じテーマの多くのバリエーションにつながる可能性があります。

MVC、MVP、ビジュアルプロキシなどはすべて、3つのレイヤに分かれています。それぞれのレイヤの責任と、レイヤ間の通信方法です。

例えば、パッシブビューパターンは、基本的にプレゼンテーションに直接関係のないもののUIレイヤーを取り除きます。典型的な例は、特定の条件が真である場合にハイライトしたいフィールドです。 パッシブビューでは、フォームには、フィールドを強調表示するかどうかを判断するロジックのみが含まれます。トリガーがこの状態になるビジネスルールは、実際のビューに直接依存しないプレゼンター/コントローラーレイヤーになります。

データソースレイヤーの主な利点は、ハットのドロップでデータベースを切り替えることができないことです。主な利点は、データベーススキーマの変更がデータソースレイヤーにのみ影響し、アプリケーションの残りの部分には及ばないという点です。あなたがデータセットについているのであれば、良いアプローチはテーブルデータゲートウェイパターンです。

関連する問題