2014-01-07 24 views
16

我在过去1年的Asp.net MVC中工作,但我从未使用AngularJs,BackboneJs或KnockoutJs。现在我想在我的项目中使用它,但我有点迷惑MVC,这是一个最好的。我读过的某个地方是AngularJs具有最好的性能,但主要与MVVM框架一起使用,因此可以为我提供适当的指导,使用Asp.net MVC,其中js最好是AngularJs或BackboneJs或KnockoutJs?对于asp.net mvc哪些是最好的AngularJs或BackboneJs或KnockOutJs?

在此先感谢。

+3

'4.9k followers' Angular.JS :) –

+0

@Murali感谢您的指导,但您能否指定原因。 – Dilip0165

+2

不要忘记Durandal http://durandaljs.com/我个人使用AngularJs与Web API,迄今为止很棒。 – Beyers

回答

12

这取决于您的应用程序的性质。由于你没有详细描述它,所以这是一个不可能回答的问题。 I 找到Backbone是最简单的,但我整天都在Angular工作。 在我看来,性能要比编码器更符合框架。

你在做重型DOM操作吗?我会使用jQuery和主干

非常数据驱动的应用程序?角度与它很好的数据绑定

游戏编程?没有,直接到画布上,也许是游戏引擎 - Source

而且,看看https://stackoverflow.com/questions/5112899/knockout-js-vs-backbone-js

您可以检查以下源。这真的很完整:

http://www.infoq.com/research/top-javascript-mvc-frameworks

就个人而言,我会去角的,只是因为它的性能,但也有很多的原因......

+0

感谢您的快速回答。只有一件事让我知道AngularJs最适合MVC或MVVM? – Dilip0165

+2

Angular js适用于MVC和MVVM检查,尽管它最适合MVVM – Nilesh

+0

@Nilesh页面未找到:http://stackoverflow.com/questions/5112899/knockout-js-vs-backbone-js –

7

我没有尝试过的淘汰赛或骨干。使用Angular我已经使用ASP.NET MVC。我个人不喜欢使用MVC视图。由于Angular需要POJO(普通的旧JavaScript对象),所以我改为Web Api和Angular。说实话我对Angular非常满意,原因如下:

  • DOM manplaplations在他们所属的地方完成。
  • 双向绑定设计单元测试
  • 服务是属于他们的地方
  • 与HTML5设计考虑
  • 能够创建HTML标记,以满足业务需求(指令)和更多
+0

我会在你的意见中保留你的建议。谢谢 – Dilip0165

+0

mvc视图不能使用角js路由权? –

9

我在工作中使用Knockout与ASP.NET MVC/Web API,但我在家里玩过Angular,并且诚实地喜欢这一点。请记住,Knockout解决的问题比Angular小得多,后者是一个完整的SPA框架(包含服务,HTML指令等)。为了将苹果与苹果进行比较,您应该考虑与Durandal串联,因为这是一个全面的SPA框架,如Angular。

从实践经验来看,由于Knockout在订阅observables时(通常通过ko.computed)隐式生成引用,因此我们怀疑使用Angular比使用Knockout更容易避免内存泄漏,而且我们很难追查这样的内存泄漏是由于未经清理而无法使用Knockout订阅。使用Angular我看不到你有同样的问题,因为你不直接订阅变异变量(“observables”)。相反,框架完全控制着应用模型变化,这可能最初难以掌握,但最终导致更好的可维护性。

14

如果您正在构建单页应用程序,则需要SPA框架。它应该包括双向数据绑定,客户端路由,页面组合,导航,屏幕状态管理,模块系统,捆绑。您可以选择Angular和Durandal。它们都提供了非常类似的功能,但在我看来,Durandal是最完整的SPA框架,非常易于使用。 Durandal和Angular都可以与Breezejs一起使用来构建以数据为中心的应用程序。

检查DurandalDurandal AuthHotTowel Angular

如果您正在构建ASP.NET MVC应用程序,那么你需要在客户端是双向的数据绑定,以减少DOM操作。在我的观点中,使用角度仅仅用于数据绑定是矫枉过正的。 Backbone或Knockout是不错的选择,但Angular也可以使用。

相关问题