5

私は WCF と他の Web サービス (asp.net ASMX、.net Remoting など) と混同しています。WCF と他のサービスとの違いと、いつ使用すべきか教えてください。

4

3 に答える 3

10

WCF は、サービスを HTTP (ASMX など) や TCP (リモーティングなど)、名前付きパイプ (実際にはコンピューター内のクロス プロセス呼び出し)、MSMQ、および .NET 3.5 REST で公開できるようにする通信スタックです。

これが可能になるのは、サービスの通信部分がビジネス ロジックから切り離されているためです。サービス クラス、メソッド、および DTO を適切なコントラクト属性 (それぞれ [ServiceContract]、[OperationContract]、および [DataContract]) で装飾するだけです。

これには、サービスを 1 回記述するだけで、さまざまな種類のクライアントが同じサービスを利用できるという利点がありました (つまり、Java クライアントは HTTP を使用でき、.NET クライアントは TCP を使用でき、レガシー クライアントは MSMQ を使用できます)。

WCF では、セキュリティ、トランザクション、信頼できるメッセージングなど、各トランスポートのすべての機能を引き続き使用できますが、注意が必要です。すべての機能がすべてのトランスポートで機能するわけではないため、それに応じて設計する必要があります。WCF では、必要な機能を契約で指定できます。これにより、誰かが必要な機能セットをサポートしない方法でサービスを公開しようとするのを防ぎます (つまり、サービスがトランザクションを必要とする場合、WCF ランタイムは基本的な HTTP エンドポイント経由でサービスにアクセスすることを許可しません)。

WCF は、カスタム動作 (WCF ランタイムの動作に影響を与える) とカスタム チャネル (WCF サービスが外部と通信する方法を制御する) を介して拡張することもできます。

WCF には、ASMX に比べて学習曲線が少しありますが、利点はこの学習曲線よりも絶対に重要です。

それが役立つことを願っています。

于 2009-01-05T20:04:17.030 に答える
4

WCFは、.NETリモーティングと「古い」ASMX Webサービスの両方のスーパーセットであり、これらの両方のライブラリの後継である通信ライブラリです。

WCF Webサービスは、WS- *標準のサポートがはるかに優れており、相互運用性の問題が少なくなっています。

基本的に、.net RemotingとASMXは正当であると見なされる可能性があるため、WCFを使用する必要があります(正しく思い出せば、一部の.NET RemotingのバグはWCFでのみ修正され、.NET Remoting自体では修正されませんでした)

于 2009-01-05T10:33:13.283 に答える
2

WCFがASMXとリモーティングに取って代わると言っても過言ではありません。ASMXやリモーティングなどで可能なことはすべてWCFで実現できますが、より多くの機能があり、通常、何が起こっているかをより細かく制御できます。

ですから、可能であれば、WCFを使用する必要があると思います。

于 2009-01-05T10:05:11.110 に答える