2017-08-31 50 views
0

嗨,我學會了網頁API 2最近,我工作的一個示例項目now.I是跟着我project.This分層架構的流Repository模式和Web API

控制器=>業務層=>數據層

現在我讀到這聽起來更好時下庫模式的一些文章。

我看到像

控制器=>服務流程=>庫

有兩個流之間的任何顯著區別? 作爲一個初學者,我應該流哪些建築風格? 有人可以幫助我理解這些模式嗎?

+0

庫僅僅是實現DataAccessLayer不同的方式。在您的數據訪問層中,您可以使用由某些ORM(如Entity Framework或NHibernate)備份的存儲庫,而不是使用ADO.NET類。服務層可以被稱爲你的業務層,你有服務類而不是管理類。但他們都會有代表您的業務邏輯的代碼,例如驗證,並且它們與DAL或存儲庫集成以用於數據檢索和存儲。 –

+0

無論您選擇哪種方法,一些基本原則適用於他們兩個,如合同設計,控制反轉,依賴注入等 –

+0

所以服務=業務層和庫=數據層?我正在使用實體框架,所以如果我改變爲第二流提到什麼好處? –

回答

0

當您使用存儲庫的服務你應該讓通用和使用有關的工作(UOW)的單位,所以你不要對每一個實體CRUD操作重複自己。然後添加一些對象關係映射器(ORM),如實體框架。您最好還使用域對象來存儲您的邏輯,並使服務返回數據傳輸對象(DTO),因爲最佳做法是讓您的服務保持小而乾淨。然後你還需要包含一些映射工具/邏輯來將DTO映射到域對象。

你看到這一切會。突然間,你的複雜性和障礙物遠遠超出你的需求。因爲客戶關心的只有一件事是您的產品質量,而不是一些花哨的架構。

但由於項目增長是更重要要有正確的架構,自動測試等等,所以它是在大型項目有效。如果你想嘗試和學習這是一個很好的機會,但如果你在生產中運行應用程序,我寧願不做那麼大的改變。

TLDR:它們都是有效的