Javascript (WinJS) と HTML を使用して単純な Windows 8 LOB アプリケーションを構築しています。アプリケーションでは、サードパーティの依存関係を持ちたくありません。アプリケーションの構造を決定するとき、どのパターンがテクノロジと WinJS フレームワークに最も適しているかを議論しています。
これらのパターンを使用することの主な長所/短所に関する私の最初の考えは次のとおりです。
MVVM
- 長所: ViewModel でビジネス ロジックを明確に分離し、BL の (単体) テストを容易にする
- 短所: WinJS には、すぐに使用できる 1 回限りのデータバインディングと一方向のデータバインディングしか実装されていません。双方向のデータバインディングとコマンド (イベントへのバインディング) は実装されていません。これらは独自の方法で実装する必要があります (ビューでほとんど宣言的な構文に固執したい場合は、注意が必要です)。
MVP
- 長所: プレゼンターには、ビュー ロジックと共にすべてのビジネス ロジックが含まれており、それ自体で (単体) テストできます。このアプローチでは、データ バインディングは必要ありません。
- 短所: ビューとプレゼンターのコードは、ステータスの変更を相互に通知する必要があるため、MVVM の場合よりも冗長になります。ビューはイベントをプレゼンターに転送する必要があり、プレゼンターは状態が変化したときにビューを更新する必要があります。
MVC
- 長所: ビューは非常に軽量で、このアプローチでもデータ バインディングは必要ありません。
- 短所: コントローラーは、入力イベント (キーボードやマウスのイベントなど) を登録して処理するだけでなく、ビジネス ロジックも含める必要があります。MVVM の ViewModel および MVP の Presenter と比較すると、このクラスは最も肥大化し、(単体) テストがやや難しくなります。
これらに基づいて、このアプリを構築するために MVP を選択します。あなたはこれに賛成できますか、それとも反対できますか?