关于ASP.NET MVC项目结构的建议?

时间:2013-03-09 10:08:34

标签: asp.net-mvc web asp.net-mvc-areas

我是一名计算机科学专业的学生,​​虽然我之前曾与MVC合作,但我从未从头开始构建项目。该项目是一个摄影课程,老师将能够上传特色照片。学生必须登录才能看到图片和作业。

我希望学生们登录www.mysite.com,以及admin.mysite.com的老师,所以我们在一个解决方案中有2个不同的网站。

据我所知,我的解决方案项目是:

  • DataLayer
  • BusinessLogicLayer
  • 管理员网站
  • 网站

注意:Gearhost将成为我的主人。

现在,我将如何在两个不同的域上托管AdminWebsite和网站,而它们都来自同一个BusinessLogic和DataLayer?

我是否应该制作两个在同一个数据库上工作的不同项目?甚至可能吗?

我已经进行了研究并阅读了一些关于区域的内容,但是我找不到一个好的教程,是否最好使用区域,如果是这样,你能给我一个链接吗?好的教程,还是一个简单的例子?

感谢阅读!

2 个答案:

答案 0 :(得分:1)

简单的网站和实施通常只需将一个项目用于公共,会员和管理站点。

您应该能够根据用户权限对每个区域进行分区,因此无需创建两个单独的网站。

我会建议以下资源以获得最佳实践和示例。

asp.net

启动MVC页面的最佳位置

Stackoverflow上还有大量有关最佳做法和网站布局的问题和社区维基条目。

希望这有帮助

答案 1 :(得分:1)

答案真的取决于。取决于您的项目规模。你可以在一个项目(主MVC)中拥有它,你可以进一步分割它。这个项目的标准形式是这样的:

project.WEB
project.Common (here belongs common functionality between projects, so helpers, utilities, even some extension methods belong there)
project.Model (Data entities)
project.BL //(Business Logic)
project.DAL //(Data Access Layer or Persistence)
project.Tests

*请注意“项目”是您的命名空间根目录。如何处理名称空间命名,您可以在那里检查它:namespace naming conventions

你可以进一步分裂它。但是,我建议你不要夸大其进一步分裂。当你必须这样做时,你会知道(一个项目增长太多,有逻辑分离......)。您尝试遵循原则YAGNI

还有一件事。如果你想“按书”出现,请查看DDD - Domain Driven Desing:http://msdn.microsoft.com/en-us/magazine/dd419654.aspx