2011-09-12 35 views
1

我只想在MVC模式中弄清楚屬於模型的內容,特別是MVC3中Models文件的內容,與存儲庫和對象的內容。MVC - 模型,對象和庫之間的差異

現在,在我目前的解決方案MVC3,我有4個項目:

  1. 稱爲「對象」的一個項目,其持有約在我的應用程序中的所有核心對象的信息。
  2. 一個名爲「Data」的項目,其中包含有關每個對象的數據上下文和存儲庫的信息信息(使用MVC3腳手架創建)
  3. Web項目,其中包含控制器,視圖和 - 這個問題 - 模型
  4. 單元測試項目

我真正想獲得澄清的是什麼之間應在Objects項目與Web項目的模型文件夾中發生的事情去區別。現在我只使用Models文件夾來保存我稱之爲「視圖模型」的東西,它通常包含核心對象的組合。該文件夾中的文件是否只包含定義模型內容的定義,還是應該包含控制器可能調用的其他代碼?

我認爲我對控制器和存儲庫都有很好的理解,但是有時我會對某些代碼是否應該在一個或另一箇中感到困惑。那裏有什麼特定的指導原則或限制,對於什麼絕對不應該放在控制器中,而應該放在存儲庫或模型中?

一如既往的感謝。

+0

我個人將我的viewmodels放入ViewModels文件夾樹和由Entity Framework生成的模型放到Models文件夾樹中。我懷疑別人會有其他的方法。從概念上講,使用EF我習慣於讓我的控制器處理數據庫上下文並調用'context.whatever.Add(myThing)'並調用'context.SaveChanges()' - 這可能不是「最好的」辦法。 – itsmatt

回答

1

我們做一些非常相似的事情,除了對象和數據被組合在一個被所有項目引用的核心庫中。 MVC項目中的models文件夾嚴格適用於View Models。

如果你的控制器需要額外的類,它真的取決於它需要的地方。我通常會爲HtmlHelpers,屬性和過濾器包含一個帶有子文件夾的助手文件夾。如果它是一個在MVC項目之外存在的依賴項(在所有項目中使用的公共類),我會將它添加到Core中。

相關問題