none
WinFormのデザインパターン RRS feed

  • 質問

  • WPFではMVVMが主流?のようですが、WinFormではどのデザインパターンが主流なのでしょうか?

    業務用として個人的にはModel-View-Presenterがよいかと思いましたが(コードビハインドからソースがトレースできるため初心者向き?)、サンプルがあまり無く難儀しております。

    各デザインパターンについてのメリット・デメリット、サンプルのURL等をご教授いただけると助かります。

    2017年4月9日 10:31

回答

  • Windows Formでは、WPFのように主流と言われるデザインパターンは無いように思われます。おそらく、コードビハインドそのものがデザインパターンになっているからではないかと思います。WPFでもWindows Formのようにコードビハインドを使っても書けますが、バインドという強力な機能を生かせきれないので、コードビハインドに代わるMVVMが主流になっているのだろうと思います。
    言い方を変えれば、Windows FormにはWPFのような強力なバインドがないため、コードビハインドを使うというデザインパターンのままなのでしょう。

    とはいうものの、DTOとUIオブジェクトを使ったパターンは個人的にはお勧めだと思います。以下を参考にしてみて下さい。

    Part 2. スマートクライアントにおける単体入力データ検証
    https://blogs.msdn.microsoft.com/nakama/2009/02/26/part-2-2/


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2017年4月10日 1:14
    モデレータ
  • trapemiya さんと基本的に考えは同じですが、Windows Forms においては、.NET 以前の Visual Basic より代々踏襲してきたイベンドドリブンパターンこそ主流なのだと思います。

    イベント駆動型プログラミング



    本フォーラムは、ユーザー(開発者)同士で情報交換を行うためのコミュニティです。初めて利用される方は、以下のアナウンスをご覧ください。 https://social.msdn.microsoft.com/Forums/ja-JP/ca9ecfb7-4407-4fcb-b8bd-207d68257e68?

    2017年4月10日 2:13
    モデレータ

すべての返信

  • Windows Formでは、WPFのように主流と言われるデザインパターンは無いように思われます。おそらく、コードビハインドそのものがデザインパターンになっているからではないかと思います。WPFでもWindows Formのようにコードビハインドを使っても書けますが、バインドという強力な機能を生かせきれないので、コードビハインドに代わるMVVMが主流になっているのだろうと思います。
    言い方を変えれば、Windows FormにはWPFのような強力なバインドがないため、コードビハインドを使うというデザインパターンのままなのでしょう。

    とはいうものの、DTOとUIオブジェクトを使ったパターンは個人的にはお勧めだと思います。以下を参考にしてみて下さい。

    Part 2. スマートクライアントにおける単体入力データ検証
    https://blogs.msdn.microsoft.com/nakama/2009/02/26/part-2-2/


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2017年4月10日 1:14
    モデレータ
  • trapemiya さんと基本的に考えは同じですが、Windows Forms においては、.NET 以前の Visual Basic より代々踏襲してきたイベンドドリブンパターンこそ主流なのだと思います。

    イベント駆動型プログラミング



    本フォーラムは、ユーザー(開発者)同士で情報交換を行うためのコミュニティです。初めて利用される方は、以下のアナウンスをご覧ください。 https://social.msdn.microsoft.com/Forums/ja-JP/ca9ecfb7-4407-4fcb-b8bd-207d68257e68?

    2017年4月10日 2:13
    モデレータ
  • ご回答ありがとうございます。やはりWinFormではあまりデザインパターンは意識せずコードビハインドで実装するほうが万人向けということでしょうか。

    掲示頂きましたURLを拝見しましたが、シンプルでわかりやすく作れそうな感じがしますので、今後の開発の参考にさせていただきます。

    2017年4月10日 14:00
  • ご回答ありがとうございます。trapemiya様から参考サイトを提示頂けましたので、コードビハインドでシンプルなデザインパターンを自身で模索したいと思います。

    2017年4月10日 14:03