我用相似的標題查看了沒有成功的問題。我可以從業務層創建服務引用以從其他業務實體提取數據嗎?還是應該從服務層完成?業務層與服務層的服務引用
回答
這並不容易回答,因爲它可能會成爲一個巨大的哲學討論。但是,我認爲您的業務邏輯層不應該返回到您的服務層以獲取其他業務實體。
此場景的典型方法是在業務邏輯之上有一個Facade層。當需要檢索多個商業實體時,該層負責協調響應。所以:
服務 - >業務外觀 - >業務邏輯 - >數據
編輯:對於小型,簡單的應用程序,這是矯枉過正。刪除外觀層,並簡單地讓服務調用一個邏輯方法,或讓服務調用多個邏輯方法。
服務層實際上只是一個傳遞,你最好用盡可能少的邏輯。這使得可以替換服務層,或者在不需要進行服務調用時讓受信任的應用程序/服務直接(在本地計算機上)調用Facade層。
此方法還允許您在門面級別放置「信任線」,並在此處實施安全性。如果要進行安全檢查,並且可能還有其他事情在這個「信任線」上,那麼我們只需要一個服務調用到商業門面,所以我們不會爲每個需要檢索的實體重複這個邏輯。
外觀層只是調用邏輯層上的方法的一層方法。 Facade方法可以像調用邏輯層上的一個方法一樣簡單,而且它們可以像調用邏輯層上的多個方法一樣複雜,並協調合適的域實體甚至DTO的一致響應。
我可以繼續。確實有很多專門討論這個問題的書。希望這至少有助於廣泛的概述。
所以鮑勃你在說不!到業務層的服務引用?在這種情況下,你是否建議將商業門面的VS項目分開? (它與服務層分開)。 –
正確。希望您的業務層在安全機器上運行,並且客戶端代碼不會直接調用它們。客戶端代碼會調用服務層,服務層會調用業務外觀等等。一個單獨的項目通常是要走的路,但這取決於所有這些是多大。對於大型應用程序,是的,使用一個單獨的項目。 –
好的,謝謝! –
- 1. n層業務/服務層設計
- 2. 具有n層業務服務器的N層Web服務器
- 3. Windows服務與服務層
- 4. 服務層和Web API服務層?
- 5. 將業務層傳遞給WCF服務
- 6. struts動作類和業務服務層
- 7. 服務和服務層
- 8. 服務層模式:跨越多個服務的業務邏輯
- 9. 從服務層
- 10. Python服務層
- 11. 可以在業務層對象「服務」一個DAO層對象?
- 12. 業務層錯誤和服務層處理 - 最佳方式?
- 13. 服務層=應用層= GRASP控制層
- 14. 管理層vs服務層
- 15. jalo層vs服務層
- 16. 與服務API層和CRM
- 17. 將服務層與驗證層分開
- 18. 業務層中的Web引用或服務引用,其中是發佈的url?
- 19. 映射與服務層或業務邏輯位置
- 20. 控制器邏輯與服務/業務層邏輯
- 21. 業務層3
- 22. 服務層建議
- 23. AutoMapper在服務層
- 24. C#,GenericRepository,服務層
- 25. WPF MVVM服務層
- 26. ZF1 Doctrine2服務層
- 27. 又該服務層
- 28. 服務層驗證
- 29. 訪問服務層
- 30. Asp.Net Mvc服務層
謝謝Bob!剛剛爲以前的問題做過...... –