從傳統的將業務層,服務層,數據訪問層和表示層構建到Web應用程序的方式轉變爲MVC設計模式,我覺得很困難瞭解它如何適應舊模式。ASP .NET MVC體系結構適合傳統的多層體系結構
似乎MVC模型本身已經完成了需要分離的問題,而這些問題是通過分層體系結構來實現的。請問有人可以在這個問題上談一談?
作爲參考,下面是我的理解它,請在此
MVC的視圖和控制器與視圖模型-are- 表示層
MVC模型一起分享你的觀點 - 能是 - 數據訪問層或業務層甚至業務層
從傳統的將業務層,服務層,數據訪問層和表示層構建到Web應用程序的方式轉變爲MVC設計模式,我覺得很困難瞭解它如何適應舊模式。ASP .NET MVC體系結構適合傳統的多層體系結構
似乎MVC模型本身已經完成了需要分離的問題,而這些問題是通過分層體系結構來實現的。請問有人可以在這個問題上談一談?
作爲參考,下面是我的理解它,請在此
MVC的視圖和控制器與視圖模型-are- 表示層
MVC模型一起分享你的觀點 - 能是 - 數據訪問層或業務層甚至業務層
我看到Asp.Net MVC部分僅作爲整個應用程序的視圖(或演示文稿)部分。
我也在努力解決如何以適當的方式構建應用程序的問題。
繼洋蔥架構我聽說here(尤其是圖像中發現here),我的解決方案看起來是這樣的:
Project.UI.Web遵循以下約定:(!)
摘要:
如果按照這個模型是有幫助的重點項目。Core:是real應用。它不擔心數據的真實持久性,也不關心它如何呈現。這只是關於「如何做」。但它規定了其他項目必須提供實現的規則和契約(接口)。
我希望這可以幫助你如何佈局一個Asp.Net MVC應用程序!
了Lg
warappa
我不明白核心服務實現是如何實現的。它不應該超出Project.Core的範圍嗎?這樣,你可以防止意外緊密耦合到svc而不是svc接口。 – Narayana 2013-12-10 07:50:11
非常基本的解釋:
如果您創建一個新的MVC應用程序,您將自動獲得一個控制器,模型和視圖文件夾。
您的控制器的行爲與您的業務層類似
模型是數據訪問/服務層
和視圖是表示層。
有關詳細解釋,請參見http://www.asp.net/mvc。
總之:沒有太大的變化。我只熟悉一些演示模式:MVP(模型,視圖,演示者,常用於windows窗體/ asp.net),MVC(模型,視圖,控制器)和MVVM(模型,視圖,視圖模型,通常在WPF/Silverlight中使用)。
鏈接:http://haacked.com/archive/2008/06/16/everything-you-wanted-to-know-about-mvc-and-mvp-but.aspx
上面的鏈接應該回答一些(如果不是全部)你的問題。
我通常編寫ASP.NET MVC應用程序的方式是至少包含CRUD操作的服務/業務層混合(因爲數據訪問既不屬於視圖模型也不屬於控制器,絕對不屬於視圖!)。
如果你使用enitiy框架怎麼辦?它確實以一套簡單管理的MVC數據模型的形式爲您提供抽象。你需要一個附加的數據訪問層嗎? – Max 2011-05-13 15:22:46
像Automapper這樣的東西可以用來將EF的實體映射到您的域模型。我建議將域模型保留在MVC模型名稱空間之外,並將它們放入它們自己的程序集中。 – 2011-05-13 17:12:05
正如其他人所說,它並沒有太大的變化。我的應用程序通常是架構這樣:
在服務器端MVC層,我的控制器方法很輕。他們通常在服務層對象上調用一個方法來獲取一些數據,並將其作爲Json數據傳遞給客戶端。
因爲我送Json回來,所以我的看法也非常輕而稀疏。通常只包含腳本包含和將用客戶端模板庫呈現的模板。
可能重複[如何MVC(ASP.NET MVC)帶3層架構可以一起工作?](http://stackoverflow.com/questions/3047230/how-mvc- asp-net-mvc-band-3-tier-architecture-can-work-together) – jgauffin 2011-05-13 11:17:50
這不是重複的,因爲另一篇文章討論的三層體系結構更多地來自物理的分離視角而不是概念上的分離。 – Max 2011-05-13 15:12:17