ASP.NET MVC5とAngularJS / ASP.NET WebAPI [クローズ]


86

私は現在、会社で将来のWebアプリケーションを作成するためのプログラミングモデルを評価しています。そこで、ASP.NET MVC 5(Razor Viewsを使用)とASP.NETWebAPIを使用したAngularJSのどちらかを決定します。これら2つのプログラミングモデルの長所/短所は何ですか?


4
ええと... AngularJSをASP.NETに固定するつもりなら...実際には公正な比較をしていません。AngularからJavascriptを削除しようとしているようですが、それは意図された方法ではありません。Angularはクライアントのフレームワークとなることを目的としており、サーバー側のテンプレートをほとんど使用しない場合に最適に機能します:simple-talk.com/blogs/2013/10/16/…。認証などは理にかなっていますが、かみそりを省き、.NETに直接アクセスして、AngularのAPIレイヤーを作成します。
Brian Vanderbusch 2014

3
本当に必要なのは、ASP.NETWebAPIを備えたAngularJSだけだと思います。両方の長所があると思います。MVCとAngularJSを組み合わせてみましたが、問題が発生したときはあまり良い経験ではなかったので、その罠には入らないことをお勧めします。このアプローチで私が見逃していることの1つは、Razorエンジンを搭載したMVCが提供できるデバイスベースのビューです。これを克服する方法があるに違いありませんが、私はまだ十分に実験していませんでした。
キラン2014年

Angularを数か月間使用しただけで(永遠のように見えますが)、Razorに戻ることは決してありません。Angularを使用すればするほど、Angularを高く評価するようになります。柔軟性とパワーであり、魔法のように感じることもあります。Web APIは、少なくともPOSTの形式では、Angularとうまく連携しないと言わなければなりませんが、それはうまくいく可能性があります。javascriptは強く型付けされた言語ではないため、構文的にはC#プログラマーにとって簡単な移行ではありません。しかし、このハードルを克服すると、Angularに感謝するようになります。
フロリダG.

かみそりは、テンプレートエンジンの中でも恐ろしいものです。テンプレートエンジン(ジェイド、ハンドルバー、カミソリなど)でAngularを使用すると、生産性が大幅に向上します。JSON(web-api、node-express、またはPHP)を提供するバックエンドとAngularフロントエンドを使用します。そして、ただ注意するために、ノックアウトは角度ほど良くはありません....すべての最高...
Giridhar Karnik 2016

1
@BrianVanderbuschあなたが何について話しているのかよくわかりません。バックエンドはまったく関係ありません。それは何でもかまいません。彼は、ASP.NETをバックエンドとして使用し、Angularをクライアント側のフロントエンドとして使用すると述べています。Angularは、データを取得するためにサーバーを呼び出す必要があります。これは、Angularに公正な比較を行わないこととは何の関係もありません。
user441521 2016年

回答:


103

私の2セント。私は個人的に純粋なHTMLビュー、Web API / EF / SQL Serverバックエンドを備えた完全に角度のあるフロントエンドを好みます。基本的にRazorはありません。Razorは、プログラマーがHTMLをレンダリングするのに役立つ抽象化です。最近では、これらの抽象化を削除する方がよいという結論に達しています。したがって、ASP.NETはWebフォームからMVCなどに進化しています。開発者が到達するのはそれほど難しくありません。 HTMLを把握し、角度のあるフロントエンドを使用します。さらに、これによりUIデザイナーの作業が容易になり、純粋なHTMLとJSON / Javascriptがあり、MVC、Razor、コントローラー、アクションを理解する必要がありません。以前は完全にMVCで作業していましたが、最新のプロジェクトではWeb APIバックエンドとAngularフロントエンドに移行しましたが、UIデザイナーの生産性が大幅に向上していることに気付きました。


3
それに加えて、Angularを使用すると、テンプレートを動的に更新できます。これは明らかに素晴らしいことです
Willem D'Haeseleer 2014

4
ええ、よりダイナミックで応答性の高いフロントエンドと開発コストの開発に関しては、実際には競争はありません。
Mohammad Sepahvand 2014

@ user189756 Web APIアプローチを使用する場合、HTMLページをクライアントにどのように配信しますか?
Yoav

@Yoavこれは古い答えですが、当時は単一のコントローラーを備えたMVCホストでした。
Mohammad Sepahvand 2016年

1
@Yoav正確に。しかし、特にSEOのようなものを考慮に入れると、他の答えも優れていることを付け加えておきます。
Mohammad Sepahvand 2016年

53

比較できないと思います。AngularJSはシングルページアプリケーション(SPA)フレームワークですが、ASP.Net MVCは、ページ間を移動する標準モデルを使用します。SPAを構築するかどうかは、次のような要因によって決まります。

  • SEOが必要ですか。これらのJSリッチフレームワークのほとんどはサポートが制限されています。
  • アプリをSPAまたは複数のSPAとして構成するにはどうすればよいですか。
  • 型安全言語C#からJavaScriptプログラミングへの移行は課題です。
  • AngularJSを学び、それを効果的に使用する。

標準のMVC5レイザービューを使用して初期AngularJSビューをセットアップし、必要に応じてそれらを組み合わせることもできます。

この回答を参照してくださいParse.comでAngularJSを使用できますか?より多くのコンテキストを導き出すため。


12
「...一方、ASP.Net MVCは、ページ間を移動する標準モデルを使用します。」これは単に誤りです。MVCアプリ(かみそりを使用)は、SPAとして非常に簡単に設計できます。
サム

7
AngularJSは限定されたSPAではありません。ディープリンクとともにAngularを備えたマルチページWebサイトを非常にうまく構築できます
。...– Giridhar Karnik 2016

3
AngularJSはSPAではありません。SPAのように使用できますが、自動または必須ではありません。ルーティングを行うには、ルーティング依存関係ng-routeを追加する必要があります。AngularJSは信じられないほど素晴らしいSPAになる可能性がありますが、AngularJS = SPAと言うのはばかげています。
トムスティッケル2016

5
TypeScriptは、タイプセーフなjsに適したオプションです。
カイルJV 2016年

9
AngularJSはGoogleによって作成されました。SEOが不足している場合、彼らは何か間違ったことをしています。
価値がある
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.