If we have 3 developers working on the same Biztalk project what is the best way to set up our development environment?
如果我们有3个开发人员在同一个Biztalk项目上工作,那么设置开发环境的最佳方法是什么?
We are using TFS to store the Biztalk project.
我们使用TFS来存储Biztalk项目。
Should we use 1 sql server and 1 Biztalk server and then have 1 or more developer machines that access the sql and biztalk servers? The issue we get with this is when 1 developer compiles and deploys their changes it can effect other developers if they are also trying to compile and deploy their work.
我们应该使用1个sql server和1个Biztalk服务器,然后有一个或多个访问sql和biztalk服务器的开发者机器吗?我们遇到的问题是,当1个开发人员编译和部署他们的更改时,如果他们也在尝试编译和部署他们的工作,它可能会影响其他开发人员。
Should we have each developer host their own complete sql and biztalk server for local development either on their machine or within their own virtual machine? The problem we find with this is that each developer could modify their server settings and those settings are not stored in source control. This can cause confusion when changes are deployed to a testing server. Another smaller issue is that each developer would need to have sql server, biztalk server and windows server installed.
我们是否应该让每个开发人员在他们的机器上或在他们自己的虚拟机中托管他们自己的完整的sql和biztalk服务器以进行本地开发?我们发现的问题是每个开发人员都可以修改他们的服务器设置,并且这些设置不会存储在源代码管理中。将更改部署到测试服务器时,这可能会导致混淆。另一个较小的问题是每个开发人员都需要安装sql server,biztalk server和windows server。
Is there another way to set up a multiple developer biztalk development environment?
是否有另一种方法来设置多开发人员biztalk开发环境?
2 个解决方案
#1
You will always want to have each developer have a complete BizTalk installation on their own machines. Believe me, it doesn't work otherwise, as you'll just keep getting on each other while trying to deploy/test/debug changes.
您始终希望每个开发人员都可以在自己的计算机上安装完整的BizTalk。相信我,它不起作用,因为你只是在尝试部署/测试/调试更改时不断互相攻击。
That said, you will also want a centralized dev/test environment where you deploy your code for more complete integrated testing and making sure all the changes from everyone are seen together.
也就是说,您还需要一个集中的开发/测试环境,您可以在其中部署代码以进行更完整的集成测试,并确保每个人的所有更改都在一起。
Your point about configuration is true, but only up to a point. This is because you should make your solution configuration part of your source code and keep it in source control as well. This is particularly important once you're a bit ahead in your development as you'll need to start maintaining multiple versions of your binding files for each environment (dev, test, production and so on).
关于配置的观点是正确的,但只有一点。这是因为您应该将解决方案配置作为源代码的一部分,并将其保留在源代码管理中。一旦您在开发中处于领先地位,这一点尤其重要,因为您需要为每个环境(开发,测试,生产等)开始维护绑定文件的多个版本。
#2
tomasr is right. Also, if you have decent hardware and lots of RAM, you may want to setup a VM image of your full developer environment, then share this will all your team. Not as fast as native hardware, but does allow you to roll back changes, replace your VM if you really mess up and everyone then has the same environment – ideally close to the target one. Setting up a continuous build server is also a most, if your projects are small, you can get each checkin to cause a full build, BizTalk deploy, export of MSI and then run tests. Later as your solutions get more numerous you might have to move to a continuous build of C# changes only, then say nightly or several times a day, you do a full. We have done this with CruiseControl.net, Nant, nunit and various power shell scripts, it was pretty time consuming, but each morning we come to work to find a fully compiled, deployed, exported and tested set of BizTalk solutions ready for the test team.
tomasr是对的。此外,如果您拥有不错的硬件和大量内存,您可能需要设置完整开发人员环境的VM映像,然后与您的所有团队分享。不如本机硬件快,但允许您回滚更改,如果您真的搞砸了更换您的VM,然后每个人都拥有相同的环境 - 理想情况下接近目标环境。设置连续构建服务器也是最重要的,如果您的项目很小,您可以获得每个签入以进行完整构建,BizTalk部署,MSI导出然后运行测试。之后,随着您的解决方案变得越来越多,您可能不得不继续进行持续构建的C#更改,然后每晚说或每天说几次,就可以完成。我们使用CruiseControl.net,Nant,nunit和各种电源shell脚本完成了这项工作,这非常耗费时间,但每天早上我们都来找工作,找到一套完整编译,部署,导出和测试的BizTalk解决方案,以备测试球队。
#1
You will always want to have each developer have a complete BizTalk installation on their own machines. Believe me, it doesn't work otherwise, as you'll just keep getting on each other while trying to deploy/test/debug changes.
您始终希望每个开发人员都可以在自己的计算机上安装完整的BizTalk。相信我,它不起作用,因为你只是在尝试部署/测试/调试更改时不断互相攻击。
That said, you will also want a centralized dev/test environment where you deploy your code for more complete integrated testing and making sure all the changes from everyone are seen together.
也就是说,您还需要一个集中的开发/测试环境,您可以在其中部署代码以进行更完整的集成测试,并确保每个人的所有更改都在一起。
Your point about configuration is true, but only up to a point. This is because you should make your solution configuration part of your source code and keep it in source control as well. This is particularly important once you're a bit ahead in your development as you'll need to start maintaining multiple versions of your binding files for each environment (dev, test, production and so on).
关于配置的观点是正确的,但只有一点。这是因为您应该将解决方案配置作为源代码的一部分,并将其保留在源代码管理中。一旦您在开发中处于领先地位,这一点尤其重要,因为您需要为每个环境(开发,测试,生产等)开始维护绑定文件的多个版本。
#2
tomasr is right. Also, if you have decent hardware and lots of RAM, you may want to setup a VM image of your full developer environment, then share this will all your team. Not as fast as native hardware, but does allow you to roll back changes, replace your VM if you really mess up and everyone then has the same environment – ideally close to the target one. Setting up a continuous build server is also a most, if your projects are small, you can get each checkin to cause a full build, BizTalk deploy, export of MSI and then run tests. Later as your solutions get more numerous you might have to move to a continuous build of C# changes only, then say nightly or several times a day, you do a full. We have done this with CruiseControl.net, Nant, nunit and various power shell scripts, it was pretty time consuming, but each morning we come to work to find a fully compiled, deployed, exported and tested set of BizTalk solutions ready for the test team.
tomasr是对的。此外,如果您拥有不错的硬件和大量内存,您可能需要设置完整开发人员环境的VM映像,然后与您的所有团队分享。不如本机硬件快,但允许您回滚更改,如果您真的搞砸了更换您的VM,然后每个人都拥有相同的环境 - 理想情况下接近目标环境。设置连续构建服务器也是最重要的,如果您的项目很小,您可以获得每个签入以进行完整构建,BizTalk部署,MSI导出然后运行测试。之后,随着您的解决方案变得越来越多,您可能不得不继续进行持续构建的C#更改,然后每晚说或每天说几次,就可以完成。我们使用CruiseControl.net,Nant,nunit和各种电源shell脚本完成了这项工作,这非常耗费时间,但每天早上我们都来找工作,找到一套完整编译,部署,导出和测试的BizTalk解决方案,以备测试球队。