2012-06-05 140 views
0

当我开发WinForms或WebForms应用程序时,我创建了一个解决方案并添加了多个项目。 BOL项目是一个用于业务对象的类库,还有一个用于ADO.NET相关内容的SQL和DAL项目,我有一个Utilities项目,其中包含诸如验证和whatnot等类的类。现在我通常称之为GUI的表示层包含表单。这些表单直接与连接到连接到DAL的SQL的BOL一起工作,等等...分层ASP.NET MVC Web应用程序

我相信你们都已经知道这一点,所以这里就是我困惑的地方。在使用MVC时,我看到的所有项目都包含这种类型的功能,但都在一个项目中,只是分隔到文件夹中。我看了书呆子晚宴的申请,甚至全部都在一个项目中。最终结果是一个DLL来处理这一切。这是一个好主意,还是你们将这些作品分成不同的项目?通常一个DLL在达到数据访问DLL类型之前必须经过另一个DLL。也许我只是对整个概念感到困惑。

回答

2

您可以随时将此逻辑图层分离为单独的物理图层(项目)。您可以为实体,一个用于数据访问代码等创建一个单独的项目..

这里是我的结构没有为我的receny项目

1)UI之一:标准的MVC项目已具备UI相关的东西。控制器和视图和相关的CSS东西&脚本。

2)实体:类库项目。我的商业实体在这里。这些只是POCO的代表我的领域模式(我使用这个CodeFirst数据库一代)。

3)数据访问:类库项目。我在这里有我的数据访问代码。还有Repositary,Interfaces和我的DBContext类。

4)测试:我的单元测试在这个项目中。

UI项目提供了我的实体和我的数据访问项目。

数据访问项目有一个对我的实体的引用,因为我的Repositary方法返回对象。

我的UI项目ViewModels文件夹中也有几个ViewModel类。我用它来显示一些屏幕,我必须显示来自多个域对象的数据。我有一个映射/服务类将域对象映射到视图模型对象。如果你的项目是bifg,那么你可以在同一个解决方案下将它作为一个serperate项目。

解决方案看起来像这样。 (这是一个开源项目,我的工作)

enter image description here

+0

确定这是如果人们正在做的所有,因为这是我用什么我不知道。我将遵循相同的模式。谢谢,还有一个很好的详细例子。 –

+0

@ user1066133:非常欢迎您。很高兴我能帮上忙。 – Shyju

相关问题