2011-06-13 95 views
1

我有一個帶有表示層和業務層的Web應用程序作爲單個項目。一個是Web應用程序,另一個是類庫。我已經添加了一個Web應用程序的Web引用來使用Web服務。我沒有使用服務API的麻煩,但我發現自己在我的表示層中添加了很多業務層類型邏輯來利用這個API。如果我可以更改一些業務層代碼來使用Web服務,我會很喜歡它,但是這種聲音的配置就像是一個大通告,不是。無論如何,我希望我的對象能夠繼續做他們正在做的事情,但是它也可以使用Web服務,但是我發現自己不得不在我的表示層中創建一個幫助器/管理器類以使用Web -服務。這使我需要在我想對服務添加的對象執行操作時對代碼進行更改。攻擊這個問題的正確方法是什麼?將依賴於Web引用的業務邏輯從表示層分離出來

我甚至不確定在所有漫無目的的任何地方都有合法的問題,但如果任何人可以提供任何有用的話我會非常感激。

謝謝!

+0

聽起來好像我需要查看在.net Web應用程序中實現服務層的正確方法。我目前只是在Web應用程序中添加一個Web引用,並在我對業務層的調用旁邊訪問服務API。我希望能夠從我的業務層使用Web服務,以避免在整個應用程序中添加相同的代碼。 – spaghetticowboy 2011-06-13 19:07:07

回答

1

,我走近這個問題的方法是創建一些這種效果:

  • 數據訪問層
  • 業務邏輯層
  • 服務層的任何業務邏輯(泯滅,只是一個接口)


  • 服務訪問層(沒有任何業務邏輯或表示邏輯)

  • 表示層(MVC,表示邏輯等)

你的服務層是沒有商業邏輯的,現在可以在不影響你的業務邏輯改變。客戶端的服務訪問層也可以避免服務接口中的更改。

0

如果您的服務層僅公開類似服務的方法(如可能簡單的CRUD方法爲SaveInvoice(InvoiceDTO)),那麼在大多數情況下,您應該可以。 但是,我們可以使用您的一些代碼。

有建築服務層,有狀態的真的很多方面,不-有狀態等等等等,所以儘量解釋您在演示文稿中得到什麼重複

0

也許你應該有你的服務封裝業務邏輯呢?這樣,您的表示層只能訪問服務 - 服務將訪問業務邏輯層。