4

私はかなりのサイズのwinformプロジェクトを開発するつもりです。ORMツールとしてEntityFrameworkを使用することを計画しています。現在、これらすべてを実装するためのアーキテクチャ(MVC / MVP / MVVMなど)を探しています。まず、Windowsフォームのn層アーキテクチャにはいくつかの選択肢があり、EFが市場に出る前に私が入手したもののほとんどは書かれています。codeplex( http://rocketframework.codeplex.com)からRocketFrameworkというフレームワークを入手しました

私はそれを見回しましたが、それが幅広い要件に対応できるかどうかについては懐疑的です。誰かがすでにホイールをすでに発見している場合は、私を案内してください。また、EF4より前の既存のアーキテクチャがそれに対応できる場合は、試してみることができます。アイデアをお願いします!

4

3 に答える 3

6

あなたの選択は、使用しているテクノロジーに影響されます。一部のテクノロジは、特定のパターンを自然に実行できるようにします。したがって、あなた (およびすべての開発者) がこれを明示的に設計して気にかけなければ、最も自然に感じられるものになってしまいます。WinForms では、最も自然なパターンは MVP です。デザイナーでレイアウトできるビューがあり、コード ビハインド ファイルがプレゼンターになり、基本的にビューとプレゼンターを 1 つのクラスに結合します (とにかく 1:1 の関係です)。一方、Web アプリケーションの場合、Web サーバーは既にコントローラーとして機能しているため、MVC は自然なパターンです。最後に、MVVM は WPF で非常によくサポートされていますが、コード ビハインド ファイルを頻繁に使用し始めると、そこでも MVP に移行する可能性があります。ただし、代わりに DataBinding に依存すると、コード ビハインド ファイルの使用を忘れる可能性があります。ここに。もちろん、WinForms で MVVM を実現できます。良い例については、このリンクを読んでください。

実際の G​​UI なしでビュー モデル (およびビューの動作) をテストできるため、テスト容易性の観点からは、MVVM が最適なパターンとして認識されます。ただし、MVP は理解しやすく、実現しやすく、複雑なバインディングを必要とせず、何が起こっているかをほとんど制御できます (イベントの抑制など)。

于 2011-09-30T09:11:25.157 に答える
5

WinForms アプリケーションは、ほとんどが MVP パターンで開発されています。元の MVC はあまり使用されず、Web アプリケーション用の Model-2 バリアント (ASP.NET MVC など) のみが使用されます。MVVM は、主に WPF と Silverlight で使用されます。

これらのパターンはどちらも、エンティティ フレームワークの使用方法には影響しません。データ アクセスに関連するパターンではありません。

于 2011-09-30T08:48:18.403 に答える
2

多くの研究開発と広範な研究の後、最終的にここに落ち着きました: https://github.com/geersch/ModelViewPresenter Christophe Geers によって書かれた MVP アーキテクチャです。それは私が必要とするすべてをサポートしています-winformのアーキテクチャ、Web移植性のサポート、Entity Framework。本当に素敵で使いやすいです。

追加資料: http://www.cerquit.com/blogs/post/MVP-Part-I-e28093-Building-it-from-Scratch.aspx

于 2011-10-04T18:56:11.913 に答える