2012-03-28 7 views
0

私は既存のC++/CLIアプリケーションをC#/ WPFに移行しています。最初のアプリケーションが書かれたときには、設計はまったく行われませんでした。アプリケーションには、1つまたは複数の画像ファイル(一度に1つの画像しか表示されません)を読み込む機能があります。また、顕微鏡に接続して画像をリアルタイムで表示および保存するオプションもあります(同じ画像ボックスロードされたものとして)。次に、さまざまな設定のダイアログがたくさんあります。メイン・ビューには、現在ロードされているイメージ・ファイルと選択した設定に基づいて、さまざまな種類の計算を行うためのボタンがあります。ダイアログボックス付きのMVVM WPFサイエンティフィックアプリケーション

あり、より多くの機能を持っている別のウィンドウにロードされた画像を送信するためのボタンがある - ロードされたファイルから映画を作る、統計などを計算し

私はC#/ WPFの世界にかなり新しいんだけど、作りたいです素晴らしいデザイン。私はいくつかの調査を行い、MVVMはWPFで主に使用されているパターンのようです。今私はPRISMについて読んでいます。私は多かれ少なかれMVVMで何が起こっているのか理解していますが、私の状況に論理をまだ適用することはできません。私はMVCに固執しなければならないのでしょうか?しかし、WPFでそれを使う方法はたくさんありません...私はどこにダイアログを置くかについての例を見つけましたが、計算をどこに置くべきかはわかりません... look彼らはM/MV/Vのどちらにも属さないのと同じように。また、多くのViewModelに関連付けられたモデルを1つだけ持つことができるかどうかはわかりません。

答えて

1

まず、これはよくある誤解です。

MVVMはMVCと同じようにパターンです。 MVVMを手助けする様々なフレームワークがあります。 MVVMLight、Caliburnはいくつかの例です。私はあなたがMVVMが何であるかを学び、異なる実装を探す必要があると思います。個人的に私は自分自身の基本View Modelクラスを書いており、それはMVVMのすべてです

PRISMはフレームワークであり、MVVMとはまったく関係ありません。それはINotifyPropertyChangedの実装を提供しますが、それはそれについてです。

PRISMは大きなフレームワークであり、学習に時間がかかります。今夜はあなたが使うことができるものではありません。しかし、それはあなたが提供するすべてを使う必要はなく、必要なものだけを使うことができる「ラ・カート」です。

は、より多くの私はPRISMはかなり重いUIを持つ大企業のアプリケーションを開発しながら、あなたが持っているだろうすべての問題を解決することを実現し、より学びます。私にとって、学習に投資した時間は間違いなく払い戻されました。

は、それはあなたが大きなアプリケーションをビルドする際に必要となる地域、モジュール性、メッセージング、IoCのや他のものを提供します。より大きな画像を見た後、MVVMは小さくて簡単に見えます。

+0

ありがとう。私はおそらく私の質問を正しく言わなかった。私は、MVVMがパターンであることを理解しています、私はこれが私が使用すべきパターンであることを確信していませんでした。 MVC、C++、MVVM、C#、WPFに慣れています。私はPRISMの代わりにCaliburn.Microを使い始めました。そして、私が持っていた質問は、アプリケーションロジックがModelまたはViewModelに属していないことをどこかに読んだので、私が計算を置くべき場所についてでした... – user1298416