如何组织内部和外部站点的VS解决方案



我正在开发一个具有intranet和面向internet的网站的web应用程序。每个应用程序将存在于物理上不同的服务器上。不同的网络应用程序将使用许多通用代码,因此最大的区别在于外部网站提供的功能,远低于内部版本。然而,外部的显然会有不同的web.config、sitemap等,以及一些只出现在外部的页面上的页面。

我想知道.NET中是否有一种标准的方法来说明如何在解决方案中进行部署,无论是从代码管理的角度还是从部署的角度。我可以很容易地做一些简单的事情,比如将相同的应用程序和所有代码部署到两台服务器上,只是可能使用不同的登录页面,然后使用基于角色的安全性来限制外部用户看到的内容。然而,这对我来说真的很有味道,因为我讨厌在外部服务器上拥有各种不需要的文件。

我认为应该有一些方法来制定解决方案,这样他们就可以利用公共代码(包括公共页面)。显然,从其他项目构建的DLL不是共享的问题,而是如何共享前端页面,并为每个页面设置不同的部署。

也许我可以把它们都放在同一个Visual Studio项目中,然后调整MSBuild脚本来做这些肮脏的工作?

谢谢你所能提供的一切!

似乎没有人对此有任何意见,所以我会告诉你我打算做什么,以防对其他人有帮助。

我将用External、Internal和Common文件夹来布置我的Web项目。我将使用一个Web安装项目来帮助部署我的解决方案,外部和内部各有一个安装项目,我将使用文件过滤器从我正在构建的任何部分中排除我不想要的部分(外部构建排除内部页面,反之亦然,两者都将获得通用页面/代码)。

这将使我能够将所有与web相关的代码捆绑到同一个VS项目中(因此可以轻松地利用共享页面),同时仍然只在每个服务器上部署真正需要的代码。

我希望这是有道理的!

最新更新