問題タブ [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.
.net - MVP イベントまたはプロパティ
WindowsフォームアプリでMVPパターンを使用しています。ビューのラジオボタンを変更する必要があります。ビューでブール型のプロパティを公開することでこれを行うことができますが、代わりにイベントを使用してビューを操作する必要がありますか?
web-applications - MVP - プレゼンターはセッションを使用する必要がありますか?
Web ページに Model-View-Presenter パターンを使用しています。プレゼンターがセッションを認識している必要がありますか、それともビューのみが認識している必要がありますか?
私が得ているのは、セッションのような概念はビューのアーキテクチャに非常に関連しているため、ビューでの使用に制限する必要があるということですか? そうしないと、別のアーキテクチャの同様のページでプレゼンターを再利用したい場合にどうなりますか (そうする予定がない限り、心配する必要はありませんか)?
c# - MEF、ブランチが要求されたときにインポートのツリーを作成する
MEFを使用して、次のことを行いたいです。
私はWPFシェルを持っています。別の DLL から、MVP トライアドのビューでもある UserControl をインポートしたいシェルに。MVP トライアドが機能する方法は、プレゼンターに、IModel と IView の両方を取り、それらを結び付けるコンストラクターがあることです。したがって、これが機能するためには、MEF が次のことを行う必要があります。
- IView 実装を作成する
- IModel 実装を作成する
- Presenter を作成し、IModel と IView をそのコンストラクターに渡します
- IView 実装が表示されたらシェルにインポートする
代わりに、タイプ Exporting IView のみを作成し、それをシェルに渡し、基本的に手順 2 と 3 をスキップします。考えてみるとかなり論理的ですが、どのように MEF にトライアド全体を作成するように指示できますか? IView をお願いします。Shell .dll の他の場所で Presenter やモデルを参照する必要はないので、それを Import として配置することもオプションではありません (とにかく、かなり醜いでしょう :)。
最新の MEF (Preview 2 Refresh) を使用しています。誰?
==アップデート==
私は解決策を見つけ、それについてここでブログを書きました:
Krzysztof Koźmic のブログ - MEF で依存関係のツリーを作成する
しかし、誰かがより良い解決策を思いついたなら、私はもっとうれしいです.**
repeater - モデル ビューのプレゼンターとリピーター
Supervising Controller パターン (Model View Presenter) を使用してアプリケーションを構築していますが、問題に直面しています。私のページには、渡したコレクションの各アイテムを表示するリピーター コントロールがあります。リピート項目には、ユーザーが特定の値を選択できるようにする 2 つのドロップダウン リストが含まれています。次のボタンをクリックすると、コントローラーがそれらの値を取得するようにします。
どうすればクリーンな方法でそれを行うことができますか?
.net - WindowsフォームのMVPとIOC?
いくつかのフォームで、WindowsフォームアプリでMVPパターンを使い始めました。これらのフォームはプレゼンターを作成し、プレゼンターに戻ります。
私は特定のフレームワークを使用していませんが、フォームは他のフォームを開くことができます。
プレゼンターが(ビューを介して)他のフォームを開くことができるように、この設定を変更する必要がありますか?これを行うにはIOCフレームワークを使用する必要があると思いますか?
これにより、UIで関連するフォームを開くためのロジックを配置する手間が省け、フォーム内からプレゼンターへの参照を削除できるようになります。
c# - モデルはどこへ行く?
次のプロジェクトを含むVSソリューションがあります。
-GUI
-DataAccess
-BusinessLogic
-BusinessObjects
しかし、メイン モデル クラスはどこにあるのでしょうか。これは通常、データ アクセス レイヤーと仮想グリッドを使用してモデル内のデータを表示する GUI からの結果である一連のオブジェクトのキャッシュです。質問は、MVC または MVP を使用しても同じです。
考え?
winforms - MVC でオブジェクトの参照をコントローラーに渡すにはどうすればよいですか?
WinForm アプリで MVC/MVP スタイル パターンの使用を改善しようとしていますが、経験豊富な誰かが私を助けてくれるかもしれないことに苦労しています。
以下は私の基本的なプロジェクトのレイアウトです:
このクラスG2.cs
は、さまざまなスレッドの実行を処理し、それらのスレッドに関連する Start/Stop およびその他のさまざまなメソッドを含みます。それは私の「メイン」クラスだと思います。私のアプリケーションのメインループも含まれています。
私の GUI は、これまでのところ 3 つのフォームと、それぞれに関連付けられたコントローラーで構成されています。には、クラスのメソッドと将来のフォームMainForm
を呼び出す必要がある開始/停止ボタンがあります。G2
G2 クラスの参照を、それを必要とするすべてのビューのコントローラーに渡す正しい方法は何でしょうか? フォームを作成するときにフォームへの参照を渡す必要がありG2
、フォームはそれをコントローラーに渡しますか、それとも...それは物事を処理する良い方法ではありませんか?
また、コントローラーのインスタンスを作成するのはビューの責任であり、コントローラーを「所有」しているという点で正しいですか?
wpf - Model-View-Presenter および Modal ダイアログ ボックス.... 方法
私は WPF で MVP/MV-VM を実装していますが、これまでのところうまくいっています。ただし、このモデルがモーダル ダイアログ ボックスの実装をどのようにサポートしているかはわかりません。私は Crack.NET ( http://www.codeplex.com/cracknetproject ) から自分の作品を派生させて、この作業がどのように機能するかを学びました。
メニューがある ShellView ビュー (単なる XAML) があります。このメニューは、「EditPreferences」という ShellModelView のコマンドにバインドされます。
ShellModelView は EditPreferences の ICommand を実装します。ここでは、ユーザーがアプリケーションの設定を編集できるようにするダイアログ ボックスを表示します。
ここにいくつかの問題があります: 1. ShellModelView には、ダイアログを適切に親にするための ShellView への参照がありません。ShellModelView は ShellView の DataContext ですが、セットアップされた後方参照が表示されません。2. いずれにせよ、ShellModelView は明示的な UI をロードするべきではありません。では、ここでの適切な対話モデルは何でしょうか? 3. ロジックとビューも適切に分離されるように、PreferencesDialog を構築するにはどうすればよいですか? PreferencesDialog 自体は Window である必要があるため、その上で ShowDialog を呼び出すことができますが、これはインスタンス化するために Window (View など) への参照が必要であることを意味します。理想的には、PreferenceDialog 内でビューをインスタンス化せずに (おそらくモック ビューを使用して) コード/検証を単体テストできるはずです。
c# - MVC の多くのサービスにより、コントローラー コンストラクターが非常に大きくなります。
モデルクラスのコンストラクターには、サービスごとに1つずつ、約20の異なるパラメーターがありますか? これは正常なのか、それとも何かがおかしいという兆候なのか.
asp.net - ASP.NET MVP - ユーザー コントロールの利用
ASP.NET MVP (Supervisory Controller の試行) と単体テスト (決して遅いよりはましです!) を使用して最初のアプリを作成していますが、少しジレンマに陥りました。私は 3 つのユーザー コントロールを作成しました。これらはすべてテストされ、インターフェイスが設定されており、Presenter が牽引されています。これら 3 つのユーザー コントロールを使用するページにたどり着きましたが、次の問題が発生しました。
ユーザー コントロール 1 は DateSelector です。これは、他のいくつかのボタン/リストを備えたカレンダー コントロールです。本当にエキサイティングなことは何もありません。
ユーザー コントロール 2 は DailyList です。それが何であるかを推測してください。とにかく、選択/削除などを行うことができます。グリッドビューから項目を選択する場合は、ユーザー コントロール 3 を設定する必要があります。
ユーザー コントロール 3 は ItemDetail です。ここに、DropDownLists、TextBoxes などがあります... 他のものへの依存関係が存在するものもあります (DropDown one でオプションを選択すると、DropDown 2 のオプションに影響します)。
DateSelector から新しい Date を選択した場合、DateSelector Presenter からイベントを発生させますか? データを再バインドできるように、新しい日付が選択されたことを他のユーザー コントロールに知らせる必要がありますが、どうすればよいでしょうか。ページのプレゼンターを使用してユーザー コントロール ビューのプレゼンターをサブスクライブすると、デメテルの法則 (ビューを通じてプレゼンターをプロパティとして公開する) を露骨に破ることになりませんか? ページのプレゼンターをページのすべてを知っているコントローラーとして使用してはいけませんか? 足りないものはありますか?
私がこれまでに読んだものはすべて、「ユーザー コントロールを使用しても MVP は素晴らしい」と述べていますが、例となると、ユーザー コントロールの使用は都合よく忘れられています。MVC の方が、この考え方の私のパターンにより近いように思えますが、現在、MVC はオプションではありません。ここでどんな助けも素晴らしいでしょう。前もって感謝します。