对于我的源代码控制,我在自己的项目中开发模块。这包含模块代码,测试代码,数据提供程序代码(如果适用)以及其他任何内容。像任何其他项目一样,这将检入到源代码管理中。请注意,模块项目不包含指向特定DNN网站的链接,并且在项目中将DNN引用引用到引用您的目标构建的通用“bin”目录。例如,在我的项目文件夹中,我有\ bin460,\ bin480,\ bin510,\ bin520等。这些文件夹中的每一个都包含一组用于特定DNN版本的二进制文件。这样你就可以针对特定版本进行构建,但是可以针对任何你喜欢的版本进行测试
在一个DNN安装源控制模块中发生的问题是 - 有时不是所有的模块代码的容易单个父目录 下分离 - 不能很好借给PA模块的方法 - 不容易将该项目转移到不同的DNN版本进行开发或测试 - 易于无意中获取DNN解决方案的源控制部件,特别是集成VS源控制解决方案。
此方法编译速度很快,因为您并未尝试编译整个项目。对于测试部署,我有一个构建脚本,将模块的各个部分复制到目标网站。这可以通过编译完成(链接构建脚本),或者在cmd窗口中编译成功后运行。我的构建脚本有一个“目标”环境切换,所以我可以说'dnn520'将构建部署到我的测试dnn520安装。请注意,在此之前您需要手动创建模块配置,但这是一次性工作,您可以使用导出功能来创建.dnn模块清单。
要构建模块封装,投入时间的综合脚本,它会从你的源目录中的各个部分,并压缩它们到一个安装包。将所有部分保留在源代码管理文件夹中,并将它们复制到临时目录中,然后运行命令行zip实用程序(我使用古老版本的pkzip)将其打包到可安装文件中。
这种方法的好处是: - 从安装代码 的模块代码分离 - 只保留模块代码源控制的简单的方法(不必排除所有的网站代码) - 能够迅速在不同的DNN版本 测试出模块 - 包装脚本允许您快速,轻松地构建模块的新版本进行安装测试/部署
缺点是 - 在不能使用魔法绿“走出去”按钮VS(必须手动附加调试器) - 比就地开发更多的安装时间
最佳实践警方尚未为此制定指导方针。我会遵循DNN人的建议。 – 2009-11-30 22:37:24