看到 MVVM 如何被高度视为一种良好的系统设计模式,我想我可能会跳上去尝试一下 MVVM。
在我开始提问之前,请先介绍一下我自己的背景:
我已经使用 ASP.NET Webforms 进行了几年的开发。我还在 ASP.NET MVC 中进行了相当多的开发,对此我很满意。
目前,我们有许多使用 ASP.NET MVC 3 编写的“骨干”应用程序,我们会在与我们接洽时对其进行定制并出售给我们的客户。这些应用程序都是供内部使用的,因此插件不会有太大问题。
开发的真正问题在于,对于具有复杂业务规则的大型业务应用程序,ASP.NET MVC 往往会拖慢我们的速度(编写 jQuery / javascript > 服务器端处理 > 返回结果,使用 jQuery 通知 > 更改视图,沿着这个线)。
然后我开始寻找可以帮助我们提高交付时间和响应能力的答案(好吧,我们都知道 JavaScript 是如何杀死我们的),我的搜索把我带到了 Silverlight(我们有时间改变,不用担心) )。
那么问题来了:
- 我在网上遇到过许多 Silverlight MVVM 示例,但它们都展示了应用程序,就像只与一个数据库表进行交互一样简单。MVVM 模式是否非常适合大型应用程序?
- 在 MVC 中,我习惯于 Ninject 的依赖注入将 UnitOfWork 的实现传递给我的控制器。在我在网上找到的所有示例中,没有一个使用任何形式的 DI。真的没有必要吗?既然 MVVM 的思想是解耦,那为什么不把 ViewModel 和 Model 也解耦呢?
- 我阅读了 Jeremy Likness 出版的一本书,名为《设计 Silverlight 业务应用程序》。他使用 MEF 进行解耦,我认为这并不适合我们的应用程序。我们真的不需要做“热插拔”。你对此有何看法?
- MVVM 是关于命令、数据绑定和无代码隐藏的全部内容。如果我想与不暴露给命令的 UI 交互怎么办?(我不太确定,我猜是 ListView OnSelectionChange?)