我们的代码库有两个ASP.NET MVC应用程序,几个WinForm应用程序,以及各种控制台应用程序和WCF服务。它们都基于同一组域类库,数据访问层(NHibernate驱动)和一些基础结构类(通用扩展方法,第三方二进制文件和抽象业务逻辑)。
为了确保应用程序之间的参考完整性,我们有一个名为Builder的解决方案。 Builder包含每个项目并重新编译本地工作空间中的所有DLL。到目前为止,这种方法运作良好,但是变得难以管理,需要更长时间才能构建。
我们希望将代码拆分为更具体的程序集,同时保留参考完整性。例如,如果某人更改了我们的域类,则团队的其他成员需要重建Domain.dll。将二进制文件添加到源代码控制是不好的做法,但我们需要确保每个人都使用相同的版本。
这似乎是一个共同的考虑因素,但我没有找到任何特别针对该问题的好文章。有谁知道我们可以用于此的最佳实践?谢谢!
答案 0 :(得分:1)
如果您的项目是内部的,您可以将常见项目添加到您的解决方案中,并将项目引用(而不是普通的程序集引用)添加到使用它们的项目中。假设您的构建时间问题来自于您拥有大量常见项目并且每个单独的解决方案仅使用少数几个,这可以减轻影响。
如果您的问题是需要确保项目X
和项目Y
都使用相同版本的公共库,那么引用二进制文件(并将其存储在源代码管理中)是你最好的方法。不幸的是,构建时间不是通过改变方法可以真正解决的问题。
关于源代码管理中应遵循的模式,您需要告诉我们您正在使用的产品。
答案 1 :(得分:1)
查看the other 6 solid principles。这些其他原则解释了如何处理这些可独立部署的模块。