Que*_*Que 73 javascript javascript-framework asp.net-mvc-4 angularjs knockout.js
我有一个ASP.NET MVC 4项目,我一直坚持使用Angular.js或Knock.js的JavaScript框架或库的架构决策.我目前倾向于使用Angular.js而不是Knockout.js,但是我不想在项目开发过程中发现我犯了一个错误.
这是一些背景:
我已阅读优秀的答案在这里,看着斯科特·艾伦的采访时谈到角在这里
由于我们无法从当前的ASP.NET MVC 4体系结构更改为在Web服务器端使用某些内容,因此我尝试使用MVC 4实现Angular.js时会遇到一些问题.这会导致我们有两个模型服务器和客户端上的服务器?
我不是在寻找关于Angular和Knockout的"哪个更好"的讨论,因为我认为它们都有它们的优点和缺点.我正在寻找在ASP.NET MVC 4应用程序中实现JavaScript框架或库的实际代码.我需要一个解决方案,我可以用2年多的时间来生活:)
任何想法或建议?也许答案不是Knock或Angular,而是其他一些JavaScript框架?
Ant*_*ton 57
我的2美分价值.
序言 - 我曾经使用角度和淘汰赛.我正在使用MVVM/MVC lib构建我的第3个非常简单的前端.
我开始使用淘汰赛,因为它的MVVM非常类似于wpf/silverlight机制.它运作良好.教程和文档是一流的.您的所有程序员都可以在几天内使用knockout.js,或者如果他们在.net下使用mvvm,那么几小时内就可以使用.
然而,这些天我使用角度,可能会坚持使用它,原因如下.
angular是一个完整的框架 - 淘汰赛实际上只是2路绑定.你还需要像backbone.js/jquery这样的其他库来完成你的其余工作.
角度有依赖注入.这非常适合添加
模拟测试以及为代码提供结构.
angular将普通JS变量视为其$ scope对象中的observable.这意味着你不必以特殊方式声明它们
我不是一个有角度的粉丝,我仍然认为他们可以更多地转向MVVM架构而不是他们目前拥有的"时髦"MVVM/MVC混合架构.
角度最大的问题是文档.与淘汰赛相比,这是可悲的.它会增加额外的时间和成本,让你的编码人员加快速度.然而,一旦他们在那里,它是目前最好的选择恕我直言.
Que*_*Que 21
很高兴看到这个问题引起了社区的兴趣;)为了完整起见,这就是我最终做的事情:
我确实选择了AngularJS和ASP.NET MVC 4,很高兴我这样做了.虽然,Angular有一个陡峭的学习曲线,但由于指令的力量,它值得.
Jos*_*iel 12
我对AngularJs没有太多的意见,但想提供一些关于Knockout的想法.
Knockout主要是一个数据绑定库,用于将视图连接到视图模型,但实际上并没有提供很多功能.我不建议单独使用knockout作为构建基于客户端的复杂网站的主库.
您没有提到您是否正在实现类似spa的功能(即散列标签导航),或者您是否主要使用MVC服务器端视图(例如Razor).如果您只是在每页上寻找快速数据绑定,我甚至会重新考虑这一点.对我来说,这两者(角度或淘汰赛)旨在增强客户端开发体验 - 而不是像MVC那样的服务器端方法.
如果您正在考虑SPA方法,即使是部分,您可能还需要一些框架来提供对视图激活生命周期的某种程度的控制.
至于数据绑定能力和可靠性,我相信Knockout.我一直在广泛使用它,并且已经非常喜欢它.如果你喜欢淘汰赛的感觉,你可能想看看Durandal.Durandal是一个体面的框架,能够满足许多"spa"Web项目的需求.它是一个基于几个经过验证的库构建的客户端框架,包括Knockout.它比Angular的重量轻很多(很多),并且可能更容易使用.
我们正在构建一个相当大的ASP.Net MVC网站,使用带有Knockout的Durandal和一个额外的外观,从开发的角度来收紧事情,并且与ASP.Net MVC的集成是直截了当的.我不建议尝试使用那里的服务器端淘汰内容; 我只是发现要限制MVVM模式的实际功能.
| 归档时间: |
|
| 查看次数: |
42870 次 |
| 最近记录: |