2014-01-07 23 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也可以使用。

相關問題