由多个开发人员在单个服务器上测试Sharepoint部署

由多个开发人员在单个服务器上测试Sharepoint部署,sharepoint,deployment,wss,Sharepoint,Deployment,Wss,我们由三人组成的团队开始Sharepoint开发,目前正在建立我们的开发环境。我们希望避免为每个开发人员安装Server2008,因此已经设置了一个终端服务器,使用远程Windows在每个开发人员的机器上启动VS2008实例。现在,我们希望分离开发人员的测试环境,即每个开发人员的不同站点集合,但我们已经意识到需要将程序集安装到GAC中,以便在站点上正确显示。但是因为只有一个GAC,开发者就不能独立测试他们的东西了 我们有没有办法在不安装一堆2008年服务器的情况下创建单独的测试环境?我不知道如何

我们由三人组成的团队开始Sharepoint开发,目前正在建立我们的开发环境。我们希望避免为每个开发人员安装Server2008,因此已经设置了一个终端服务器,使用远程Windows在每个开发人员的机器上启动VS2008实例。现在,我们希望分离开发人员的测试环境,即每个开发人员的不同站点集合,但我们已经意识到需要将程序集安装到GAC中,以便在站点上正确显示。但是因为只有一个GAC,开发者就不能独立测试他们的东西了


我们有没有办法在不安装一堆2008年服务器的情况下创建单独的测试环境?

我不知道如何在所有服务器上安装服务器,但这听起来像是虚拟机而不是物理机的理想任务-在我工作的地方,我们大量使用VMWare来完成这类工作,而且它做得很好


在测试安装过程等方面,能够回滚到快照也很有用。

我不知道如何在所有设备上安装服务器,但这听起来像是虚拟机而不是物理机的理想任务——在我工作的地方,我们经常使用VMWare来完成这类工作,而且做得很好


在测试安装过程等方面,能够回滚到快照也很有用。

所以你们都要在启动的Visual Studio中进行远程操作,编译内容并重新启动IIS,等等

你们会互相踩对方的脚趾

如今,更明智的选择是使用Hyper-V或其他虚拟化

我们在笔记本电脑上使用Windows Server 2008,并使用Hyper-V运行我们的开发环境。然后我们每个人都有一个开发环境沙箱,这些沙箱有VS2008、SVN、Nunit等等

我们的代码通过CruiseControl在唯一的共享Hyper-V上进行测试

这对我们来说太棒了。。。我们分配负载,我们可以在移动中工作,我们不需要互相踩踏,如果我们需要进行演示,我们可以切换Hyper-V和演示,从演示Hyper-V分支,从开发一开始,这样的环境是已知的

虚拟化,不要回头看


PS:我刚刚看到你对一台服务器的评论。。。只需在上面安装Hyper-V并运行3个实例。这也是我们所做的

所以你们都要在一个启动的VisualStudio中远程编译东西,重新启动IIS,等等

你们会互相踩对方的脚趾

如今,更明智的选择是使用Hyper-V或其他虚拟化

我们在笔记本电脑上使用Windows Server 2008,并使用Hyper-V运行我们的开发环境。然后我们每个人都有一个开发环境沙箱,这些沙箱有VS2008、SVN、Nunit等等

我们的代码通过CruiseControl在唯一的共享Hyper-V上进行测试

这对我们来说太棒了。。。我们分配负载,我们可以在移动中工作,我们不需要互相踩踏,如果我们需要进行演示,我们可以切换Hyper-V和演示,从演示Hyper-V分支,从开发一开始,这样的环境是已知的

虚拟化,不要回头看


PS:我刚刚看到你对一台服务器的评论。。。只需在上面安装Hyper-V并运行3个实例。这也是我们所做的

否。除了GAC,12配置单元中还有所有SharePoint文件,例如功能和网站模板。你在服务器上节省的成本是不值得的

当然,如果您不使用GAC,而是部署到bin文件夹,并且不涉及12配置单元中的任何内容,那么您可以在同一服务器上为每个开发人员提供他们自己的web应用程序。但这种方法对他们的能力有很多限制。还是不值得

