【问题标题】:ASP.net MVC or Knockout.JSASP.net MVC 或 Knockout.JS
【发布时间】:2012-06-19 09:05:54
【问题描述】:

这可能是一个新手问题。我最初在 MVVM 和 WPF 中编写了一个原型。客户想要使用 MVC 和 jQuery。没什么大不了。我在VIEWMODEL中写了很多业务逻辑。

如果我使用 knockout.js,是否只是使用 javascript 库和创建新绑定的问题?

任何建议都会有所帮助。

【问题讨论】:

  • 您的 ViewModel 应该是没有业务逻辑的哑对象,只有属性和验证注释。业务逻辑应该包含在它自己的层中。
  • @AlfalfaStrange 我想我认为模型是愚蠢的,没有业务长且“只有注释”,而视图模型是视图的粘合剂。
  • 实际上,首选的方法与您所做的相反。 ViewModel 仅由 UI 使用,并且应该反映 UI 的数据需求。 UI 和 ViewModel 不应包含业务逻辑。您的业​​务逻辑层应该包含逻辑。控制器充当将实体数据(模型)传递给 ViewModel 和 UI 的粘合剂。数据访问也是如此,UI、ViewModel 或 BLL 不应包含数据访问代码。您所拥有的与良好设计和可维护性的模式背道而驰。现在很明显,你必须改变并且不能轻易改变
  • @kenny 不,模特不应该是哑巴。它被认为是一种反模式:martinfowler.com/bliki/AnemicDomainModel.html
  • @Axwack,也请阅读FAQ如何接受stackoverflow中的问题meta.stackexchange.com/q/5234/187724

标签: asp.net-mvc mvvm knockout.js


【解决方案1】:

两者都是完全不同的技术,用于不同的目的。 Knockout.JS 是一种使用 mvvm 模式的强大客户端脚本,而 MVC 是一种架构模式,用于构建真正的无状态 Web 应用程序,具有根据需要进行调整的能力。

可能存在一种误解,即 MVC 模式仅适用于 ASP.NET MVC 框架。其他网络编程语言也使用它或有可能实现这种模式。但是,在 .NET 中,它有一些非常强大的扩展和一个活跃的社区,可以快速学习并无所畏惧地练习。

【讨论】:

【解决方案2】:

为什么不同时使用?我正在使用淘汰赛和 mvvm

【讨论】:

  • 也许您的意思是您使用的是淘汰赛和 MVC?
猜你喜欢
  • 1970-01-01
  • 2012-10-11
  • 2013-05-25
  • 2014-03-15
  • 1970-01-01
  • 2012-11-13
  • 2011-05-07
  • 2012-06-18
相关资源
最近更新 更多