MVVM が優れたシステム設計パターンとして高く評価されていることを見て、私も MVVM に飛び込んでみようと思いました。
質問を始める前に、私自身について簡単に説明します。
私は ASP.NET Webforms で数年間開発を行ってきました。また、ASP.NET MVC でかなりの開発を行いましたが、これには非常に満足しています。
現在、ASP.NET MVC 3 を使用して記述された多数の「バックボーン」アプリケーションがあり、これらをカスタマイズして、クライアントにアプローチするたびに販売しています。これらのアプリケーションはすべて内部使用を目的としているため、プラグインはそれほど問題にはなりません。
開発の本当の問題は、複雑なビジネス ルールを持つ大規模なビジネス アプリケーションの場合、ASP.NET MVC が速度を低下させる傾向があることです (jQuery / javascript の記述 > サーバー側の処理 > 結果を返す、jQuery を使用して通知する > ビューを変更する、これに沿った何か)。ライン)。
それから、配信までの時間と応答性を改善するのに役立つ答えを探し始めました (まあ、JavaScript が私たちを殺してしまう可能性があることは誰もが知っています)。そして検索の結果、Silverlight にたどり着きました (私たちには変更する時間があります。心配する必要はありません)。 )。
だからここに質問があります:
- オンラインで多数の Silverlight MVVM サンプルを見つけましたが、それらはすべて、1 つのデータベース テーブルと対話するだけの単純なアプリケーションを示しています。MVVM パターンは大規模なアプリケーションに適していますか?
- MVC では、UnitOfWork の実装をコントローラーに渡すために、Ninject からの依存性注入に慣れています。私がオンラインで見つけたすべてのサンプルで、いずれの形式の DI も使用されていません。それは本当に不要ですか?MVVM の考え方は分離することなので、ViewModel を Model から分離してみませんか?
- Jeremy Likness が発行した Designing Silverlight Business Applications という本を読みました。彼は MEF を使用してデカップリングを行いましたが、これは私たちのアプリケーションにはあまり適していないと思います。「ホットプラグ」を行う必要はありません。これについてどう思いますか?
- MVVM は、コマンド、データ バインディング、コード ビハインドなしに関するものです。コマンドに公開されていない UI を操作したい場合はどうすればよいですか? (これについてはよくわかりませんが、ListView OnSelectionChange だと思いますか?)