虚拟机可以工作,但它们的开发速度可能很慢。例如,每次GAC部署都需要重新启动应用程序池,这意味着可能需要暂停15-60秒才能重新加载应用程序,具体取决于硬件。这将变得很烦人

虚拟机在测试和生产中工作得更好,因为您不需要经常重新启动应用程序


我建议每个开发人员使用一个物理服务器。这将最大限度地减少代码部署测试周期时间,并确保他们不必担心互相牵绊

否。除了GAC,12配置单元中还有所有SharePoint文件,例如功能和网站模板。你在服务器上节省的成本是不值得的

当然,如果您不使用GAC,而是部署到bin文件夹,并且不涉及12配置单元中的任何内容,那么您可以在同一服务器上为每个开发人员提供他们自己的web应用程序。但这种方法对他们的能力有很多限制。还是不值得

虚拟机可以工作,但它们可以 发展缓慢。例如,每次GAC部署都需要重新启动应用程序池,这意味着可能需要暂停15-60秒才能重新加载应用程序,具体取决于硬件。这将变得很烦人

虚拟机在测试和生产中工作得更好,因为您不需要经常重新启动应用程序


我建议每个开发人员使用一个物理服务器。这将最大限度地减少代码部署测试周期时间,并确保他们不必担心互相牵绊

您在终端服务方面走错了方向-这不会给您带来任何分离

很多人都建议直接在W003/2008服务器上开发,这确实简化了一些事情,比如远程调试

我更喜欢使用VMWare运行虚拟机的更传统的方法。它们可以在本地或远程主机上运行。远程调试的设置稍微复杂一些,但仍然是可能的


最后-如果可能,那么部署到bin dir而不是GAC。这将使编译后的自动部署变得更加容易。

您使用终端服务时走错了方向-这不会给您带来任何分离

很多人都建议直接在W003/2008服务器上开发,这确实简化了一些事情,比如远程调试

我更喜欢使用VMWare运行虚拟机的更传统的方法。它们可以在本地或远程主机上运行。远程调试的设置稍微复杂一些,但仍然是可能的


最后-如果可能,那么部署到bin dir而不是GAC。这将使编译后的自动部署更加容易。

贡献者说得对,多开发人员单服务器环境存在许多障碍

头号开发人员将尝试连接到同一Web应用程序进程w2ps.exe,因此必须在不同端口上创建单独的Web应用程序,除非您准备共享调试时间

第二个问题是当您尝试协作和使用共享组件/功能时。有单独工作的愿望是有争议的,我认为团队开发人员应该协作和共享,因此需要将工作组合起来,以确保无缝集成到单个最终解决方案中,并且不会重复任何工作。在您尝试协作之前,多开发人员单服务器环境可以完美地工作。一个常见的错误是所有团队开发人员都使用一个“开发服务器”。除非团队成员正在处理完全不相关的组件,并且从不需要执行诸如重新启动IIS或将调试器附加到IIS进程等常见操作,否则这种类型的环境通常不会很好地工作。“我们之所以犯这种错误是因为缺乏经验和知识,但一旦您做到了这一点,就有可能解决它

我第一次尝试共享特性是将开发人员1的项目复制到开发人员2的解决方案中,并在开发人员2的项目中添加对它的引用,并将所有特性添加到开发人员2的包中。部署它对开发人员2来说效果很好,直到我发现如果开发人员1从调试器中分离出他们的解决方案,那么它将根据复制的解决方案id从服务器场以及每个开发人员的web应用程序中收回解决方案。因此,显影剂2将地毯从其下方拉出。虽然这是一个部分解决方案,而且似乎工作了一段时间,但我花了一段时间才弄清楚到底发生了什么,dev1和dev2部署的哪些组合使彼此工作,哪些不工作

