-1

MVVM が優れたシステム設計パターンとして高く評価されていることを見て、私も MVVM に飛び込んでみようと思いました。

質問を始める前に、私自身について簡単に説明します。

私は ASP.NET Webforms で数年間開発を行ってきました。また、ASP.NET MVC でかなりの開発を行いましたが、これには非常に満足しています。

現在、ASP.NET MVC 3 を使用して記述された多数の「バックボーン」アプリケーションがあり、これらをカスタマイズして、クライアントにアプローチするたびに販売しています。これらのアプリケーションはすべて内部使用を目的としているため、プラグインはそれほど問題にはなりません。

開発の本当の問題は、複雑なビジネス ルールを持つ大規模なビジネス アプリケーションの場合、ASP.NET MVC が速度を低下させる傾向があることです (jQuery / javascript の記述 > サーバー側の処理 > 結果を返す、jQuery を使用して通知する > ビューを変更する、これに沿った何か)。ライン)。

それから、配信までの時間と応答性を改善するのに役立つ答えを探し始めました (まあ、JavaScript が私たちを殺してしまう可能性があることは誰もが知っています)。そして検索の結果、Silverlight にたどり着きました (私たちには変更する時間があります。心配する必要はありません)。 )。

だからここに質問があります:

  1. オンラインで多数の Silverlight MVVM サンプルを見つけましたが、それらはすべて、1 つのデータベース テーブルと対話するだけの単純なアプリケーションを示しています。MVVM パターンは大規模なアプリケーションに適していますか?
  2. MVC では、UnitOfWork の実装をコントローラーに渡すために、Ninject からの依存性注入に慣れています。私がオンラインで見つけたすべてのサンプルで、いずれの形式の DI も使用されていません。それは本当に不要ですか?MVVM の考え方は分離することなので、ViewModel を Model から分離してみませんか?
  3. Jeremy Likness が発行した Designing Silverlight Business Applications という本を読みました。彼は MEF を使用してデカップリングを行いましたが、これは私たちのアプリケーションにはあまり適していないと思います。「ホットプラグ」を行う必要はありません。これについてどう思いますか?
  4. MVVM は、コマンド、データ バインディング、コード ビハインドなしに関するものです。コマンドに公開されていない UI を操作したい場合はどうすればよいですか? (これについてはよくわかりませんが、ListView OnSelectionChange だと思いますか?)
4

2 に答える 2

2

前の回答に追加するには:

  1. 私たちは、大規模な全社規模の Silverlight プラットフォームと、MVVM を使用した一連のアプリケーションを開発しています。かなりうまくいっているようです。

  2. DIを多用しています。私たちのシステムは Prism の上に構築されています。Prism には、MVVM での DI の使用を示すさまざまな複雑さのサンプル アプリケーションが多数含まれています。

  3. Unity を IoC コンテナーとして使用します。Prism には、MEF と Unity の両方のガイダンスが含まれています。Unity は、より伝統的な IoC アプローチのようです。

  4. ほとんどの場合、バインディングとコマンドを使用することでニーズが満たされました。その他については、式トリガーとアクションを使用します。必要に応じて、カスタム トリガー/アクションを作成することもできます。

于 2012-08-25T04:10:43.043 に答える
1

私はあなたのすべての答え(MEFを使用したことがない)に対する答えはありませんが、私の経験をあなたに伝えることができます:

1-私は非常に大規模なSilverlightアプリケーションの開発に携わっており、MVVMは保守可能なアプリケーションに最適です。アプリケーションのサイズが原因で発生した大きな問題は、MVVMではなくSilverlightが原因でした8-)

2-あまり使用していませんが、多くの場合便利です。MVVM Light ToolkitのようなSilverlightでDIを使用するためのツールキットがいくつかあります:http: //compiledexperience.com/blog/posts/blendable-mvvm-dependency-injection-and-unit-testing

4- UI間の相互作用には、Mediatorパターンを使用できます。同じMVVMLightToolkitには、メッセージをサブスクライブ、送受信し、分離されたすべてのレイヤーを維持するためのメッセンジャーがあります。

これがお役に立てば幸いです;-)

于 2012-08-24T11:15:12.700 に答える