2008-08-09 25 views
32

私は新しいプロジェクトに取り組んでいます。通常のファッションウェブサービスを使用してWCF Webサービスを利用することに利点はありますか?Webサービス - WCF vs. ASMX( "標準")

Visual Studioには、両方のテンプレートが用意されています。違いは何ですか?長所と短所?

+9

WCFは非常に大きな学習曲線ですが、間違いはありません。ええ、いくつかのコピー&ペーストやブランクの埋め込みでサービスを実行できますが、構成やセットアップが実際に何をするかを理解するには、開発者の何ヶ月もかかります。 – Sander

+2

ほとんどの開発者はすべての設定を理解する必要はありませんし、さらに.NET 4.0では根本的に変化しています。 –

+0

私はそれが急な学習曲線であるという事実を保証することができます。 WCFはほぼビザンチンです。私は約1ヶ月間それを勉強してきました、そして、私はそれの周りに頭を浮かべて始めています。さまざまなセキュリティ方法、さまざまなタイプのデジタル証明書、およびクライアント/サーバーの検証に関して、複雑さがたくさんあります。非常に良いビデオチュートリアルがたくさんあります。 questpond.comを見てください。私はASMXが非常に悲惨であることを覚えていませんが、WCFは非常に強力であり、努力する価値があるようです。誤った情報と実証されていない意見のために –

答えて

32

「通常の古風なWebサービス」とは何ですか? ASMXサービス、またはWSEも使用していますか? ASMXサービスは自然に相互運用可能ではなく、WS- *仕様をサポートしておらず、ASMXは非常に早く経年変化する技術です。 WSE(Web Service Enhancements)サービスWS- *のサポートを追加して相互運用できるようにすることができますが、WCFはWSEを置き換えるものであるため、時間をかけて学習する必要があります。私はあなたのアプリケーションが素早く汚れたものでなければ、WCFを選択すれば巨大な柔軟性を得ることができ、より良いデザインになると言います。 WCF は[WebMethod]属性を超えた学習曲線を持っていますが、学習曲線は私の意見では誇張されていて、従来のASMXサービスよりも指数関数的に強力で、将来の証明になります。

タイムラインが学習曲線を許容できない場合を除き、ASP.NET Webサービスを使用するのではなく、WCFを習得することが非常に有利です。アプリケーションはますます分散して相互接続されるようになり、WCFはMicrosoftプラットフォーム上の分散コンピューティングの未来です。

Here is a comparison 2つの間。

9

自分ですべてを行うことの長所は次のとおりです。

非常に柔軟性のない学習曲線

  • WCFの長所は、以下のとおりです。

    • は、より少ない時間がかかります長いラン
    • プログラミングなしでプロトコルを切り替える

    WCFの短所:一部の静的プロパティ名can be pretty lengthy ...

    要約すると:WCFは、あなたがプログラミングに集中することができますが、あなたはそれを私が好きな最初;-)

  • 2

    を学ぶ必要があります事実WCFサービスを書くことで、サービスと実装を簡単に分離することができます。サービスを作成し、IIS、コンソールアプリケーション、またはWindowsサービスでホストすることができます。 HTTP、ネットTCPなどでも話すことができます。

    3

    Pro for WCF:Webサーバー(IISなど)は必要ありません。実際にはサーバーOSは必要ありません。

    1

    あなたのサービスのインパクトと相互作用に関する単体テストは簡単です!私の経験で

    -2

    WCF

    もちろん、それは広く外部に受け入れられていない、それは他のマイクロソフト製品と非常に互換性がありません、それで動作するように、ばかばかしいほど冗長で、Microsoftをotの世界。

    しかし、私の主な問題は安定していないことです。状況によっては失敗する傾向があり、使用する前にそれを調整する必要があります。

    代わり

    SOAP(別名標準Webサービス)、それは動作しますが、動作するように簡単で、それは(Javaの-JAXはそのままそれを受け入れる)が広く互換性があります。

    SOAPで認証を追加するのはちょっと難しいかもしれませんが不可能ではありません。

    +4

    -1私はWCFが "冗長"であると言ったときにあなたが設定について話していると仮定することができます。その場合は、.NET 4.0または4.5を使用してください。 「他のマイクロソフト製品との互換性がありません」は、真剣に対応したい場合は、具体化する必要があります。しかし、WCFとSOAPを対照することで、すべての信頼性を失います。 –

    +0

    @ジョン・サンダース、あなたは何の理由もなく私を運んでいます。恋人そして、ネット4.0でも、wcfはまだ半分焼きました。とにかく、WCFはベンダーロックされています。 – magallanes

    +1

    Youbはあなたが何を話しているのか全く分かりません。 "Vendor locked"は明らかなナンセンスです。私の意見は嘘つきではなく、事実を示すことで訂正することができます。 –

    0

    プロジェクトでフレームワーク4.0を使用している場合は、WebApiを試してみてください

    その超高速インタフェース

    でアプリケーションを構築するための素晴らしい方法は、MSからのビデオを始める、それは、WCFデータサービスから進化しているを見てください。

    http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api

    関連する問題