这是一个相当大的问题,以下是我的一些想法:
开发环境
首先,在开始新项目时,我会在我的开发环境上安装Sitecore,并确保所有功能正常。无论是在安装过程中还是之后,我都会将数据库放在单独的SQL服务器上,并相应地更改连接字符串。
然后我打开Visual Studio并创建一个解决方案,包括所需的文件。我创建某种HelloWorld渲染并尝试构建解决方案,以便可以验证所有功能是否正常运行。
当所有内容都正常运行时,我会创建整个解决方案的zip文件,包括数据文件夹。现在是将其添加到某种版本控制系统的时候了,在我的情况下是Subversion。
我将zip文件添加到Subversion中,并添加所有我认为在项目中会更改的文件,通常我告诉Subversion忽略sitecore文件夹,这样在检查文件时可以大大加快性能。
提交操作后,我的项目的其他团队成员可以检出代码并开始开发(当然要先解压缩zip文件)。
我们所有人都朝着同一个数据库工作,虽然这与Sitecore的建议相违背,但我们使用这种方法还没有遇到任何问题,不过由一个开发人员在GUI中创建/更改的项目需要一些时间才能被其他人创建/更改。
当然,我们可以使用同一个Sitecore安装开发多个不同的项目,但由于几乎所有客户都使用不同版本的Sitecore,我们发现这种方法有点麻烦。
通常,我们会设置自动构建服务器,但这是另一个问题。
可重用代码和渲染
我希望能够说我们基于相同的代码库创建整洁的包,以便在项目之间重复使用,但不幸的是我们还没有那么做。今天,在解决方案之间进行大量的剪切和粘贴。
上传代码到客户端
这是通过Sitecore包完成的,通常具有某种动态选择以包括哪些文件,例如在特定文件夹中更改了最近5天内的所有ascx文件。
就是这样。