23

最近我购买了一个带有 Windows Home Basic 的笔记本(没有 ASP.Net/IIS。我想将 Windows 版本升级到带有 ASP.Net/IIS 的版本,但我认为还有另一种可能性:

我有一个 360Gb HD 的硬盘盒。我想在这个 HD 案例中使用 Windows Ultimate(也安装 ASP.Net、IIS 和 Visual Studio 2008)创建一个虚拟机,然后我可以在我将要使用的任何计算机上访问我的“开发环境”(我的台式机和我的笔记本)。

但我担心表现。我没有在虚拟机上工作的经验(我用它只是为了快速进行兼容性测试)。

您是否使用虚拟机作为主要开发环境?你的发现是什么?


编辑

感谢您的回答!它真的帮助了我!

我也想了解可移植性,即我在笔记本电脑中创建的虚拟机可以在桌面上运行吗?我需要重新激活 Windows 吗?

4

20 回答 20

15

我经常使用 VMWare 和基于 Microsoft VPC 的 VM,它们托管在基于 Quad 6600 的 XP Pro 盒子中。

我最初使用虚拟机是为了在不同的环境中进行测试,为了调试,我不得不在其中一两个环境中安装 SQL Server 和 VS2008。

出于这些目的,VM 非常方便。

但基于那次经验,我不会将虚拟机作为我的主要开发环境,仅仅是出于性能原因。VM 性能出奇的好,但差异(几乎所有东西)虽然不是很大,但足以引起注意。

当我每天编译几十次,运行大查询等时,我不希望我的开发机器比它绝对必须的慢。

于 2009-01-31T00:01:23.793 回答
11

只要您有足够的内存供两个操作系统使用,就可以使用虚拟机。

您还应该知道虚拟机有一些限制,例如在支持图形卡方面,因此您需要确保您正在开发的任何东西都不依赖于虚拟机上不可用的功能。

于 2009-01-31T00:00:24.107 回答
5

几年来,我一直使用 VMWare 作为我的主要开发环境。

我通常在一些环境之间切换

  • Windows 窗体/WPF 开发(XP、.Net 3.5)
  • Ruby Development - 用 ruby​​ 做了一个网站(XP,Instant Rails)
  • ASP.net 3.5 - 用于玩新东西(XP、.net 3.5、IIS、SQL Server)
  • ASP.net 2.0 - 有时地方仍然停留在 2.0(XP、.net 2.0、IIS、SQL Server 2005)

我学到了一些东西

  • 使用 XP 而不是 Vista。当您运行多个虚拟机时,额外的绒毛非常明显
  • 给每个 VM 大约 1gb(有时只有 512MB)。你想给他们尽可能少的东西,防止他们换成你经常做的事情。
  • 在进行任何开发之前,为您的堆栈保留基本安装的快照。
  • 四核 + 8gb 内存现在很便宜。我通常在开发时运行多个虚拟机。如果您的内存或内核较少,请减少正在运行的虚拟机数量。
  • 关闭软件鼠标光标并以全屏模式运行(大多数人直到我展示它们才意识到它是一个虚拟机)。

好处

  • 我可以在我拥有的任何电脑上在 5 分钟内运行我的任何主要堆栈。
  • 我可以在紧要关头将我的整个开发环境转移到笔记本电脑或另一台电脑上。
  • 我可以轻松地保留单独的开发堆栈,否则可能会踩到彼此的脚趾。

硬盘:您的第一个瓶颈将是 RAM,但现在 RAM 很便宜,所以没有理由不拥有 8-16gb。您的下一个主要瓶颈主要是硬盘驱动器。我现在尝试为每个活动虚拟机配备一个硬盘(用于桌面工作负载,而不是服务器)。Raid 设置可以提供极大的帮助,如果您负担得起,SSD可以完全解决问题。

于 2009-03-02T22:39:25.213 回答
4

我从 2002 年开始使用 VMware。我的第一个用途是在来宾 VM 中创建一个开发环境,然后为我的队友复制它。当需要进行硬件升级时,我在大约一个小时内切换到了新桌面(安装 VMware,复制 VM)。

我经常在台式机、笔记本电脑和服务器上使用 VMware。我将它们用于开发、测试和生产。我曾尝试在虚拟机内玩游戏,但大多数游戏都无法解决问题(VMware 这么说,但我还是尝试了)。但是,最新的 VMware Workstation 版本可能会玩一些游戏。

我特别喜欢笔记本电脑上的 VMware,我真的很喜欢在 Ubuntu Linux 上使用它。到目前为止,我发现最好将 Windows(2000 Pro SP4 或 XP)用于主机操作系统,因为它具有出色的设备驱动程序。但是,我更喜欢在 Ubuntu 上实际工作以进行开发,但这在 VM 中效果很好。我已经在各种硬件上直接安装了 Ubuntu,但到目前为止还不够满意,以至于离开它超过几个月,然后再次恢复到 Windows。

但是,我的笔记本电脑确实可以很好地运行 Ubuntu,而我只是恢复到 Windows XP,因为我想加载一个 eSATA 卡,它可以让我高性能地访问外部硬盘驱动器以...运行虚拟机!!!由于工作分心,我还没有完成安装。

说到工作......我已经“获得”了三个旧的孤立桌面,我将它们变成了 VM 主机。我即将尝试加载 VMware ESXi,尽管我刚刚用 Windows 2000 Pro SP4 和 VMware Server 1.0.8 加载了两个。我管理着一个开发团队,我主要将这些虚拟机用于开发环境,因为我们公司在实际工作中过多地削弱了我们的主要台式机/笔记本电脑。

喝可乐!!!VMware 很棒,还有很多其他不错的 VM 选项!

最良好的祝愿。

编辑:更多好东西...

特别是,请查看 VMware ESXi、VMware Server 和 Ubuntu JeOS。好吃的东西!!!

于 2009-01-31T03:49:29.387 回答
3

不,但是当我在 IE 中测试网页时,将它用作测试机。

于 2009-01-30T23:58:48.820 回答
2

是的,我的服务器使用 VMWare 工作站 6.5 和 ESX 3.0。奇迹般有效。没有明显的性能损失。

于 2009-01-30T23:56:23.613 回答
2

我过去曾使用 VM 进行开发,并且经常使用它们进行各种测试。使用虚拟机进行开发工作非常好,我唯一要提醒您的是,一些外部硬盘驱动器非常慢,这可能会给您带来问题,但快速驱动器运行良好。

于 2009-01-30T23:59:54.793 回答
2

我在 Vista 64 之上使用 Ubuntu 作为我的 linux 开发环境。

这台机器有一个 10k 的驱动器、大量的快速内存和一个双核 CPU,所以它运行得非常好。我最终得到了这个大杂烩,因为当时我构建了一台无法运行 ubuntu 的机器,而使用 VM 是处理这个问题的最简单方法。不过,我发现它非常方便,所以即使 ubuntu 现在可能对这台机器没问题,我仍然使用虚拟机。

使完全备份我的开发环境并将其带到异地或分发它变得微不足道(即,GPL 合规性是小菜一碟 - 无需与试图为他们建立开发环境并处理怪癖的人合作软件版本等)

嵌入式 ARM linux 开发需要。

-亚当

于 2009-01-31T00:48:31.217 回答
1

我在 Mac 上使用 VMWare Fusion 来运行 Windows Server 2003、Visual Studio 和我所有的 IIS 要求。

我没有问题,但我的 Macbook pro 在运行时确实有 4GB 的 RAM 和 2GB 分配给 WMVare。

于 2009-01-31T00:31:58.363 回答
1

我的主要 Windows 开发环境是本机 Vista x64。由于上面提到的显卡原因以及(可能没有根据的)对 VM 环境和调试的担忧,我决定我仍然想要一个用于我的 .Net 和 Windows Win32/64 开发的本机环境。我目前在 GUI 开发方面工作得更多。

但是,我过去使用 VM 进行的一种非常重要的开发是基于 Python 的程序,无论是带有 wxWindows 的纯 Python 还是从 C++ 调用的嵌入式 Python。使用 VM 使我能够控制 Python 环境并针对保证与部署环境匹配的不同安装进行工作。我建议任何使用动态语言的人使用这种语言,在这种语言中,您倾向于安装大量外部软件包,并且很难干净地恢复到早期版本。

要考虑的另一件事是使用带有远程调试块的 VM 作为目标。Macintosh 上的许多 REALbasic 开发人员在他们的 Windows 测试中这样做(REALbasic 具有出色的跨平台调试功能),但我过去也将它用于 Visual Studio。

于 2009-01-31T00:43:11.570 回答
1

快照很方便。您可以使用多个虚拟机在不同的操作系统上进行测试。

我们的工程师在 VMWare esx 上运行 Windows VM。我们可能有 12 个 Windows 虚拟机在单个 Dell Poweredge 上运行(是的,它很强大,但仍然如此)。它们在网络上几乎看起来比我在 Core2 Duo 上本地安装的 XP 更快!

而在本地机器上,只要你有内存,它仍然可以很好地运行。一个精简的 XP 虚拟机(类似于 TinyXP)的性能与我 6 个月大的本机安装一样好!

于 2009-01-31T03:26:15.423 回答
1

关于便携性;假设相同的架构(和操作系统),那么虚拟机应该在两台物理计算机上运行良好。如果 VM 的硬件配置没有太大变化,则不需要在 VM 中重新激活 Windows。

于 2009-01-31T18:53:48.950 回答
1

我运行 Ubuntu 作为我的主要操作系统,然后使用 Windows 2003 虚拟机(使用 VirtualBox)在 Windows 中进行开发。主要用于 Visual Studio 2008 Web 开发。在家里这样做了 3 年,但现在正在工作中尝试。

工作正常,即使使用 ReSharper 和大约 50 个项目的解决方案。它不像我直接通过 Windows 运行它那么快,但是拥有一个设置良好的虚拟机意味着我可以与其他开发人员共享它,并且可以轻松地在 vm 之间切换(我们正在考虑试用 Windows Server 2008)。

也意味着我可以使用 Windows,然后让 Linux 处理诸如 IM、Firefox、音乐(当然)、索引(跟踪器)、FTP 等之类的事情......另外我有终端可供我使用(grep、ssh 你的名字它)。

我们用 Windows 的幻影图像进行了尝试,但发现由于人们拥有不同的硬件,图像并不总是有效。

于 2009-03-07T13:39:28.807 回答
1

我用 3 GB Ram 在我的笔记本电脑上运行 Windows 7 64 位(是的,它很低)。

我发现在虚拟机上运行我的开发环境真的很痛苦。当我打开 5 个 IDE 时,SQL Server 2008、NotePad++、OxyGenXML 编辑器和 Chrome/IE/FireFox 都在我的 VM 中打开,然后我的主机有 Outlook、OneNote 和其他一些运行它的程序变成废话。

使用虚拟机也不容易使用多个显示器,特别是如果您经常将笔记本电脑拿走,然后将其重新连接起来。重新同步非常耗时。

即使使用 5-6GB 内存,我的其他同事也有同样的问题。

如果我把所有时间都浪费在等待虚拟机导致的额外处理上,那将比我不得不从头开始重新做我的电脑要多——这需要不到 8 个小时。

于 2010-06-18T16:31:22.433 回答
1

这真的取决于情况。我在企业界遇到的最可怕的环境是 Windows 笔记本电脑 + Linux 虚拟环境(笔记本电脑本身并不是一流的,我一开始就不喜欢将笔记本电脑作为开发机器)。我主要是一名 java 开发人员,喜欢编写很多单元测试,通常使用这种组合(我真的不想使用一个,但是好吧,我只是懒得抱怨那么多)运行单元测试需要很多时间。

当然,这取决于测试的类型,但在这种情况下,我的猜测是磁盘 I/O 只会减慢速度。我只是喜欢编译和测试,所以这就是我支持原生环境的主要原因:速度。即使是一点点,有时也会让人觉得太过分了。很抱歉没有在更广泛的范围内和非常主观地回答。

于 2010-06-18T16:44:25.017 回答
0

我在 Mac 上使用 Parallels - 没有问题。

在工作中,我们在大多数测试环境中使用虚拟机——它们运行良好

于 2009-01-31T00:01:25.867 回答
0

我曾经将虚拟机用作沙箱,以防止不守规矩的应用程序做不守规矩的事情。(Sandboxie 是一个很棒的程序)但我总是忘记将它们包含在内,只是不时地重新安装 Windows,这比持续维护要容易得多。

至于虚拟机,由于您的 bios 和硬件都已仿真,因此您被可用的硬件搞砸了。在某些情况下几乎不可能写出低水平的东西。但是,当通过远程桌面连接在虚拟机上使用托管服务器时......绝对精彩,如此简单!我只需点击几下就可以进出,所以我想这是我使用的第一个虚拟化。

于 2009-01-31T02:31:18.607 回答
0

VMware 调试设备和过滤驱动程序。VirtualBox 对于偶尔使用的 Ubuntu 和 XP 来说既好又快,支持 IE6、FF2、Chrome、Opera 和 Safari,用于测试和安装我不信任的应用程序。

于 2009-01-31T03:09:50.433 回答
0

我有一台运行我的几个开发环境的 Windows 2008 Hyper-V 机器。它一点也不慢(我可以注意到)。我的一些环境虽然没有虚拟化。通常如果设置需要一些难以回滚的东西,那么我会使用虚拟机,如果没有,我会使用桌面。请记住许可费用。如果要虚拟化 Windows Server 的副本,则还需要 Windows Server 的许可证。将 Vista Home Basic 升级到运行 IIS 的版本可能会更便宜(尽管我的建议是运行 Win 7 beta,因为它是免费的,然后在准备好时升级到 win7 的最终版本)

于 2009-01-31T18:19:47.723 回答
0

现在已经快一年了,你们还在用虚拟机作为开发环境吗?我曾经,但由于性能越来越差而停止了。就是想。

于 2010-04-08T04:21:19.967 回答