所以我找到了更好的解决办法。在Visual Studio中SharePoint选项卡下的项目属性下,有一个名为“调试后自动收回”的组合框。在默认情况下,当开发人员停止连接的调试器并从其他开发人员的下面拉出功能时,此操作将收回解决方案。取消勾选此框可防止收回,并让每个开发人员在服务器场级别部署单独的解决方案,在重新连接到调试器时,只需将解决方案替换为最小的麻烦


根据我的经验,回收IIS应用程序池的速度如此之快,其他开发人员甚至没有注意到,但如果团队规模大于2,这可能会变得更加普遍,因此也许其他人可以添加他们的经验。我也猜,除非另一个开发人员在回收发生的同一时间尝试连接,否则一切都会好起来,因此跨越时间的可能性非常小,如果有经验的话,简单地分离和重新连接就可以解决这个问题。

贡献者说得对,多开发人员单服务器环境有很多障碍

头号开发人员将尝试连接到同一Web应用程序进程w2ps.exe,因此必须在不同端口上创建单独的Web应用程序,除非您准备共享调试时间

第二个问题是什么时候 您尝试协作并使用共享组件/功能。有单独工作的愿望是有争议的,我认为团队开发人员应该协作和共享,因此需要将工作组合起来,以确保无缝集成到单个最终解决方案中,并且不会重复任何工作。在您尝试协作之前,多开发人员单服务器环境可以完美地工作。一个常见的错误是所有团队开发人员都使用一个“开发服务器”。除非团队成员正在处理完全不相关的组件,并且从不需要执行诸如重新启动IIS或将调试器附加到IIS进程等常见操作,否则这种类型的环境通常不会很好地工作。“我们之所以犯这种错误是因为缺乏经验和知识,但一旦您做到了这一点,就有可能解决它

我第一次尝试共享特性是将开发人员1的项目复制到开发人员2的解决方案中,并在开发人员2的项目中添加对它的引用,并将所有特性添加到开发人员2的包中。部署它对开发人员2来说效果很好,直到我发现如果开发人员1从调试器中分离出他们的解决方案,那么它将根据复制的解决方案id从服务器场以及每个开发人员的web应用程序中收回解决方案。因此,显影剂2将地毯从其下方拉出。虽然这是一个部分解决方案,而且似乎工作了一段时间,但我花了一段时间才弄清楚到底发生了什么,dev1和dev2部署的哪些组合使彼此工作,哪些不工作

所以我找到了更好的解决办法。在Visual Studio中SharePoint选项卡下的项目属性下,有一个名为“调试后自动收回”的组合框。在默认情况下,当开发人员停止连接的调试器并从其他开发人员的下面拉出功能时,此操作将收回解决方案。取消勾选此框可防止收回,并让每个开发人员在服务器场级别部署单独的解决方案,在重新连接到调试器时,只需将解决方案替换为最小的麻烦


根据我的经验,回收IIS应用程序池的速度如此之快,其他开发人员甚至没有注意到,但如果团队规模大于2,这可能会变得更加普遍,因此也许其他人可以添加他们的经验。我还猜测,除非其他开发人员在回收发生的同一时间尝试连接,否则不会有问题,因此跨越时间的可能性非常小,如果有过这种情况,只需拆下并重新连接即可解决。

虚拟机与否,我们需要适当的容量和安装。特别是在开发人员的机器上,使用一兆内存来测试一些东西,对我来说似乎有点可笑。就性能而言,在多台服务器上没有真正的需求,所以我想在一台服务器上实现这一点。我不知道您的人工成本是多少-损失多少小时=一吉格RAM?我用一台XP笔记本电脑主机和一个2003年的客户机运行了1/2的可用内存。无论虚拟机与否,我们都需要适当的容量和安装。特别是在开发人员的机器上,使用一兆内存来测试一些东西,对我来说似乎有点可笑。就性能而言,在多台服务器上没有真正的需求,所以我想在一台服务器上实现这一点。我不知道您的人工成本是多少-损失多少小时=一吉格RAM?我用一台XP笔记本电脑主机和一个2003年的客户机运行了1/2的可用内存。