問題タブ [mvp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
678 参照

asp.net - MVP パターンを使用する優れたオープン ソース ASP.NET アプリケーションはありますか

既存の Web フォーム アプリケーションを今後のフレームワークにアップグレードし、新しいビジネス要件に従っていくつかのワークフローを書き直そうとしています。このプロジェクトに TDD ベースの開発を導入したいのですが、いくつかの調査の結果、既存の Web アプリケーションがグループ化、ページング、列移動などに多数の Infragistics UltraWebGrid コントロールを使用しており、適切な代替手段がないため、ASP.NET MVC は役に立たないことがわかりました。 ASP.NET MVC の世界のグリッド。このリリースでは、blackberry もサポートする必要があります。そのため、同じプロジェクトでデスクトップ クライアント用の MVP とブラックベリー クライアント用の MVC の両方を使用することを計画しています。

誰かが自分のプロジェクトで同様のことをしたかどうか、MVP パターンを使用して優れたオープン ソースの asp.net アプリケーションにリンクしているかどうかを知りたいです。重量が重すぎるため、WCSF を使用したくありません。彼らの MVPBundle サンプル アプリケーションを見ましたが、IoC (Unity または StructureMap)、モッキング フレームワークなどの最新ツールが使用されていません。

よろしく、スニル

0 投票する
1 に答える
1245 参照

dependency-injection - MVP - 依存性注入とモデル

View が Presenter を使用すると仮定すると、Presenter にはモデルがあります。

モデルをプレゼンターにどのように挿入しますか? ビュー レベルでそれを注入すると、ビジネス ロジックがビュー内にあるという正方形に戻ります。つまり、ビューはそのモデルを認識してはなりません。

何かアドバイス?

0 投票する
3 に答える
1986 参照

c# - MVP を使用して FormClosing を処理する方法

ここに行きます:

次のようなビューがあります。

次のようなプレゼンターがあります。

次に、キャンセル ボタン、保存ボタン、およびアドレスを表示するためのすべてのコントロールを備えた Windows フォームを作成します。キャンセル ボタンが実行されます。

次に、ビューがダーティかどうかをチェックし、変更を破棄するようにユーザーに促します。これは素晴らしいです、それは私が欲しいものです。

ここで私の質問は、ユーザーが [キャンセル] をクリックせずにフォームを閉じた場合 (つまり、右上の [X] をクリックしたり、ALT + F4 を押したりした場合) に同じことを達成する方法です。FormClosing イベントを処理しようとしましたが、一部のコードを複製してしまい、キャンセル ボタンをクリックするとポップアップが 2 回発生します。ここに私が持っているものがあります:

0 投票する
1 に答える
912 参照

controls - モデル ビュー プレゼンター - より複雑な UI コントロールの処理

Model View Presenter パターンを調査しています。これまでのところ、私が見ているものは気に入っていますが、ほとんどすべての記事、ウェブキャスト、ポッドキャストなどです。私が見たり、読んだり、聞いたりしたことは、テキストボックスからの単純な型の設定と取得に対処する傾向があり、対処方法を理解するのに苦労していますより複雑な UI コントロールを備えています。

たとえば、CheckedListBox があるとします。この CLB では、使用可能なすべての選択肢と、特定​​のインスタンスに対して選択された選択肢を表示したいと考えています (FavouriteIceCreamFlavours リストを持つ Friend クラスを想像してください)。リスト ボックスを簡単に埋めることができますが、選択されているものをどのように設定するのでしょうか (たとえば、この友人のその後の編集で)。また、これらの変更を元の Friend オブジェクトに永続化するにはどうすればよいでしょうか?

別の候補は TreeView です。TV のノードを右クリックして、ユーザーがそのノードを削除できるようにしたいとします。そのアクションをプレゼンターに伝える最善の方法は何ですか?

乾杯、

レニー。

(PS 私は C# 3.5/WinForms 環境で開発しています)

0 投票する
2 に答える
184 参照

model-view-controller - モデルレイヤーからのユーザー入力の取得

MVP または MVC の設計パターンに従うことに問題がある (どちらにも当てはまる)。モデルレイヤーからユーザー入力をきれいに求める方法がわかりませんか? モデル内の特定の値によっては、プロセスの途中でユーザーに入力を求める必要がある場合があります。

たとえば、架空の PO エントリ プロセスを取り上げます。ユーザーがビューのボタンを押した後、ビューから PO の詳細を渡してプレゼンターを呼び出すとします。次に、プレゼンターはモデルを呼び出して新しい PO を検証し、PO のコレクションに挿入します。モデルの検証チェックの 1 つは、同じアイテムで別の PO がまだ入力されていないことを確認することです。所有している場合、アプリは PO が重複していないことを確認するようユーザーに求める必要があります。アプリは現在、モデルの奥深くにあります。ビューに戻ってオペレーター入力を取得し、中断したモデル コードに戻って PO エントリ プロセスを終了するにはどうすればよいですか?

0 投票する
2 に答える
1354 参照

winforms - パブリック メソッドまたはビュー イベントへのサブスクライブ

View が IView インターフェイスを実装する WinForm である MVP プロジェクトを作成しました。私はコードを見直し、できる限り改善している最中です。ビューとプレゼンターがどのように相互作用するかについて、あなたの考えをお聞きしたいと思います。あなたの意見では、次のうちどれがベストプラクティスですか?

  1. ビューが使用するプレゼンター クラスのメソッドを公開します。(つまり、それらを公開します)。
  2. View クラスによって発生したイベントをプレゼンターにリッスンさせます。

たとえば、私の MVP は、シリアルポート経由で通信するサービスを使用しています。リモート デバイスに接続するために、ビューは public Presenter メソッド Connect() を呼び出し、それから適切なサービス メソッドを呼び出します。

Connect() イベントを発生させ、プレゼンターにそれをリッスンさせる方が良い方法でしょうか?

0 投票する
3 に答える
1725 参照

c# - TreeView コントロールから MVP プレゼンターに階層データを公開するにはどうすればよいですか?

Winforms TreeView コントロールにいくつかの階層データがあり、それをプロパティとして公開して、プレゼンターが変更を同期できるようにする必要があります。明確にするために、私はパッシブ ビューパターンを使用しています。ほとんどの WinForm コントロールでは、これは簡単です。コントロール自体は、プレゼンターに簡単に渡すことができるシステム タイプとしてデータを公開します。TreeViews は、複雑であるため、システム タイプに簡単にマップできません。フレームワーク コレクション型を探しましたが、ツリー型は見落とされているようです。(Microsoft は、いくつかの高レベル クラスの内部でツリー構造を使用しているように見えますが、汎用ツリークラスのファミリーを作成しないことを選択しました。)

いずれにせよ、私が公開しようとしているデータの深さは 2 ノードを超えないため、TreeView を使い続けるかどうかさえわかりません。さらに、プレゼンターを TreeNodeCollection に結び付けることを避ける必要があります。

私はすでにいくつかのアイデアを思いつきましたが、SO コミュニティからそれらを跳ね返したかっただけです。

  • ツリーをコレクションのコレクションとして公開します...リストの辞書としましょう。
  • カスタム ツリー構造を作成し、プロセス内のビューに依存関係を導入します。

最上位ノードは平均 5 ~ 10 エントリで、子ノードは理論的には 50 ものヒット数を達成できますが、実際には 3 または 4 を超えることはありません。

助言がありますか?

0 投票する
4 に答える
305 参照

c# - プレゼンターは、ユーザーに詳細情報の入力を求める必要があります。どうすれば配線できますか?

パッシブビューパターンを使用しています。ユーザーが新しいアカウントボタンをクリックします。ビューは、パラメーターなしのメソッド呼び出しを使用して、プレゼンターに責任を委任します。

問題は、複数のアカウントタイプがあるため、ユーザーは作成するアカウントタイプを選択する必要があることです。これを解決するにはどうすればよいですか?

  1. ビューから新しいフォームを作成し、必要な情報を取得して、プレゼンターが取得できるようにプロパティとして公開します。(これは、ビューにロジックが含まれていてはならないという概念を無視します)
  2. プレゼンターから新しいフォームを作成して使用します。(これは、MVPの全体的なポイントを無視して、プレゼンターをフォームに直接結び付けます)
  3. 新しいフォームを別の場所に作成し、コンストラクター引数としてプレゼンターに渡します...またはビュー。
  4. それを忘れて、アカウントタイプごとに新しいボタンを追加してください。(アカウントの種類はいくつかあり、UIが乱雑になりますが、そうなります。)
  5. 私はこれを間違った方法で行っているので、私のデザインを再考する必要があります。(この場合、正しい方向に少しずつ動かしていただければ幸いです。)
0 投票する
3 に答える
2672 参照

c# - MVP でサブビューをロードする

ここ数日、winforms を使用して MVP パターンをいじっていますが、どうすればよいかわからないことが 1 つだけあります。別のビューからサブフォームを作成する方法を教えてください。これは有効なオプションでしょうか。

私は主に、このパターンを使用してサブフォームをロードする方法と、最初のページからサブフォームに ID を渡す方法に関心があります。

ありがとう。

0 投票する
2 に答える
1058 参照

asp.net - Visual Studio 用の MVP テンプレートはありますか

フォルダ構造を作成するためにMSが提供するMVCフレームワークのように?