web-dev-qa-db-ja.com

AngularJs対Backbone JsまたはKnockOutJsのどちらが最適であるasp.net mvcの場合?

私はAsp.net MVCで過去1年間働いていますが、AngularJs、BackboneJs、またはKnockoutJsを使用したことがありません。今私はそれを自分のプロジェクトで使用したいのですが、MVCの1つがベストだと少し混乱しています。 AngularJsのパフォーマンスは最高ですが、ほとんどがMVVMフレームワークで使用されることをどこかで読んだので、Asp.net MVCで適切なガイダンスを提供してください。

前もって感謝します。

15
Dilip0165

これは、アプリケーションの性質によって異なります。また、詳細に説明しなかったため、答えることは不可能です。私はバックボーンが最も簡単だと思いますが、Angularで終日作業します。パフォーマンスは、フレームワークよりもコーダー次第だと思います。

DOMを大量に操作していますか?私はjqueryとバックボーンを使用します

非常にデータ駆動型のアプリですか? Angular with it nices data binding

ゲームプログラミング?なし、キャンバスに直接、おそらくゲームエンジン- Source

また、 https://stackoverflow.com/questions/5112899/knockout-js-vs-backbone-js もご覧ください。

以下のソースを確認できます。それは本当に完全です:

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

個人的には、私はAngularそのパフォーマンスのためだけに行きますが、多くの理由があります...

11
Nilesh Gajare

シングルページアプリケーションを構築する場合は、SPAフレームワークが必要です。双方向データバインディング、クライアント側ルーティング、ページ構成、ナビゲーション、画面状態管理、モジュールシステム、バンドルが含まれている必要があります。 AngularまたはDurandalから選択できます。どちらも非常によく似た機能を提供しますが、私の意見では、Durandalは最も使いやすいSPAフレームワークです。 DurandalとAngularの両方をBreezejsで使用して、データ中心のアプリケーションを構築できます。

チェック DurandalDurandal Auth および HotTowel Angular

ASP.NET MVCアプリケーションを構築している場合、クライアント側で必要なのは、DOM操作を減らすための双方向データバインディングだけです。私の意見では、データバインディングのためだけにangularを使用するのはやり過ぎです。バックボーンまたはノックアウトは良い選択ですが、Angularも使用できます。

14

私は職場でASP.NET MVC/Web APIでKnockoutを使用していますが、Angularを自宅で使用しており、正直にそれを好みます。Knockoutは、後者は完全なSPAフレームワーク(サービス、HTMLディレクティブなど)であるAngularを実行します。リンゴをリンゴと比較するには、Knockoutを Durandal と組み合わせて検討する必要があります。これは本格的なSPAフレームワークであるためです。 Angularのように。

実際の経験から、AngularはKnockoutよりもメモリリークを回避する方が簡単だと思います。Knockoutは、オブザーバブル(通常はko.computedを介して)にサブスクライブすると暗黙的に参照を生成し、非常に苦労しました。クリーンアップせずにKnockoutサブスクリプションを無秩序に取得することによるこのようなメモリリークを追跡しようとしています。Angularを使用すると、直接変更をサブスクライブしないため、同じ問題が発生することはありませんでした。変数(「オブザーバブル」)代わりに、フレームワークはモデルの変更の適用を完全に制御します。これは、最初は把握しにくいかもしれませんが、最終的には保守性の向上につながります。

9
aknuds1

ノックアウトやバックボーンは試していません。 Angularを使用して、ASP.NET MVCで作業しました。個人的にはMVCビューを使用するのは好きではありませんでした。 AngularにはPOJO(プレーンな古いJavaScriptオブジェクト)が必要なので、Web ApiとAngularに変更しました。正直なところ、以下の理由により、Angularに非常に満足しています。

  • DOM操作は、それらが属する場所で行われます。
  • 双方向バインディング
  • 単体テストで設計
  • サービスは彼らが属している場所です
  • HTML5を考慮して設計
  • ビジネスニーズ(ディレクティブ)などに適合するHTMLマークアップを作成する機能。
6
KrishnaDhungana