2017-05-25 17 views
1

webjobを使用してメッセージキューを処理し、Web APIを使用してREST要求を処理します。 同じ境界条件を持つこの2つのアプリケーションタイプの間でドメインを共有するソリューションは何ですか? 同じドメインDLLを参照できますか、それとも悪い設計ですか?webjobとweb apiの間でドメインDLLを共有しますか?

+1

明快にするために、WebJobとWeb APIアプリケーションを同じAzure Web App上で実行していて、両方で参照される単一のDLLを使用する利点/短所を知りたいのですか? –

+0

はい、それはもっと具体的にはビジネスDLL – ArDumez

+0

です。同様の質問への私の答えを見てください:https://stackoverflow.com/questions/43568325/sharing-custom-code-between-two-nodejs-microservices/43583668#43583668 –

答えて

1
私は次のプロジェクトを使用してVisual Studioのソリューションを設定することをお勧めします

  1. WebAPIのプロジェクト
  2. アプリケーション層プロジェクト
  3. WebJobプロジェクト 4 - N. [データアクセス層などの他のすべてのプロジェクト、 ]

WebAPIプロジェクトとWebJobプロジェクトはどちらもアプリケーション層プロジェクトを参照しています。

WebAPI内では、WebAPIプロジェクトとWebJobプロジェクトにそれぞれ独自のアプリケーション層DLLのコピーがあります。 DLLの1つのコピーをWebアプリケーションに保存し、2つのDLL間で共有することで何も得られません(数KBのディスクスペースを節約する以外に)。しかし、それはあなたの展開を複雑にします。

また、今後、WebJobを別のWebアプリケーションに移動することもできます。 2つの間でDLLの1つのコピーを共有すると、変更する必要があります。

+0

可能ですが、共有されないように推奨されているマイクロサービスマイクロサービス間のコードなので、webAPIとWebJobは同じマイクロサービスですか?それは同じEXEではありません..私は混乱しています – ArDumez

+1

@ArDumez彼が言っていることは、WebAPIとWebJobは同じマイクロサービスのための異なるプレゼンテーションレイヤーであると私は思う、私は –

+0

@ArDumez、ASP.NET WebアプリケーションWeb FooというAPIプロジェクト、Foo.DLLとそれをサポートするライブラリのすべてにコンパイルします。 Barと呼ばれるAzure WebJobプロジェクトを作成すると、Bar.exeとその参照ライブラリにコンパイルされます。 Applicationが各プロジェクトによって参照されるクラスライブラリである場合、FooとBarの両方にApplication.DLLの別のコピーがあります。これはあなたが望むものです。 –

関連する問題