2

サービス層と直接通信する (CRUD 操作、検証などを実行する) 「ブラック ボックス」ユーザー コントロールを作成することは、設計が不十分であると見なされますか?

「ブラックボックス」とは、ホストされているページとは無関係にデータを取得/保持することを意味します (IoC 注入サービスを使用)。各 UC をページにドロップするだけで機能します。これらの UC にはビジネス ロジックがまったく組み込まれていないことに注意してください (それはすべてドメイン層にあります)。

このアプローチは、次の 2 つの要因によって推進されました。

  1. 私たちのアプリケーションには、基本的に同じビューのバリアントである (レイアウトがわずかに異なる) 多くのページがあります。
  2. さらに、UI デザイナーは、ページの個々の部分を開いて編集できるようにすることを好みます。この概念を説明するための貧弱な試みについては、ここをクリックし てください。

    とにかく、UC に自分自身をレンダリングして永続化する能力/責任を与えることで、かなりのコードの重複をなくすことができるように感じました。

このアプローチが実際に「厄介」であると考えられる場合は、より魅力的な別のアプローチ (おそらく MVP ?) を提案してください。

ありがとう!

4

2 に答える 2

2

この方法で各コントロールの MVP パターンを正しく実装すると仮定すると、これは完全に受け入れられる IMO です。

個人的に私がこのような問題を解決した方法は、私の MVP パターンが多くのビューにアクセスできるハイブリッド ビュー プレゼンターを持つことを可能にすることです (と考えIListViewIEditViewください)。始めるページ。それらが独自のタグを持つユーザーコントロールである場合は、質問で尋ねた方法で実装するか、ページにコードを実装するために可能なすべてのイベントを公開する必要があります。

于 2010-03-01T20:08:44.143 に答える
1

いいえ、これは実際に、水平方向に比較的緊密に結合された「スタック」があり、機能の他の「スタック」と疎結合されている、優れた SOA を行う方法です。スタックは、UI から永続化レイヤーに結び付けられています。Amazon と EBay がどのようにページを持っているかを考えてみてください。各ページは複合 UI であり、UI の各部分は他の部分から独立していますが、各部分内でレイヤーは互いに依存しています。

于 2010-03-01T20:30:16.553 に答える