2009-02-08 3 views
5

После прочтения how to keep your dev machine from slowing down мне напомнили о моем хорошем намерении год назад, чтобы построить виртуальную машину для моей машины разработки.Возможна ли разработка WPF под VM?

Однако я разрабатываю графические интерфейсы WPF и SilverLight на Vista x64. Я могу запустить x64 версии ОС под VM, но меня беспокоит графическая производительность WPF и особенно работает Expression Blend. Я ожидаю, что потребуется GPU!

В настоящее время у меня виртуальная виртуальная машина VM для 32-разрядного тестирования XP. Это или версия VMWare, вероятно, будет лучше для WPF, и если да, есть ли различия в версиях? Я уже могу создавать виртуальные машины с помощью VMWare Fusion на OS/X, поэтому просто использовать бесплатный проигрыватель VMWare - я не смог найти никаких комментариев о различиях в поддержке GPU между проигрывателем и рабочей станцией.

Мой главный компьютер с Windows-dev - это только ноутбук Dell (Latitude 830) с оперативной памятью 4 ГБ, но мне приходится работать на ноутбуке для посещений клиентов, поэтому я не склонен раскошеливаться на дополнительный рабочий стол.

+0

С января 2015 года я теперь использую VMWare Fusion на Macbook Retina 13 "с 512 ГБ SSD и очень доволен им. Тем временем 3D-функции в VMWare значительно улучшились (WPF, конечно, немного заглох, но thats другой вопрос ..) –

ответ

5

Попробовав это сам, я бы предпочел избежать использования виртуальной машины для разработки WPF. Механизм WPF использует ускорение DirectX для рендеринга контента, а поддержка DirectX является неполной на VMWare (хотя и на несколько миль лучше, чем несуществующая поддержка DirectX от MS Virtual PC).

Проблема, с которой вы столкнулись, заключается в том, что Visual Studio и Expression постоянно пересматривают ваш XAML во время работы над ним, что требует значительной пропускной способности GPU. Работа внутри виртуальной машины просто не разрезает ее, и, в зависимости от вашей настройки, вы будете испытывать черные/незаполненные или не отвечающие дизайнерские окна в VS 2008.

Если возможно, придерживайтесь разработки на локальном рабочем столе ,

1

Как ваша среда разработки внутри виртуальной машины помогает повысить производительность?

Если ваш инструмент разработки замедляет работу вашего компьютера, это быстро и быстро заставит операционную систему, но вы должны работать внутри медленной виртуальной машины, где есть инструменты для разработки, поэтому я подозреваю, что вы несете часть компьютера, который используете чтобы быстро играть в пасьянс, делая часть, которую вы используете, чтобы работать медленнее.

Как это продуктивно?

Кроме того, виртуальные машины работают лучше всего, когда у вас много и много памяти, а файл виртуальной машины находится на другом физическом диске, а затем вы устанавливаете Windows - как это легко сделать на ноутбуке.

+0

Я думал то же самое. :) Я использую виртуальные машины для тестирования, но я не буду развиваться в одном. (Ну, я разрабатываю приложения VB6/VC++ 6 в виртуальной машине, чтобы избежать конфликтов с VS6 и VS2003/2005/2008, но thats it) – BobbyShaftoe

+0

В соответствии со ссылкой, которую я цитировал, некоторые люди считают, что использование виртуальной машины останавливает вашу среду разработки, ухудшающуюся с течением времени, поскольку вы можете заменить ее на изображение, поэкспериментировать с новыми установками и т. д. –

+0

Если вы собираетесь запустить VPC, запустите его с жесткого диска USB, что улучшит производительность, когда он находится на том же шпинделе, что и ваша ОС, что может замедлить его. –

0

Это действительно не должно быть так плохо - я бы ожидал заметить небольшую разницу, но для целей развития будет работать локальный VM-плеер.

Единственное, что действительно есть проблема с пытается разработать WPF более удаленного рабочего стола с большим количеством анимации/видео и т.д.

Кстати, в качестве возможной альтернативы, иметь VM совместно логический раздел диска с большинство ваших инструментов разработки и, при необходимости, запускайте Expression Blend локально и откройте проект.

+0

Как только вы получите вложение Expression Blend в вашу основную систему, вам также не нужно иметь хотя бы платформенный SDK - похоже, наполовину вниз по склону там есть основные инструменты для разработчиков. –

+0

Да, я думаю, что это решение сводится к тому, в какой степени у вас есть вещи, движущиеся и оживляющие в вашем приложении, которые вам нужно видеть в высоком качестве во время разработки. – Brandon

0

Я нашел только одно решение на данный момент: подключитесь к VMWare через RDP. Таким образом, Microsoft Expression не сбой.

(В первый раз я увидел его, я подумал, что Microsoft действительно выпустила такой незрелый продукт)

Я постараюсь выяснить, можно ли отключить DirectX (или принуждать DirectX 8) без входа в системе с помощью RDC.

+0

set HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Avalon.Graphics \ DisableHWAcceleration to DWORD: 1 это должно устранить глюки – OCTAGRAM

0

Я нашел еще лучший способ: запретить доступ к d3d9.dll. Удалите его или измените права безопасности (как и я), чтобы к нему не удалось получить доступ. В WPF: 0, 1, 2 есть несколько ярусов.

2 беспорядок все. 0 не так быстро, как 1. DisableHWAcceleration заставляет уровень быть 0. Я не нашел иного способа, кроме запрещения d3d9.dll.

К счастью, это сработало. Microsoft Expression работает без беспорядка. Хотя я не уверен, действительно ли уровень 1.

1

Parallels 5 выглядит намного быстрее, чем моя Fusion VM в WPF. VS2010 загружается намного быстрее и не имеет всех сбоев в видео ... Этот вид отстой, потому что я использую Fusion в течение последних нескольких лет и не хочу переключаться, но P5 кажется намного лучше с WPF до сих пор ,

+0

То же - я тоже не хочу переключаться! Надеюсь, им не потребуется много времени, чтобы наверстать упущенное. –

Смежные вопросы