2013-01-20 126 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