WCFサービス、WCFデータサービス、Web API、SignalR?何を使用するのですか?

私はこのための簡単な答えが一つもないかもしれないことを知っていますが、誰かが私を正しい方向に向けることができたら嬉しいです。

当社のオフィスには独自のMS SQLデータベースを持つASP.NET webformsアプリケーションがありますが、今は当社のオフィスではない別のMS SQLデータベースからこのアプリケーションの一部のデータを表示したいと考えています。 Webサーバーからデータを直接取得するのではなく、サーバー側にデータを要求する必要があります。

このリモートデータベースへの直接SQL接続は使用しませんが、データを返す前にビジネスロジックを実行できるサービスを作成することをお勧めします。ビジネスロジックは非常に単純です(一部の値を取得して平均を返すなど)。

数年前、私たちはBasicHTTPBindingを使ってWCFサービスを作成することによって、ほとんど同じことをしました。

しかし、今、数時間の研究をした後、私はちょっと混乱して、最良のアプローチは何ですか?

  • WCFサービス
  • WCFデータサービス
  • ASP.NET Web API
  • SignalR

多分誰かが私に良いヒントを与えることができるでしょうか?

1
SignalRはこのリストに属していません。それは任意のASP.Net WebSite/Service /内で使用することが可能です...
追加された 著者 Jobo,

1 答え

あなたはマシンツーマシン通信を探しています。その場合、WCFはまだ私の経験で残りの部分を打ち破っています。

交換するエンティティのデータコントラクトを定義し、WCFサービスでロジックを喜んでコード化するだけです。次に、クライアントを生成し、適切なバインディング(machine-to-machine、net.tcpが効率的な候補のように見えます)を適用して、話を外します。

残りの部分については、WCF Data Services - データモデルがデータベースモデルと一致する場合にうまく機能しますが、これはほとんどありません。カスタム操作が必要な場合や、データベースエンティティとは異なるエンティティを返す場合、Data Servicesは単純なWCFよりも面倒です。

ASP.NET Web APIとSignalRは、主にブラウザからの消費を目的としています。強く型付けされたクライアントを生成するのは難しいです。

0
追加された
@Joboは.NETからのRESTサービスのデータを強く型付けするためのフレームワークを 1つという名前にして、Web APIからオブジェクトを送信できるようにしてください。可能な~~ WCF。
追加された 著者 CodeCaster,
@ジョボと私はRESTに対して何もしていない、私の質問は誠実だった。どちらのオプションもその場所を持っていますし、Webや他のクライアントを後で追加することはRESTで簡単になります。ちょうど私がWCFのコード生成が大好きなので、退屈な(de)シリアライゼーションコードに心配する必要はありません。
追加された 著者 CodeCaster,
私は "Web Apiはブラウザのためのもの"という部分に同意しなければならない。 Web Apiは、シンプルさとRESTまたはRESTfulサービスを作成する能力が優れているため、多くのクライアントにとってサービスに簡単にアクセスできるようになります。閉じた環境ではこれは問題ではないかもしれません。
追加された 著者 Jobo,
@CodeCaster確かにWCFはここにぴったりです。私はちょうどそれがドキュメンテーションを提供していると言っています。Web Apiは、より多くの異なるクライアントを可能にし、ブラウザ消費者向けではありません。私はむしろWCFが通常もたらすすべてのオーバーヘッドを処理するよりも、RESTサービス用のクライアントを書くことにします。ちょうど私の意見と再び、私はWCFがここでは良い選択ではないと言っていません。
追加された 著者 Jobo,
あなたの答えをありがとう。これは自分の考えを確認するものです。私はちょうど単純なWCFサービスを作成し、閉鎖された環境(第3パートは関与していない)にあり、強く型付けされたデータが必要であるため、他のものについては忘れてしまいます。
追加された 著者 Jeroen1984,