web-dev-qa-db-ja.com

WCFサービスとWebサービスの違いとRESTサービス

WCFサービスと.netのWebサービスの違いは何ですか
WCFを使用するタイミングとWebサービスを使用するタイミング。RESTとWCFサービスは同じですか?ありがとう

26
Waheed Khan

Webサービスは、分散システム用のさまざまなデータプロバイダーを含む抽象的な用語です。おそらく、ASMX Webサービスについて言及しているのかもしれません。これはまだ世の中にありますが、最近の新しい開発ではあまり広く使用されていません。

WCFサービスはMicrosoftのSOAPの実装です。他の実装もありますが、独自に実装することもできます(推奨されません)。

[〜#〜] soap [〜#〜]は、一種のステートフル、セッションベース、メッセージベースのWebサービスです。サービスが一連の複雑なアクションとして設計されていると便利です。

[〜#〜] rest [〜#〜]は、ステートレス、セッションレス、リソースベースのWebサービスです。サービスがデータにアクセスし、その上で簡単なCRUD操作を実行するように設計されている場合は便利です。 SOAPとRESTは相互に排他的です。両方を同時に使用することはできません。 RESTful Webサービスを実装する場合、Microsoftの世界には、WCF Data ServicesとASP.NET Web APIの2つの主な選択肢があります。

26

[〜#〜] rest [〜#〜] はアーキテクチャです

[〜#〜] wcf [〜#〜] は、接続されたサービス指向アプリケーションを構築するための.NET FrameworkのAPIです。

昔は、Webサービスとして開発された機能はインターネット経由でアクセス可能であり、ローカルネットワークで利用できるのと同じものがRemoting経由で利用可能でした。

WCFを使用すると、インターネットおよびローカルネットワークでアクセス可能にするために別のコードを開発する必要がありません。バインディングで構成するだけで十分です。

9
Rajesh

それは非常に幅広い質問です...私は簡単な高レベルの答えを与え、各主題にすでにたくさん書かれているので、あなたはもう少し検索することを提案するつもりです。しかし、うまくいけば、これで正しい方向にプッシュできるはずです。

まず、通常、人々がWCFサービスとWebサービスを参照するとき、彼らはサービス呼び出しをかなり一般的なものにする新しいWCF規則(SOAP、RESTなどが可能)と古い.asmx SOAPメソッドを参照しています。 Webサービスの。したがって、これらの線に沿って、WCFとSOAP/.ASMXをWCFと古いWebサービスの違いについてさらに検討することをお勧めします。

WCFとRESTについては、同じではありません。 RESTはアーキテクチャに近いですが、WCFはフレームワークです。既に述べたように、WCFを使用してSOAP呼び出しまたはREST呼び出しを行うことができます。これ以上詳細に説明しなくても、さらに追加できるかどうかはわかりません。

ただし、RESTおよびWCFの優れた記事を少し後で見つけることができるかどうかを確認します。個人的には、Webサービス(.ASMXページ)を呼び出すという古い方法を追求する理由すらありません。WCFがほとんど時代遅れになっているからです。ただし、猫の皮を剥ぐさまざまな方法を学ぶことは、自分に最も適したものを見つけるために役立ちます。

繰り返しますが、これは非常に高いレベルですが、これらはそれぞれを取り巻く非常に一般的なトピックですので、高レベルの概要が各主題についてより深く研究するのに役立つことを願っています。

4
Justin Pihony

「Webサービス」と言うとき、「ASMX」を意味する人もいます。

他の人は、単に「Webサービス」を使用して汎用テクノロジーを意味し、WCFが.NETプラットフォームでWebサービスを作成する現在の方法であると考えています。他の種類は、「WCF Webサービス」とは区別される「ASMX Webサービス」です。

「他の種類」は、下位互換性のためにのみサポートされるレガシーテクノロジーです。それらを新しい開発に使用するべきではないので、それらについて学習しても意味がありません。

他の人が述べているように、「REST」はテクノロジーではなくアーキテクチャースタイルです。

3
John Saunders

Wcf:wcfは、.netフレームワークの一部としてのテクノロジーであり、統一されたプログラミングモデルに従うことにより、さまざまな分散テクノロジーで動作する環境を提供します。 wcfはプロキシを作成します。 wcfはデータコントラクトシリアライザーをサポートします。レコードはxml形式で表示されます。

**休憩:**休憩は建築スタイルです。これは、Webの既存の機能をより効果的、効率的かつ簡単に使用することを意味します。挿入、更新、削除などの動詞。残りはプロキシを作成できません。残りのレコードはジェイソン形式で表示されます。

Webサービス:Webサイトでホストされるサービスは、webserviceと呼ばれます。 Webサービスサポートxmlserializer

1
sreenu

WCFは多面的であるため、最も一般的な使用法について説明します。 WCFとRESTサービスの一般的な違いは、コンテンツを中心としています。AREST呼び出しは、通常、より多くのメッセージ/ドキュメント/エンティティを中心にしていますMで始まるもの;注文エンティティでは、注文12を取得し、HTTPプロトコルに結び付けられます。WCFは、より多くの操作を中心とする傾向があります(パラメーターで検索操作を呼び出し、パラメーターで取得操作を呼び出します)。WCFもHTTPに関連付けられません。

参考までに、WCF(WebInvoke、WebGet属性)を使用してRESTベースのサービスを作成する拡張機能があります。

1
Rich

これはかなり古いスレッドですが、最近同様の質問をしました。

与えられた答えはすべて同様の関連性を持っていますが、私の意見では、レイは実際に尋ねられたものに最も近かったです。 Webベースのソリューションを設計またはリファクタリングするときに、SOAPまたはRESTを使用する必要があります。答えは、サービスの背後で必要なビジネスロジックの複雑さにあります。RESTは、通常、要求されたデータの小さなセットを含む単純なAPI呼び出し、または大規模なセットでの夜間処理に適していますが、主にデータ要求に適しています。SOAPビジネスロジックを使用したデイサービスまで。たとえば、多くのパラメーターを持つ多くのメソッド。

ウェブベースのソリューションの一部として私たちが行うことは、両方を活用しようとすることです。内部メソッドと主要機能にはSOAPを使用しますが、公開されたAPIにはRESTを使用します。フレームワークに関連し、SOAPまたはREST。

0
Nico Dreyer