2

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

我希望学生登录 www.mysite.com,教师登录 admin.mysite.com,因此我们在一个解决方案中拥有 2 个不同的网站。

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

  • 数据层
  • 业务逻辑层
  • 管理网站
  • 网站

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

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

我应该改为在同一个数据库上创建两个不同的项目吗?甚至可能吗?

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

谢谢阅读!

4

2 回答 2

1

对于简单的站点和实施来说,只为公共站点、成员站点和管理站点使用一个项目是一种常见的做法。

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

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

以及在asp.net上启动 MVC 页面的最佳位置

Stackoverflow 上还有大量关于最佳实践和网站布局的问题和社区 wiki 条目。

希望这会有所帮助

于 2013-03-09T10:21:34.153 回答
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

*注意“项目”是你的命名空间根。如何处理命名空间命名您可以在那里查看:命名空间命名约定

而且您可以将其拆分得越来越远。但是,我建议您不要夸大进一步拆分它。当您必须这样做时,您会知道(一个项目增长过多,存在逻辑分离......)。您尝试遵循YAGNI原则。

还有一件事情。如果您想“按本书”去那里,请查看 DDD - 域驱动设计:http: //msdn.microsoft.com/en-us/magazine/dd419654.aspx

于 2013-03-09T10:37:19.430 回答