56

私は.Netが初めてで、違いがわかりません。誰かが私を正しい方向に向けることができますか?

4

9 に答える 9

43

ASP.NET Web サービスは、Simple Object Access Protocol (SOAP) over HTTP を使用してメッセージを送受信するアプリケーションを構築するために開発されました。

WCF は、.NET Framework アプリケーションが他のソフトウェア エンティティとメッセージを交換できるようにするためのものです。デフォルトでは SOAP が使用されますが、メッセージは任意の形式にすることができ、任意のトランスポート プロトコルを使用して伝達できます。

ASP.NET Web サービスを WCF サービスのサブセットとして表示できます。

2 つのフレームワークを比較するリンクを次に示します。

于 2008-10-19T20:45:36.607 に答える
29

違いを知るのはとても簡単です。

ASP.NET Web メソッドは [ファイル拡張子のため] ASMX と呼ばれます (これについては 4GuysFromRolla を確認してください。優れたチュートリアルがあります) 。

その技術により、機能を Web サービスとして公開できるため、どこからでも接続して使用できるようになります。しかし...サーバーとクライアント間のデータを保護することはできません。大きなファイルをクリアに送信して、何が起こったのかを知ることができます...

[注意] Web サービスへのアクセスを証明書で保護することもできますが、複雑ですが、通常、ASMX ではユーザー名/パスワードを使用します。

WCFでは、あなたはWebサービスについて別の世界にいます.これは.NETでサービスを公開するための最良のテクノロジーです(違いがわかりますか... サービスWebサービスではありません).WCFはIISを実行する必要はありません。コンソール アンビエント (コマンド ラインなど) などを使用して、サーバー上でシステム サービスとして実行できるため、WCF は Web サービスではなくサービスであると言います。ASMX を実行するには IIS が必要であることを忘れないでください。

WCF では、SSL を使用して通信を暗号化できます (ASMX でこれを行うには、WSE - Web Services Enhancements を使用する必要があります)。大きなファイルを安全に送信できます (ASMX でこれを行うには、MTOM - Message Transmission Optimization Mechanismを使用する必要があります)。 )。

1行のコードを変更するだけで送信設定を設定できます。セキュリティははるかに高くなります:)

これで一般的な概要をよりよく理解していただければ幸いですが、他にもたくさんあります。

要点: 保護する必要のない Web サービスを公開するには、ASMX を使用できますが、まったく問題ありませんが、何らかの方法で通信を保護する必要がある場合は、WCF で行ってください!

リンク:ここで 2 つのサービスのパフォーマンス比較を読むことができます

于 2008-10-19T21:15:02.570 に答える
9

これらは、サービスを記述するための 2 つの異なるフレームワークです。一般に、WCF はより柔軟で、使用するプロトコル、サービスのホスト方法、およびさまざまなセキュリティ オプションに関する構成可能なオプションを提供します。ASMX は SOAP ベースのサービスを提供します。一般に、WCF の方がパフォーマンスも優れています。一般に、ASMX は使いやすく、学習曲線が少なくなります。

これは、このトピックに関する MSDN フォーラムのディスカッションです。ASMXWCFの入門ページは次のとおりです。

于 2008-10-19T20:38:49.150 に答える
7

上記の応答に加えて、WCF は .NET 3.0 以降の .NET Remoting を置き換えるために作成されました。さまざまな形式 (XML や JSON など) の SOAP、REST、POX などの Web サービスに加えて、WCF は MSMQ と名前付きパイプも提供します。前述のように、ASMX は SOAP ベースの XML Web サービスのみを提供します。

他のタイプの通信プロトコルについては、.NET Remotingを詳しく調べる必要があります。詳細については、Pro C# 2008 と .NET 3.5 Frameworkを確認してください。これは優れたリソースであり、以前の書籍から .NET Remoting やその他の置き換えられた機能について説明した章を入手できます。

于 2008-10-19T21:18:50.690 に答える
5

ここに新しい大きな違いがあります。Microsoft は現在、ASMX Web サービスを "レガシー" テクノロジと見なしています。「ASP.NET および XML Web サービス クライアントを使用して作成された XML Web サービス 」を参照してください。

于 2009-07-18T05:41:55.100 に答える
2

ウェブサービス

  1. HTTP経由でのみアクセスできます
  2. ステートレス環境で動作します

WCF

WCF は、そのサービスをさまざまな種類のアプリケーションでホストできるため、柔軟性があります。以下に、WCF サービスをホストするための一般的なシナリオをいくつか示します。

  • IIS
  • だった
  • 自己ホスティング
  • マネージド Windows サービス
于 2010-06-15T09:43:34.030 に答える
1

Web サービスと WCF の主な違いを以下に示します。

Web サービス: Web サービスは、インターネットを介して他のアプリケーションと直接対話するように設計されたアプリケーションです。

1) [WebService] および [WebMethod] 属性は、Web サービスとメソッドを定義します。
2) HTTP 経由でのみアクセスできます。
3) IIS でホストされます。
4) セキュリティサービスをサポートします。
5) マルチスレッド化できません。
6) SOAP または XML のみを使用。
7) System.Xml.serialization 名前空間はシリアル化に使用されます

WCF :Windows Communication Foundation (コードネーム Indigo) は、ネットワーク分散サービスを構築、構成、展開するためのプログラミング プラットフォームおよびランタイム システムです。

1) [ServiceContract] および [OperationContract] 属性は、Web サービスとメソッドを定義します。
2) HTTP、TCP、MSMQ、P2P、名前付きパイプを介してアクセス
3) IIS、セルフホスティング、WAS、および Windows サービスでホスト。
4) サービス動作クラスを介してマルチスレッド化できます。
5) System.Runtime.Serialization 名前空間はシリアル化に使用されます
6) BasicHttpBinding、WSHttpBinding、WSDualHttpBinding などのさまざまな種類のバインディングをサポートします
7) セキュリティ サービス、信頼性の高いメッセージング、トランザクション、AJAX および REST のサポートをサポートします

于 2014-04-12T08:47:07.367 に答える
1

それらはすべて一緒に2つの異なるものです。WCF は、1 つのサービス タイプ コンポーネントを作成し、それをさまざまな方法で (Asp.Net Web サービスとしても) 展開できる、より一般的なフレームワークです。

これについての簡単なスレッドがありますhttp://social.msdn.microsoft.com/Forums/en-US/wcf/thread/2d6a7ff2-f15c-4599-a389-a81cfffcc852/

于 2008-10-19T20:45:53.877 に答える