我們正在使用WSSF構建WCF Web服務。這個想法是,它會通過服務暴露我們的主數據庫,並允許我們在服務之上構建各種應用程序和網站。目前,我正在構建一個簡單的客戶端應用程序,該應用程序將從該服務下載一些數據,對其進行處理,然後將其作爲報告CSV文件提供給用戶。WCF /客戶端應用程序 - 業務邏輯應該去哪裏?
現在的問題是業務邏輯(操縱數據)應該放在哪裏?我想我會把它放在服務裏面。我已經有了一個業務層,其中包含幾乎與數據庫一一對應的簡單對象(客戶,訂單等)。我認爲我會製作一些「更高級別」的對象來操縱數據。例如,通過使用客戶,訂單和其他對象並生成報告等。我認爲最好的地方在於服務的業務層。這樣,如果需要,我們可以將這個邏輯用於各種不同的應用程序。
不幸的是,我的老闆不同意。他希望有一個「關注點分離」,並說這個邏輯的正確位置應該位於客戶端應用程序內的業務層,而不是服務中。我想這可能會更簡單,但我想在服務業務層中使用強大的對象模型編寫此代碼。服務公開的對象不是「真實」的對象,實際上只是輕量級的數據結構,沒有服務業務層中存在的完整對象模型的能力。
你們認爲什麼?非常感謝您的幫助。
乾杯 馬克
問他:如果我們需要另一個客戶端,我們應該複製所有的業務邏輯,還是使用集中版本? – 2009-12-02 01:58:15
繼續使用@Rubens Farias的邏輯,如果業務邏輯需要修復並駐留在客戶端,那麼*所有*客戶端需要更新。如果它在服務中,那麼只有服務需要更新。 – 2009-12-02 02:37:10
感謝您的回覆。是的,我也認爲可重用性很酷。我想主要的缺點是更新服務可能會破壞所有現有客戶端。 – 2009-12-02 04:15:25