您是否将虚拟机用作主要开发环境?

时间:2009-01-30 23:53:39

标签: asp.net iis development-environment virtual-machine

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

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

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

您是否将虚拟机用作主要开发环境?你发现了什么?


修改

感谢您的回答!它确实对我有所帮助!

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

20 个答案:

答案 0 :(得分:15)

我使用VMWare和基于Microsoft VPC的虚拟机很多,托管在基于Quad 6600的XP Pro机箱中。

我对VM的使用最初是在不同的环境中进行测试,为了进行调试,我必须在其中的一个或两个中安装SQL Server和VS2008。

出于这些目的,虚拟机非常方便。

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

当我每天编写数十次,运行大量查询等时,我不希望我的开发机器比它绝对要慢。

答案 1 :(得分:11)

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

您还应该知道虚拟机有一些限制,例如:在支持图形卡时,您需要确保所开发的内容不依赖于虚拟机上没有的功能。

答案 2 :(得分: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。当你运行多个vms时,额外的绒毛真的很明显
  • 给每个VM大约1GB(有时小到512MB)。您希望尽可能少地阻止他们更换您经常做的事情。
  • 在进行任何开发之前,请保留堆栈基本安装的快照。
  • Quad Core + 8gb ram现在很便宜。我通常在开发时运行几个vms。如果你有更少的ram或内核,请保持运行vms的数量。
  • 关闭软件鼠标光标并以全屏模式运行(大多数人都没有意识到它是vm,直到我显示它们。)

<强>了好处

  • 我可以在我拥有的任何电脑上在5分钟内完成任何主要筹码的运行。
  • 我可以将整个开发环境移到笔记本电脑或其他电脑上。
  • 我可以轻松地保持单独的开发堆叠,否则会踩到每个人的脚趾。

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

答案 3 :(得分: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加载了两个。我管理一个开发团队,我主要针对这些虚拟机用于开发环境,因为我们公司将我们的主要台式机/笔记本电脑瘫痪到实际工作中。

喝Koolaid !!! VMware非常棒,还有很多其他好的VM选项!

祝福。

编辑:更多好东西......

特别是,请查看VMware ESXi,VMware Server和Ubuntu JeOS。美味的东西!!!

答案 4 :(得分:3)

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

答案 5 :(得分:2)

我过去曾使用VM进行开发,并且我经常使用它们来测试各种类型。使用VM进行开发工作非常顺利,我唯一要注意的是,一些外部硬盘驱动器速度很慢,可能会给您带来问题,但快速驱动器运行良好。

答案 6 :(得分:2)

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

答案 7 :(得分:2)

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

该机器具有10k驱动器,大量快速内存和双核CPU,因此运行良好。我最终得到了这个大杂烩,因为当时我构建的机器ubuntu不能继续运行,而VM是解决这个问题的最简单方法。我发现这很方便,所以即使现在ubuntu可能对这台机器很好,我仍然会使用VM。

完全备份我的开发环境并将其移到异地或分发它(即GPL合规性很简单 - 无需与试图为其设置开发环境的人员合作并处理软件版本的怪癖等)

嵌入式ARM linux开发需要。

- 亚当

答案 8 :(得分:1)

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

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

答案 9 :(得分:1)

我在我的lappy上使用3 GB Ram运行Windows 7 64位(是的它很低)。

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

使用多台显示器对于VM来说也不容易,特别是如果你把笔记本电脑带走很多次,然后重新连接它。重新同步非常耗时。

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

如果我把所有浪费的时间加起来等待我对虚拟机原因的额外处理,那么它将超过我必须从头开始重新运行计算机所需的时间 - 这需要不到8小时。

答案 10 :(得分:1)

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

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

也意味着我可以使用Windows但是让Linux处理IM,Firefox,音乐(当然),索引(跟踪器),FTP等等...我还有终端可供我使用(grep, ssh你的名字)。

我们尝试使用Windows的鬼图像,但发现由于人们使用不同的硬件,图像并不总是有效。

答案 11 :(得分:1)

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

答案 12 :(得分:1)

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

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

在本地机器上,只要你有RAM,它仍然可以很好地运行。 XP的精简版VM(类似于TinyXP)和我6个月的本机安装一样好!

答案 13 :(得分: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中使用它。

答案 14 :(得分:1)

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

我没有问题,但我的Macbook专业版确实有4GB的RAM,当它运行时分配给WMVare的2GB。

答案 15 :(得分:0)

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

答案 16 :(得分:0)

VMware调试设备和过滤器驱动程序。 VirtualBox对于偶尔使用的Ubuntu来说非常快速,而且还有一个拥有IE6,FF2,Chrome,Opera和XP的XP。 Safari用于测试和安装我不信任的应用程序。

答案 17 :(得分:0)

我过去常常使用虚拟机作为沙箱,以防止不守规矩的应用程序做不守规矩的事情。 (Sandboxie是一个非常棒的程序),但我总是忘记保持它们包含在内,并且不时地重新安装窗口,比不断维护更容易。

对于虚拟机而言,您可以使用可用的硬件,因为您的BIOS和硬件都已被清除。在某些情况下,创造低水平的东西实际上是不可能的。但是,当通过远程桌面连接在虚拟机上使用托管服务器时......绝对精彩,如此简单!我可以点击几下进出,所以我猜这是我使用的头号虚拟化。

答案 18 :(得分:0)

现在已经差不多一年了,你们还在使用虚拟机作为开发环境吗?我曾经,但因为性能变差而停止了。只是想知道。

答案 19 :(得分:0)

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

在工作中,我们在大多数测试环境中使用VM - 它们运行良好