ASP.NET MVCコントローラーを使用すると、さまざまな形式でデータを公開できます。AspNetWebAPIは、APIを作成するために明示的に設計されていますが、MVCコントローラーを使用して簡単に作成できます。従来のMVCコントローラーよりも優れているケースはわかりません。WebApiの利点が明白で、アプリケーションに別の複雑なレイヤーを追加する価値があるシナリオに興味があります。
質問: MVCに関してasp.net WebApiを使用する利点と欠点は何ですか?
ASP.NET MVCコントローラーを使用すると、さまざまな形式でデータを公開できます。AspNetWebAPIは、APIを作成するために明示的に設計されていますが、MVCコントローラーを使用して簡単に作成できます。従来のMVCコントローラーよりも優れているケースはわかりません。WebApiの利点が明白で、アプリケーションに別の複雑なレイヤーを追加する価値があるシナリオに興味があります。
質問: MVCに関してasp.net WebApiを使用する利点と欠点は何ですか?
回答:
WebApiを使用すると、WCFやSOAPなどの正式なサービスではなく、HTTPを介して公開できるサービスを作成できます。もう1つの違いは、WebApiがHttpプロトコルを使用し、真にファーストクラスのHttpシチズンにする方法にあります。
更新: ASP.NET Core、Web APIがMVCプロジェクトタイプに統合されました。ApiController
クラスに統合されController
たクラス。詳細:https : //wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6
比較、ディスカッション、チュートリアルの関連リンク:
Asp.Net Web API VS Asp.Net MVC 1。Asp.Net MVCは、ビューとデータの両方を返すWebアプリケーションを作成するために使用されますが、Asp.Net Web APIは、ビューではなくデータのみを返す簡単でシンプルな方法で本格的なHTTPサービスを作成するために使用されます。
2。Web APIは、.NET Frameworkを介してRESTフルサービスを構築するのに役立ち、コンテンツネゴシエーションもサポートします(これは、クライアントが受け入れることができる最良の応答フォーマットデータを決定することです。JSON、XML、ATOM、またはその他のフォーマットされたデータを)、MVCにはないセルフホスティング。
3。Web APIは、リクエストのAcceptヘッダーに基づいて、JSON、XMLなどの特定の形式でデータを返すことも処理しますので、心配する必要はありません。MVCは、JsonResultを使用してJSON形式のデータのみを返します。
4。Web APIでは、リクエストはHTTP動詞に基づいてアクションにマップされますが、MVCではアクション名にマップされます。
5。Asp.Net Web APIは新しいフレームワークであり、コアASP.NETフレームワークの一部です。モデルバインディング、フィルター、ルーティングなど、Web APIにあるMVC機能はMVCとは異なり、新しいSystem.Web.Httpアセンブリにあります。MVCでは、これらの機能はSystem.Web.Mvcに存在します。したがって、Web APIはAsp.Netで使用することも、スタンドアロンのサービスレイヤーとして使用することもできます。
6。Web APIとMVCコントローラーを1つのプロジェクトに混在させて、JSON、XML、またはその他の形式でデータを返す高度なAJAXリクエストを処理し、本格的なHTTPサービスを構築できます。通常、これはWeb APIセルフホスティングと呼ばれます。
7。MVCとWeb APIコントローラーが混在していて、認証を実装する場合は、MVC用とWeb API用の2つのフィルターを作成する必要があります。両方が異なるためです。
8。さらに、Web APIは軽量アーキテクチャであり、Webアプリケーションを除いて、スマートフォンアプリでも使用できます。
元のソースはこちら
類似点
1)両方ともasyncrequestのihhtphandlerから継承するため、基本的にapicontrollerまたはmvcコントローラーはどちらもWebのラッパーです。http
違い:1)mvcコントローラーは非常に重いため、その定義を調べると、使用したインターフェイスとベースコードの数を確認できます。webapiは軽量のコントローラーであり、渡されたパラメーターによってリクエストを区別します(はい、変更することもできます! )
2)MVCコントローラーには、ビュー、アクションの結果、JavaScriptの結果などを返す機能が多すぎますが、Web APIにはJSONまたはXMLのいずれかがあります
3)APIはRestful(get、post、put、delete、options)サービスを実装するためのもので、ビューに依存せずに独立してホストできるため、MVCコントローラーはビューと緊密に統合されているため、それをサポートできません。
ある時点で、ASP.NET MVCをまとめて忘れたい場合があります。.NET開発者であるが、(たとえばAngularを使用して)単一ページアプリケーションを構築したい場合は、ASP.NET MVCに付随する不必要な肥大化のないRESTfulサービス(WebAPI)の利点が必要になります。
ASP.NET MVCとASP.NET Web APIの両方が異なる目的で使用されている
ASP.NET
ASP.NETは、Webアプリケーションを作成するための3つのフレームワーク、Webフォーム、ASP.NET MVC、およびASP.NET Webページを提供します。3つのフレームワークはすべて安定しており、成熟しているため、どのフレームワークでも優れたWebアプリケーションを作成できます。どのフレームワークを選択しても、どこにいてもASP.NETのすべての利点と機能を利用できます。
各フレームワークは異なる開発スタイルを対象としています。どちらを選択するかは、プログラミングアセット(知識、スキル、開発経験)、作成するアプリケーションの種類、快適な開発アプローチの組み合わせによって異なります。ASP.NETの今後のリリースでは、3つのフレームワークすべてがサポート、更新、および改善される予定です。
MVC
ASP.NET MVCは、パターンベースの強力な方法で動的なWebサイトを構築し、懸念事項を明確に分離し、マークアップを完全に制御して、楽しくアジャイルな開発を実現します。ASP.NET MVCには、最新のWeb標準を使用する高度なアプリケーションを作成するためのTDD対応の高速開発を可能にする多くの機能が含まれています。
Web API
ASP.NET Web APIは、ブラウザーやモバイルデバイスを含む幅広いクライアントに到達するHTTPサービスを簡単に構築できるようにするフレームワークです。ASP.NET Web APIは、.NET FrameworkでRESTfulアプリケーションを構築するための理想的なプラットフォームです。
あなたはここでより多くのフォームを読むことができます http://www.dotnet-tricks.com/Tutorial/webapi/Y95G050413-Difference-between-ASP.NET-MVC-and-ASP.NET-Web-API.html
Asp.Net MVCは、ビューとデータの両方を返すWebアプリケーションを作成するために使用されますが、Asp.Net Web APIは、ビューではなくデータのみを返す簡単でシンプルな方法で本格的なHTTPサービスを作成するために使用されます。
Web APIは、.NET Frameworkを介してRESTフルサービスを構築するのに役立ち、コンテンツネゴシエーションもサポートします(これは、クライアントが受け入れることができる最良の応答フォーマットデータを決定することです。JSON、XML、セルフホスティングではないMVCで。
Web APIは、リクエストのAcceptヘッダーに基づいて、JSON、XMLなどの特定の形式でデータを返すことも処理しますので、心配する必要はありません。MVCは、JsonResultを使用してJSON形式のデータのみを返します。
通常、MVCがより多くのタイプの出力を生成できるデータサービスに使用されるWebAPI。
WebAPIは、データサービスの作成方法を確実に簡素化します。この目的のためには、クリーンで簡単です。MVCにはさらにいくつかのツールが付属しています。
MVCは、WebAPIが出力できる任意の出力を生成できます。テンプレートからの出力の生成は、MVCで簡単に実現できます。WebAPIでその理由を見つけることができません。PHP開発者と古いASPプログラマーは、C#コードに関連するHTMLファイルを内部で構築できる過去のこの姿勢を知っているかもしれません。
WebAPI- DATA MVC-DATA、UI / HTML、XHTML、ファイル、テンプレートなど。