2010-12-03 4 views
7

人が再利用できる一連のWebサービスを作成することを意図しています。これらのサービスは、ほとんどがバックエンドDBと相互作用し、データの作成、回収、処理を行います。WCFとASPX webmethodsとASMX webmethodsとの比較

人々がデータマッシュアップやその他のアプリケーションを作成できるように、サービスを公開したいと考えています。

エンドユーザーは、ドメイン内またはドメイン外にあることができるウェブページです。ドメイン外のページでは、データを取得して表示するように設定されているウィジェットをリリースする予定です。

1つの要件 - アプリケーションは、処理できるユーザー数の点で非常にスケーラブルである必要があります。

コードベースは.netで、ASPX Webメソッド(ASHX)、ASMX webmethods、およびWCF(WCFの読み込みを開始)を参照しています。

セキュリティ/アクセスの面で私はセッションIDを維持することがわかったので、メンバーシップは3つすべてで実行可能です。 WCFはセットアップが少し複雑に思えます。私はasmxの値をただちに見ることができませんでした。ちょうどaspxのwebmethodを使ってすべてを完了させることができました(ちょっと微調整)。

また、ASP.NET MVC2では、これらのWebメソッドに対してもクリーンURLを取得できる可能性があると仮定します。 1はパフォーマンススケーラビリティの面で最も効果的であろう

質問

? WCFまたはASMXを選択する理由は何ですか?

この記事を読む時間を取ってくれてありがとう、私はネットに慣れていないので素朴な質問をお詫び申し上げます。

EDIT私は、WCFが行く方法であることを理解しています。技術の進化を理解するだけで、なぜaspx webmethodがasmxと違うのかを誰かが察知することができれば、同様のことが(発見以外は)両方で達成できるのではないでしょうか。 aspx webmethodsは、他の形式(平文、json)でデータを返すようにすることができます。また、ashxを使って安らかなサービスを構築できるようです。素朴な質問に対してもう一度謝ります。

答えて

9

.NETでWebサービスを開発するには、WCFを使用する必要があります。 WCFは、セキュリティ、トランスポートプロトコル、シリアル化、拡張など多くのオプションを使用して高度に構成可能です。Raw performanceもかなり高いです。また、WCFも積極的に開発されており、バージョン3.5および4には多くの新機能が追加されています.WCFデータサービスやWCF RIAサービスなどのバリエーションもあります。 WCF 4.0には、ASP.Net/JQueryで直接使用できるRESTとJSONのサポートがあります。

+0

私はWCFの使用のポイントが何かと不思議に思っていました。 Jqueryが非常に多くのサポートを得ていることは素晴らしいことです。 –

+0

JQueryのサポートはさらに向上します。あなたは既にWCF Web APIのプレリリース版を入手できます。 http://wcf.codeplex.com/wikipage?title=WCF%20jQuery – softveda

+0

ASMXページもJSONサポートを提供しています。 http://encosia.com/asmx-and-json-common-mistakes-and-misconceptions/ – mattmc3

3

ASMXは廃止予定の技術と見なされ、WCFに置き換えられました。したがって、再利用可能なサービスを公開する必要がある新しい開発を開始する場合は、WCFを使用してください。

+3

ASMXが推奨されていないというあなたの主張に引用できる実際のリソースがありますか? – mattmc3

+1

.NET 3.5用wsdl.exeツールのドキュメントへのリンク:(http://msdn.microsoft.com/en-us/library/7h3ystb6(VS.90).aspx) "このトピックは従来のテクノロジに固有のトピックです。XML WebサービスとXML Webサービスクライアントは、Windows Communication Foundation(WCF)を使用して作成する必要があります。" – dana

1

私は以前の回答に必ずしも同意していません。しかし、WFCは別の観点から構成するのが難しいです。バインディング、エンドポイント、パケットサイズ、多くの混乱パラメータなどが設定ファイルに必要です。多くのシリアライゼーション/デシリアライゼーションの問題が報告されています。また、WCFは比較的新しい技術です(したがって、必要なバグやパッチがまだ残っています)。 クライアント生成[参照。cs]ファイルに不要なインターフェイスが含まれている可能性があり、WSDLに公開される各パブリックプロパティクライアントクラスは、LINQ to SQLまたはEntity Frameworkが使用する同じオブザーバパターン(OnChanged、OnChangingなど)で生成されるため、従来のSOAP Webクライアントのやり方とは対照的に、 リモートでの変更に2way通知メカニズムが必要ない場合や、リモートでの変更を必要としない場合は、WCFのすばらしい機能です。使用する必要はありません。

+2

-1あなたの情報は古くなっています。とりわけ、WCFは2006年から廃止されています。また、リモートの変更とは関係のないINotifyPropertyChangedを生成しないように手配することも簡単です。 –

+0

とにかくWCFを通じてドメインモデルを渡すべきではありません。 –

関連する問題