問題タブ [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 投票する
9 に答える
2271 参照

asp.net-mvc - Microsoft が ASP.NET に MVC を選んだのはなぜですか?

30 年間のパターンであることに加えて、MVC は現在のアプリケーション向けではありませんでした。MVP はその後継で、90 年代に登場したイベント ベースのアプリを処理するように設計されています。Passive View と Supervising Controller がトップに躍り出たようです。この 2 つについては、MVC/MVP について話す必要はほとんどありません。

具体的には、そのビューを作成するビューを戻す ASP.NET MVC のコントローラー アクションですか? MVC では、コントローラーはビューを作成したり、それらに話しかけたりしません。ASP.NET MVC を MVC 実装と呼ぶのはどのくらい正確ですか? または、それの正確な名前は何ですか?

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

.net - MVPパターン、プレゼンターに何ビュー?

私たちは、Model-View-Presenter パターンを (事実上) すべての新しい開発作業で使用しようとしています。

私は人々が設計要件を満たすのに役立つフレームワークを持つことを強く信じています。さまざまなコンポーネント (ロギング、電子メール送信など) 用の社内フレームワークがいくつかあるので、ある種の MVP を取得しようとしています。フレームワークを開発しました。

MVP に慣れていない人にも使いやすく、現在の作業方法からそれほど離れていないものをまとめることができました。問題は、1 ビューと 1 プレゼンターの関係を行っていることです。

フレームワークの大まかな概要は次のとおりです。

それが機能する基本的な方法は、作成されたビューIViewがインターフェイスから継承され、抽象クラスから継承されたプレゼンタークラスに渡されることです。Presenter

ご覧のとおり、私は .NET ジェネリックを使用しているため、開発者はプレゼンター (そして最終的にはプレゼンターから継承するクラス) で作業しているときにビューの厳密な型指定を行うことができます。

したがって、次のような基本的なログイン コンポーネントを設定できます。

私がこれをとても気に入っていると述べたように、コンパイラ強制型付け、強く型付けされたビュー、および MVPのようなパターンがあります。

ただし、プレゼンターとビューの間に 1 対 1 の関係があるため、実装にそれほど満足していない人もいます。厳密に言えば、これは MVP の本来のあり方ではありません。

この議論が実際にどれほど有効であるか疑問に思います.このフレームワークを追跡してきたいくつかのプロジェクト(中規模から大規模のプロジェクトまで)で、「このプレゼンターには複数のビューが必要だ」と考えた良い例は見つかりませんでした. . 複数のビューで共有できる機能を見ると、特定のプレゼンターに関連付けるべきなのか、それともより中立的なクラスにすべきなのか疑問に思います。

私が達成しようとしているフレームワークは、MVP と呼ばれるには MVP から遠すぎますか? プレゼンターに複数のビューを提供する必要性は、MVP の主な目標ですか? n ビューをサポートする真の .NET MVP フレームワークを持つことさえ可能ですか?

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

c# - Winforms MVP グリッド イベントの問題

WINFORMS の MVP パターンを実装しようとしています。ボタンとグリッドを使用した単純なボタンをクリックすると、グリッドがロードされ、ユーザーはグリッドに値を入力できます。

私のボタンクリックイベントには、次のようなものがあります:

_presenter.LoadGrid();

これは単純明快です。

私の質問は、グリッドに関してです...行クリックイベントを発生させることを計画しています....グリッドの特定の列/行などの後続の入力フィールドを有効/無効にするために.

プレゼンターに GUI 要素を含めるべきではなく、ビュー (フォーム) に実際にロジックを含めるべきではないことを理解していますか?

そのため、GridRowClick イベントを発生させるには、ビジネス ルール (ロジック) に基づいてグリッド (GUI) を操作する必要があります。プレゼンターにそのクリックイベントのロジックを処理させるか、フォームを処理させるかで迷っていますか?

プレゼンターがクリック イベントを処理する場合、GUI コンポーネントは含まれませんか? ビューがクリックイベントを処理する場合、フィールド名などはすべてビジネス主導 (ロジック) であり、ビジネス層から返されたデータテーブルに基づいて動的にバインドされます。

どんなアドバイスでも大歓迎です。

乾杯

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

c# - Model-View-Presenter: UI の検証

モデル ビュー プレゼンター アーキテクチャで UI 検証を行う方法に関するベスト プラクティス アプローチを探しています。

多くのコントロールを含むいくつかのフォームを検証する必要があります。また、ユーザーが簡単に操作できるように、すべてのエラーまたは警告をコントロールへの参照とともにログに保存します。ログは後でユーザーに表示されるため、修正が必要なコントロールにすぐにジャンプできます。これはビュー パーツで行われますが、ビューを交換するためにプレゼンターで検証を行う必要があるため、実際には間違っています。

プレゼンターでこの検証を行う際の問題は、提供された値が間違っているかどうかをチェックするだけでなく、テキストボックスを有効にするラジオボタンがチェックされているかどうかもチェックする必要があることです。

UIの変更を反映しており、プレゼンターに表示されるため、プレゼンターでBindingSourceを使用することを考えていました。しかし、これが正しい方法であるかどうかはわかりません(そして、それはちょっと醜いと思います)?

ところで、検証はデータベースに書き込む前に行われるだけではありません。ユーザーがフォームで作業している間にすでに行われています。

誰かがこれを行う良い方法を考えることができますか?

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

c# - MVPメソッドとメンバーを描写するためにどのルールを使用しますか

MVPパターンを使用するとき、ViewクラスまたはPresenterクラスにうまく収まらないように見えるメソッドやメンバーに出くわすことがよくあります...私の質問は、どの機能がどのクラスにあるかを決定するためにどのルールを使用するかです。私はMVPに比較的慣れていないので、ユーモアを交えてください。

TIA。

0 投票する
5 に答える
212 参照

sorting - ビューまたはモデルでフィルター/ソートしますか?

データオブジェクトのリストとそれぞれを表す視覚的なものがある場合、並べ替え/フィルタリングロジックをどこにコーディングしますか?なんで?

編集:これまでのところすべての答えは良いですが、私は別の制約を追加するのを忘れました。毎回ビューを再構築したくない場合はどうなりますか?

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 回発生します。ここに私が持っているものがあります: