1

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

有没有什么方法可以在不安装一堆 2008 服务器的情况下创建单独的测试环境?

4

5 回答 5

5

所以你们都要远程启动 Visual Studio 并编译东西并重新启动 IIS 等?

你们会互相跺脚。

现在更明智的选择是使用 Hyper-V(或其他一些虚拟化)。

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

由于唯一共享的 Hyper-V 上的 CruiseControl,我们的代码相互测试。

这对我们来说非常棒......我们分配负载,我们可以在移动中工作,我们不会互相踩踏,如果我们需要做一个演示,我们可以从演示 Hyper 切换 Hyper-V 和演示-V(早期从开发分支分支,以便了解环境)。

去虚拟,不要回头。

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

于 2008-11-27T12:34:46.253 回答
1

我不知道在所有东西上安装服务器,但这听起来像是虚拟机而不是物理机的理想任务——在我工作的地方,我们大量使用 VMWare 来完成这种工作,而且效果很好。

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

于 2008-11-27T12:29:38.120 回答
1

您在终端服务上走错了路 - 它只是不会给您任何分离。

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

我更喜欢使用 VMWare 运行虚拟机的更传统的方法。这些可以在本地或远程主机上运行。远程调试的设置有点复杂,但仍然可以。

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

于 2008-11-27T20:45:49.710 回答
1

没有。除了 GAC 之外,12 个配置单元中还有所有 SharePoint 文件,例如功能和网站模板。节省服务器成本不值得。

(当然如果你不使用 GAC,而是部署到 bin 文件夹,并且你不接触 12 hive 中的任何东西,你可以在同一台服务器上为每个开发人员提供自己的 web 应用程序。但是这种方法放置了一个他们能做什么有很多限制。仍然不值得。)

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

虚拟机更适合测试和生产,您不需要经常重启应用程序。

我为每个开发者推荐一个物理服务器。这将最大限度地减少代码-部署-测试周期时间,并确保他们不必担心踩到彼此的脚趾。

于 2008-11-27T12:54:38.630 回答
0

贡献者是对的,多开发人员单服务器环境有很多绊脚石。

第一个开发人员将尝试附加到同一个 Web 应用程序进程 w2ps.exe,因此必须在不同的端口上创建单独的 Web 应用程序,除非您准备共享时间调试。 如何为 sharepoint 2013 设置开发环境

第二个问题是当您尝试协作和使用共享组件/功能时。独立工作的愿望是值得商榷的,我认为团队开发人员应该协作和共享,因此需要组合工作以确保无缝集成到一个最终解决方案中,并且不会重复任何工作。多开发人员单服务器环境完美运行,直到您尝试协作 '一个常见错误是让所有团队开发人员都使用一个“开发服务器”。除非团队成员正在处理完全不相关的组件并且永远不需要做常见的事情,例如重新启动 IIS 或将调试器附加到 IIS 进程,否则这种类型的环境通常不能很好地工作。http://technet.microsoft.com/en-us/magazine/dn145990.aspx我们因缺乏经验和知识而犯了这个错误,但一旦你犯了这个错误,就有可能解决它。

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

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

根据我的经验,回收 IIS 应用程序池的速度如此之快,其他开发人员甚至都没有注意到,但是如果团队人数超过 2 人,这可能会变得更加普遍,因此也许其他人可以添加他们的经验。我还猜想,除非其他开发者尝试在回收发生的同一时间附加它会很好,所以随着时间的推移发生交叉的可能性非常小,如果它是简单地分离和重新附加就可以解决这个问题曾经经历过。

于 2013-08-09T10:24:28.143 回答