2010-12-08 7 views
6

データベースからデータを取得して静的なHTMLページを簡単に構築できるようにする必要があります。は、サーバの処理を軽減します(80Gbの帯域幅を無駄にしています1日あたり)。私は、WCFサービス(またはASMX Webサービス)を作成する必要がありWebServiceまたは単純なMVCコントローラ?

私の質問は(WCFは、同じサーバになりますので、私はまだそれを使用して、しかしはるかに少ない私としてこのデータをプルする

簡単です

public class ServiceApiController : Controller 
{ 
    public ActionResult GetPrizes(string calendarGuid) 
    { 
     return Json("..."); 
    } 
    public ActionResult GetWinners(string calendarGuid) 
    { 
     return Json("..."); 
    } 
    public ActionResult AddSubscriber(string calendarGuid, string[] args) 
    { 
     return Json("..."); 
    } 
    public ActionResult ReclaimSubscriberEmail(string calendarGuid, string email) 
    { 
     return Json("..."); 
    } 
    public ActionResult RequestContact(string calendarGuid, string[] args) 
    { 
     return Json("..."); 
    } 
} 

、ちょうどそれを呼び出す:ちょうど私が本当に必要と)

をページを処理するために無駄にしないか、私は次のようにシンプルなコントローラを作成する必要がありますものを得る「メートルどのJavascriptフレームワークからでも直接使用できます(間違いなく、私の素敵なjQueryから)。

答えて

8

に依存します。 WCFサービスは、HTTPに頼る必要がなく、代わりに直接TCP接続を使用することができるので柔軟性があります。また、SOAPを公開するのは簡単です。ビヘイビア、エンドポイントなどのweb.configの設定は、はるかに複雑なものです。

一方、MVCは、(共有アセンブリの再デプロイメントを必要とするため)DataContractsを変更するのが少し難しい場合があるため、このような設定が迅速になる可能性があります。

WCF =より多くの「ソリッド」で、より安定したプロトコルを提供します。つまり、プロバイダとコンシューマの間で厳しい契約を結ぶことができます。

MVC =より柔軟で設定が簡単ですが、厳しい契約はありません.Jsonのフォーマットを変更すると、クライアントは最初に気づかずに中断する可能性があります。

上記のようにWCFを使用する理由がない限り、私はMVCを使用します(クライアントとサーバー間の安定/保証/発見可能な契約、SOAPの要件、またはIISをセットアップするのに不便な/不必要な場合)

0

いくつかのデータを表示するためのUIフレームワークが必要ない場合は、Webサービスが好きです。

0

私は個人的にデータを公開するWCF Webサービスを作成します。より柔軟になり、異なるデータ形式を処理する複数のエンドポイントを公開することができます。JSON、XML、...このようにして、さまざまなクライアント(Web、Windows、モバイルなど)からサービスを利用できます。

+0

'Controller'を通して' Content(myClass.ToXML()) 'や' Json(myClass) 'を返すだけで、マイケルが指摘したように簡単にできます... WCFの設定は、トリッキー(私は既にそこに行っています): -/ – balexandre

+0

フォーマットリクエストパラメータを探すアクションフィルタでも同じ結果が得られます。例えば ​​'\ path \ to \ resource?format = xml'や' \ path \ to \ resource.json'のように – Ryan

関連する問題