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