現在,我有一個沿着Models項目,Service項目,Utilities項目和幾個Datastores項目的ASP MVC Web應用程序,這些項目充當一個或多個域模型的存儲庫。我對每一層的分離感到非常滿意,但我堅持要從服務層返回到Web應用程序。什麼從服務返回到ASP MVC網絡應用程序?
例如,當用戶嘗試註冊時,控制器會收到一個RegisterViewModel。個別部分(電子郵件,密碼等)被髮送到服務層,該服務層使用guid,status,createdate等來構造成員域對象,將其發送到存儲庫以存儲並最終返回用於web應用的成員對象以重定向到/會員/ {GUID}。
但是,如果電子郵件已經存在,服務層應該如何通知Web應用程序?在更復雜的情況下,我可能需要檢查多個域對象和業務規則的存在/有效性,因此必須一次返回多個錯誤。另外,我不希望異常情況冒泡到Web層,因此服務層會捕獲所有異常,但需要通知Web層某些方面。
即使我找到一種方法來返回所有這些,Web層將負擔處理所有這些併爲用戶提供各種反饋。控制器代碼將是龐大的和錯誤修剪。演示文稿的服務結果是否有最佳做法?我應該消除單獨的服務層並將代碼放在控制器內部嗎?任何想法都歡迎。
感謝您的代碼。我可能會做這樣的事情,但也許爲每個服務電話定製結果。 –