2012-01-17 13 views
0

ページ上でデータアクセス操作を実行し、各ユーザーコントロールのプロパティに取得したデータを入力する方がよいでしょうか。ページまたは各UserControlのASP.NETデータバインディング?

- または -

各UCは、ビジネス層を呼び出して、ページに依存することなく、独立して、独自のデータを引き出した場合、それはより良いです。

既存の条件: 1ページがデータアクセスに使用することをどれ情報(クエリ文字列、URLなど)も、個々のUCの 2.どちらのソリューションは、キャッシングを利用する利用可能です。

私の同僚は、データアクセスがページ上で1回しか行われないため、最初のオプションが優れていると主張しています。

2番目のオプションは、ページ自体に追加の配線を必要とせずに別のページにUCを配置できるため、より論理的です。ページとUCは本当にデカップリングされています。

なぜ他のものより優れているのかを教えてください。

+0

2 1つのオプションが適しています。あなたのデータはどれくらいですか? –

答えて

3

ほとんどの場合、最初のオプションが優れています。

UserControlはコントローラーではなくページです。それはそれにアクセスしないデータを表示する必要があります。通常、ページはUserControlのプロパティを設定します。

再利用性の1つです。これは、データソースとハードリンクされている場合は減少します。どんな種類のDALでも動作するはずです。まったく気にする必要はありません。

カプセル化(TabContainerのTabPanelで使用されるコンテナコントロールとして)の場合、UserControlはページ置換であり、したがってデータアクセスとイベント処理も行います。あなたはこの種のUserControlを頻繁に再利用しません。

1

どちらも正しいです。

ユーザーコントロールを再利用する予定がある場合は、そのコントロールにデータアクセスをカプセル化する必要があります。

ただし、ページに複数のユーザーコントロールがある場合は、確実に一度データにアクセスする方が効率的です。

私たちがよくしていることは、ハイブリッドソリューションを実装することです。ユーザーコントロールは、データ取得インターフェイスを実装しているページ(ページから取得したもの)でホストされているか、ユーザーコントロールが種類(ページがユーザーコントロールにデータをプッシュします)。

関連する問題