鉴于多个网站都运行相同的源代码,在Visual Studio中将这些组织到项目中的最佳/最可维护方式是什么?
例如,假设我们有网站Red
,Blue
和Green
(等)。他们的HTML可能不同,但它们在功能上是相同的。
以前在一个解决方案中,我们创建了一个项目Colour
,其中包含项目的通用版本。 Red
,Blue
和Green
获得自己的项目,每个技术页面都设置为使用Colour
中的C#。 (也就是说,各个实现没有唯一的C# - 所有代码文件都被删除了。)
然而,这种方法导致我们最终得到了几乎没有任何东西的多个单独的实现dll,并且还有像javascript,css和常见图像这样的其他东西在项目中得到重复。
理想情况下,我们希望能够孤立地运行每个项目,而sourceafe共享似乎总是一个糟糕的主意。
有更好的方法吗?
编辑:忘记提及,所有业务逻辑/数据访问都由共享的业务层项目处理,因此所有代码都是独立和共享的。
答案 0 :(得分:2)
将共享代码打包到类库中。这将负责数据层,业务逻辑和一些其他辅助例程。我的经验是,它对具有相同基础的项目有很大帮助。
您的项目红色,绿色和蓝色,如果它们不同,那么它们必须分开。你无法真正规避这一点。我个人的方法是在你忘记之前立即将一个变化引入所有其他变化。这对我来说很好。
答案 1 :(得分:1)
我建议您使用MVP pattern with ASP.NET。这样,您可以拥有一个包含模型和演示者的类库项目,这些项目将由包含视图的多个ASP.NET应用程序引用,当然还有静态资源,例如JS,CSS,可能特定于每个站点的图像。当然,如果您想在Web应用程序之间共享静态资源,您可以将它们放在一个公共位置,以便从那里引用它们(就像SO对sstatic.net一样)。
所以你的解决方案看起来像这样:
NameOfProject.sln
|
|-- NameOfProject.Presenters
|
|-- Web Application 1
|
|-- Web Application 2
.....
|-- Web Application n