Web 上に存在する MVC アプリケーションでは、ビューとコントローラーの間に線を引くのは簡単です。ビューはユーザーにデータを表示しますが、コントローラーは入力を収集し、提供された入力に基づいてユーザーをビューにルーティングします。しかし、ステートフル (デスクトップなど) アプリケーションでは、操作間の境界が Web アプリケーションほど明確ではないため、どこに線を引くべきかを知るのは少し難しくなります。では、どこに線を引けばよいのでしょうか。
たとえば、ユーザーがアイテムをグリッドに配置できるビューをアプリケーションに持っています。現在、ビュー自体に「アイテムをグリッドに配置する」コードがあります (グリッド モデルにアクセスして実際の配置を行います)。しかし、それをコントローラーに入れ、必要な情報をビューからコントローラーに渡すこともできます。どちらも明確な選択ではないようです。コードをビューに配置すると、最終的にビューが肥大化します。アイテムを配置するだけでなく、ユーザーが実行できる操作が多数あるためです。しかし、これをコントローラに配置すると、追加レベルの間接化のように見え、コードを追跡するのが難しくなります。
それとも、私はこれについてすべて間違っていますか?これは WinForms アプリです。私の「ビュー」は実際にはフォームであり、フォームはその性質上、入力を受け取り、情報を表示することができます。では、区別は無意味ですか?または、ビューをフォームから分離する必要がありますか? それとも、MVC パターンは WinForms と完全に互換性がないのでしょうか?