0

オンライン バージョンだけでなく、スタンドアロン バージョンのアプリケーションも使用できるようにする必要があります。これを行う 1 つの可能な方法は、スタンドアロンを満たす WPF バージョンと、MVC Web バージョンを用意することです。

明らかに、それには 2 つのコード ベースが必要です (ただし、フロント エンド コードを除いて、それらは同一である必要があります)。Web API セルフホスティングは、必要に応じて本格的な Web アプリをホストできるほど安定していますか?

4

4 に答える 4

0

私は Web API を使用して、運用中の多数のプロジェクトを自己ホストしています。Web サイトhttp://www.hypermediaapi.comは、自己ホスト Web API です。

于 2014-05-07T11:17:51.677 に答える
0

Web API はセルフホストで実行できますが、ASP.NET (MVC) を実行するにはIIS (Express)などのサーバーが必要です。

できることは、マシンに IIS Express をインストールし、その中で Web アプリをホストし、必要に応じて Web API を自己ホストすることです。もちろん、IIS Express が既にインストールされている場合は、その中のすべて (Web アプリと Web API の両方) を実行することを選択することもできます。

于 2012-08-23T14:22:12.027 に答える
0

同じデータベース/サービスを使用して内部/外部アプリの両方を使用しても問題がなければ、IIS で単一バージョンの WebAPI サーバーをホストし、それを API コントローラーに使用するだけです。

次に、WebAPI サービスを呼び出す 2 つの同一の ASP.Net MVC サイト (デスクトップと Web ではなく) を使用できます。1 つはイントラネットでホストされ、もう 1 つはインターネットでホストされます。どちらもビジネス機能とデータ永続化のために WebAPI にアクセスします。

ここでの目標は、維持するコードの量を減らすことです。基本的には、WebAPI プロジェクトと ASP.Net MVC サイトの 2 つのプロジェクトです。

于 2012-08-23T14:37:00.737 に答える
0

このシナリオでは、2 つ以上のコード ベースを用意する必要はありません。必要なのは、アプリケーションに API を提供するライブラリです。このライブラリは、デスクトップ アプリと思われるスタンドアロン アプリケーションで直接使用できます。

次に、同じライブラリのラッパーにすぎない WCF または Web API、または両方のレイヤーを作成できます。WCF/Web API コントラクトは DTO と同じにすることができるため、WCF サービスの実装は次のようになります。

SomeObject IMyService.DoStuff(string param)
{
  var myLibrary = new MyLibrary();
  var someObject = myLibrary.DoStuff(param);
  return someObject;
}

唯一のオーバーヘッドは、ライブラリでインターフェイスが変更されたときに、サービス インターフェイスでも変更を繰り返さなければならないことですが、実際のビジネス ロジックは複製されません。インターフェイスを共有することもできます。つまり、API は、ライブラリ インターフェイスにコントラクト属性を持たせてもかまわない場合、WCF サービスによって実装されているものと同じインターフェイスを公開します。

于 2014-05-28T11:59:29.963 に答える