3

Prism と GalaSoft ツールキットを使用する WPF アプリのサポートを開始するタスクが与えられました。両方のフレームワークのテクノロジを確認したところ、Prism は MVVM を容易にするフレームワークと、モジュールの統合を可能にするコンテナーを提供するため、アプリのデザイナーは冗長であることがわかりました。私の見方では、各モジュールは独自の Model-View-ViewModel を実装できるということです。Prism は、モジュール間の通信とナビゲーションに必要なすべてを提供できたはずです。また、アプリが使用している GalaSoft のバージョンが、ツールキットの公式ダウンロード ページに存在しないことにも気付きました。このバージョンは、公式のダウンロード バージョンから変更されたものでしょうか?

WPF テクノロジを扱うのはこれが初めてです。つまり、初心者です。この問題に関するコメントと、この実装にアプローチするための最良の方法に関する推奨事項をいただければ幸いです。ありがとう!

4

2 に答える 2

1

それらはある意味で冗長です: PrismはMVVMLightにあるほとんどすべてを提供します。

Prism にない MVVMLight 固有の機能がいくつかあると確信しているからです。Prism ははるかに大きく、MVVM アプリケーションを構築するための完全なフレームワークとアプローチを提供しますが、MVVMLight は MVVM の問題を簡単に処理するためのツール (アーキテクチャを形成する必要はありません) を提供するだけです。

1 つのアプリケーションに両方が必要になるとは思いませんが、MVVMLight の特定の機能を使用しているのかもしれません。また、コードが一貫性​​を念頭に置いて構築されている場合、それは明らかに悪いことではありません。たとえば、すべての ViewModel は Prism ベースを使用しますが、メッセージング (メディエーター パターン) には MVVMLight を使用します。多くの人が Prism の EventAggregator よりも MVVMLight Messenger を好むことを知っているからです。しかし、おそらくその背後にはもっと良い理由があります。これは単なる例です。あなたのコードはわかりません。

とにかく、そのうちの1つだけを使用する方がきれいだと思います。このアプリケーションが Prism の機能を必要とする場合は、それのみを使用しますが、これが軽量のアプリである場合は、MVVMLight をお勧めします (したがって、このライブラリの名前:))。

MVVMLight のバージョンについて: お使いのバージョンが古いだけかもしれませんが、このアプリの作成者に問い合わせてください。

于 2012-10-25T15:51:50.810 に答える
0

二人は目的が違う。Prism は複合アプリケーションを容易にすることを目的としていますが、MVVMLight は必要最小限の MVVM サポートを提供することを目的としています。Prismには必然的に独自のMVVMサポートが含まれているため、両方を使用することは冗長であることに同意します. また、非複合アプリケーションで Prism を使用するのはおそらくやり過ぎだと付け加えておきます。

于 2012-10-25T15:51:15.737 に答える