0

我必须使用实体框架(www.company1.com www.company2.com www.company3.com)构建3个MVC Web应用程序。这些网站都将访问相同的SQL Server数据库,但会以他们自己的方式(外观,数据等)稍有不同。很可能,所有三个MVC应用程序将托管在同一台服务器上,但绑定到不同的域名。3解决方案中的MVC项目

目前在Visual Studio中,我有以下结构,我的解决方案

  • 域类
  • 数据层
  • 服务
  • MVC应用程序1
  • MVC应用程序2
  • MVC App 3

我宁愿使用Area's,但我不能,因为每个网站都必须分配它自己的不同域名。我想我只是寻求保证,以这种方式构建我的解决方案在发布应用程序时不会给我带来任何困难。我对共享dbContext的网站稍微偏执一些,但是,我知道很多声音很愚蠢。

如果任何人都可以建议我,如果这一切看起来不错,或者有更好的方式来做我想问的事情,那将是非常棒的。

非常感谢。

+1

这是相当正常的行为。多个应用程序使用相同的数据源。同时连接到数据库也包括在这[SO帖子](http://stackoverflow.com/questions/3615788/simultaneous-connections-to-sql-server-using-the-same-name-and-password-is -ther) – Stokedout

回答

1

我出于同样的原因做了同样的事情。我有一个CMS必须驻留在不同的主机名。它工作正常。

诀窍是找到跨MVC应用程序共享代码的方法。为了避免循环依赖等,我创建了一个MVC应用程序来存放诸如我的控制器的服务器的图像文件,可重用的HTML助手等。

1

只要您有一个验证和区分Datalayer中的站点的好方法,您就不用担心。你如何验证这个?

我也总是会将模拟代码和页面放在主项目中,因此您不会复制部分或甚至整个页面的不同网站。 (我的猜测是你已经这样做了)

+0

我不确定“验证和区分Datalayer中的网站”是什么意思,为什么我需要这样做?这三个网站都将使用完全相同的数据库。关于在三个站点上重复使用代码,我的服务层将为此提供帮助。 – tgriffiths

+0

我的意思是,你如何验证该网站无法访问网站b的数据。我看到开发人员使用URL之前不是我想法中的最佳方法。单独项目中更静态不变的参考可能更安全。 因此,您可以安全地验证该网站a只允许从实际由网站A拥有的数据库表中获取数据 –

+0

我明白您的意思是现在凯文,这是一个很好的观点。此验证将在我的代码中处理。 – tgriffiths