2014-09-27 169 views
0

我想知道在asp.net mvc中實現三層體系結構意味着什麼?asp.net中的三層體系結構mvc

我看過很多關於這個的帖子,這些都是以這種方式提到的。但我很困惑。 將MVC模型分離到稱爲業務層的另一解決方案,稱爲在mvc中實現三層體系結構?如果不是,在mvc中實現三層體系結構的正確方法是什麼?

1型
表示層: 「控制器和視圖」,從MVC模式。
業務層:來自MVC模式的「模型(數據)」。
數據訪問層:原始數據訪問層。

2型
表示層:一切都在MVC除了模型
業務層:單獨的模型出來
數據訪問層:數據庫本身

回答

1

它更像是這樣的:

  • 介紹層:與MVC
  • 業務層:一個單獨的 核心域模型(它 MVC中的 'M')。它可能包括一個服務 層,以提供一個乾淨的界面模型。
  • 數據層: 數據庫

MVC本身只是一個表現層 - 具體模式,ASP.NET MVC是簡單地創建的Web UI的框架。

在MVC模型也被稱爲視圖模型,這意味着它的唯一責任是對查看模型;它在控制器查看之間傳輸數據以保持它們的解耦。 不要將MVC中的模型與適用於業務層的域模型模式混淆。

將業務邏輯放入MVC視圖模型可能適用於更簡單的問題或原型,但它不會成爲他們稱之爲三層系統的東西。

Microsoft Application Architecture Guide - Microsoft提供的一本免費電子書,介紹如何設計和構建解決方案等等。

+0

我添加了一個鏈接到相關的電子書從微軟 - 它是免費提供的 – astreltsov 2014-09-28 03:24:30

0

我還沒有看到MVC的三層架構的最佳選擇。這真的歸結爲什麼最適合你。在分享我們如何實現MVC架構時,它可能不是最好的,但今天最好的方式是明天的第二好方法。

Web UI的項目包含視圖和控制器 - 表現層

在一個單獨的項目,創建由控制器稱爲服務類 - 業務邏輯層。

模型類也在此第二個項目中充當鏈接到表示層的業務對象層。

任何需要與db進行交互的服務都在第二個項目的獨立類中。 - 數據訪問層。

此外,我們有一個服務組合類,根據需要生成所有或任何特定的服務。 - 我也將這與業務邏輯層相關聯。

對於我們所做的,這個工程很好。

+1

這混淆了[圖層和層](https://stackoverflow.com/questions/120438/whats-the-difference-between-layers -and-層) – astreltsov 2014-09-28 03:18:46