私は、同様のタイトルの質問を成功裏に見ました。他のビジネスエンティティからデータを引き出すためにビジネスレイヤからサービス参照を作成することはできますか?それともサービス層から行うべきでしょうか?ビジネスレイヤーからサービスレイヤーへのサービス参照
答えて
これは、巨大な哲学的議論に巻き込まれる可能性があるため、答えにくいです。しかし、私はあなたのビジネスロジック層が他のビジネスエンティティを得るためにあなたのサービス層に戻るべきではないと思います。
このシナリオの典型的なアプローチは、ビジネスロジックの上にファサードレイヤーを置くことです。そのレイヤーは、複数のビジネスエンティティーの検索が必要な場合に、応答を調整する責任があります。だから、:
サービス - >ビジネスファサード - >ビジネスロジック - >データ
EDIT:小さな、簡単なアプリケーションのために、これはやり過ぎです。ファサードレイヤーを削除し、単にサービスメソッドを呼び出して論理メソッドを呼び出すか、サービスが複数のロジックメソッドを呼び出させるようにします。
サービスレイヤーは実際にはパススルーに過ぎず、できるだけロジックが少ない方がよいでしょう。そのため、サービス層を交換するか、サービスコールを行う必要がないときに、信頼できるアプリケーション/サービスに(ローカルマシン上の)ファサードレイヤを直接呼び出すことができます。
このアプローチでは、ファサードレベルで「信頼ライン」を配置し、セキュリティを実装することもできます。セキュリティーチェックが行われる場合、そしておそらくこの「信頼ライン」で他のものが実行される場合、ビジネスファサードへのサービスコールが1つだけ必要なので、検索する必要がある各エンティティごとにこのロジックを繰り返しません。
ファサードレイヤーは、単にロジックレイヤー上のメソッドを呼び出すメソッドレイヤーです。ファサードメソッドは、ロジックレイヤー上の1つのメソッドを呼び出すのと同じくらい簡単なものでもよく、ロジックレイヤー上の複数のメソッドを呼び出し、適切なドメインエンティティ、またはDTOのコヒーレントな応答を調整するだけの複雑さがあります。
私は続けることができます。実際、この議論に専念する本が全部あります。うまくいけば、それは少なくとも幅広い概観に役立ちます。
ボブはあなたがいいえと言っている!ビジネス層からのサービスリファレンス?この場合、ビジネスファサードのための別のVSプロジェクトをお勧めしますか? (これはサービスレイヤとは別のものです)。 –
正しい。うまくいけば、あなたのビジネス層は安全なマシン上で実行されており、クライアントコードはそれらを直接呼び出さないことが望ましいでしょう。クライアントコードはサービスレイヤを呼び出し、サービスレイヤはビジネスファサードなどを呼び出します。通常は別のプロジェクトがありますが、これはどれだけ大きなものかによって異なります。大きなアプリの場合は、別のプロジェクトを使用します。 –
ありがとうございました! –
- 1. ビジネスレイヤー上のサービスレイヤーのプログラムロジック
- 2. net.pipeサービスへのサービス参照の追加
- 3. C#クラスへのサービス参照の統合
- 4. アプリケーションへのサービス参照の追加
- 5. MVC Ninject Iデータレイヤーへの参照は避けたいがサービスレイヤーに限定する
- 6. LvalueからRvalueへの参照バインディング
- 7. ASP.NET Web APIサービスへのサービス参照の追加
- 8. 参照WPFカスタムコントロールライブラリからVSIXプロジェクトへ
- 9. C++の参照への参照を間接参照
- 10. エンティティ参照Webサービス
- 11. 部分参照からhtml headタグへのスクリプト参照の追加
- 12. Web参照とサービス参照の違いは何ですか?
- 13. オープンフォームへの参照
- 14. Android:findViewByIdへの参照
- 15. 参照から参照を含む配列へのハッシュを取得するPerl
- 16. サービス参照の問題
- 17. サービス参照の設定
- 18. wcfサービスへの参照を取得する
- 19. Silverlightはrubyサービスへの参照を追加できません
- 20. 非同期サービスへの参照を挿入する - 欠点
- 21. サービス参照からJava Webサービスへの呼び出しで何も返されない
- 22. Webサービス参照の追加後のあいまいな参照
- 23. xmlのandroid.R.drawable.ic_menu_preferencesへの参照
- 24. C#のメインスレッドへの参照
- 25. VB6のUserControlへの参照
- 26. 別のリポジトリへの参照
- 27. net tcp wcfサービスへのサービス参照を追加できません
- 28. サービス参照複合型
- 29. サービスからアクティビティの参照を取得する
- 30. Web参照のサービス参照を追加する
ありがとうございました!ちょうど前の質問のためにした... –