Web サービスで使用できることがわかっているオプションが 2 つあります。WCF はもちろん、ASP.NET Web サービスです。違いは何ですか?私は最近 WCF を始めたばかりで、過去に Web サービスに少し触れたことがありますが、私は確かに専門家ではありません。
3 に答える
違いを知るのはとても簡単です。
ASP.NET Web メソッドは [ファイル拡張子のため] ASMX と呼ばれます (これについては 4GuysFromRolla を確認してください。優れたチュートリアルがあります) 。
このテクノロジにより、メソッドを Web サービスとして公開できるため、どこからでも (WS に) 接続して使用できます (メソッド)。しかし...サーバーとクライアントの間のデータを保護することはできません。たとえば、大きなファイルをクリアモードで送信することはできません...
[注] 証明書を使用して Web サービスへのアクセスを保護することはできますが、これは面倒で非常に複雑です。通常、ASMX ではユーザー名/パスワードを使用してメソッドへのアクセスを許可します (繰り返しますが、プレーン テキストで!)
WCFでは、Web サービスについて別の世界にいます。これは、サービスを公開するための .NET (これまでのところ) で最高のテクノロジです (違いがわかりますか... サービス! Web サービスではありません)。WCF は IIS を必要としません。実行するには、コンソール アンビエント (コマンド ラインなど) を使用してサーバー上で System Service として実行でき、TCP/IP モードなどで実行できるため、WCF はWeb サービスではなくServiceであると言います。ASMX を実行するには IIS が必要であり、Web サーバーでホストされている場合にのみ実行されることに注意してください。
WCFを使用すると、SSLを使用して通信を暗号化できます(ASMXでこれを行うには、WSE - Web Services Enhancementsを使用する必要があります)。実装は非常に簡単で、大きなファイルを安全に送信できます(ASMXでそれを行うには、MTOM - Message Transmission Optimization Mechanismを使用するため)。
1行のコードを変更するだけで送信設定を設定できます。または、必要に応じてXML構成ファイルを変更すると、セキュリティがはるかに高くなります:)
これで一般的な概要をよりよく理解していただければ幸いですが、他にもたくさんあります。
要点: 保護する必要のない Web サービスを公開するには、ASMX を使用できますが、まったく問題ありませんが、何らかの方法で通信を保護する必要がある場合は、WCF で行ってください!
ASP.NET Web サービスは、Web サービスに対する Microsoft の最初の試みでした。
WCF は、ASP.NET Web サービスと .NET リモート処理を置き換えます。WCF は、幅広いプロトコルとセキュリティ モデルのサポートを含む、2 つの古いテクノロジで可能なことを可能にする共通のプログラミング モデルを提供します。
選択肢がある場合は、WCF を使用してください。
ASP.NET Web サービスは問題ありませんが、IIS でホストされている HTTP に限定されており、他の問題があります。
WCF は、より多くのトランスポート プロトコル (さまざまな方法での HTTP、TCP、MSMQ など) をサポートし、より豊富なセキュリティ モデル (資格情報、フェデレーション セキュリティ) を備え、IIS での Windows アプリまたはサービスでのセルフ ホスティング - ホスティングのオプションを提供します。またはWASなど。
要するに、今から始めるなら、ぜひ WCF を学んでください。
マルク