2013-01-20 182 views
1

我知道這已被各種帖子回答,但使用VS2012MVC4,我不知道是否有更新的方法或新的方法來做事情。MVC - Business Objects

我有一個大型的企業應用程序,其中有22個項目。它有一個複雜的大型商業對象/邏輯項目,並有多個表示層。使用MVC 4在新的表示層上工作。在此之前我從未使用過MVC

這裏是我的問題:

  1. 人們如何處理這種模型在這種情況下?所有的微軟例子都非常簡單。
  2. 我已經看到帖子自動映射器,並建議deves使用簡單的模型和BO層提取,但像自動映射器這些工具中的一些似乎已經空轉,有MVC現在這樣做的圖書館?

我只是想在開始之前找出最佳實踐,似乎通常我會在事後才弄清楚。

回答

0

我把我的MVC應用分成幾個不同的項目。

  • AppName.Configuration:處理應用的任何配置(即,拉web.config中/應用設置等)
  • AppName.Data:這是執行所有DB訪問該數據層(無商業邏輯)。 DBML/EDMX居住在這裏,我的倉庫類也住在這裏。
  • AppName.Models:這是我爲所有MVC定義的ViewModel以及整個應用程序需要的其他模型對象。
  • AppName.Services:這是我的業務層,所有的一切都必須經過這裏才能到達數據層或表示層。 ViewModels是從數據庫對象構建的,數據驗證發生在這裏等。
  • AppName.Web:這將是MVC應用程序。
  • AppName.Data.Test:對於數據應用單元測試
  • AppName.Services.Test:爲MVC控制器
  • AppName.Web單元測試:對於服務
  • AppName.Web.Test單元測試。 UI.Test:單元測試的Web用戶界面(使用華廷)

我不使用任何自動映射器,因爲我清楚地定義一個特定的視圖模型爲應用程序的每個視圖。如果視圖不需要,它不會進入視圖。

大多數MVC的例子是如此基本,它們顯示在Web應用程序的一切(數據,模型,業務邏輯在控制器等)

我希望這有助於。

+0

我真的很感謝你的建議;我們在其他項目中擁有大部分這些圖層。聽起來像對我來說最好的事情可能是僅爲視圖模型創建一個新項目。或者簡單地將視圖模型添加到我們當前的BO項目中,以供任何MVC應用程序使用。我還需要添加一個控制器測試項目,感謝您在示例中包含該項目。我希望我們看到更多的答案,會好奇的看看別人的想法。 – Joe