Реальная стоимость запуска приложений WinForm в моно?

StackOverflow https://stackoverflow.com/questions/207255

  •  03-07-2019
  •  | 
  •  

Вопрос

В моей компании уже есть установленное приложение WinForm, которое работает на WinXP.Приложение выполняет большую часть обработки звука с помощью DirectSound.

Моя компания хотела бы оценить Mono как альтернативу Vista/Win Server 2008 по стоимости на каждую рабочую станцию.

Я слышал разные оценки: от «это будет легко работать в Mono» до «в некоторых случаях могут потребоваться месяцы перекодирования, чтобы заставить приложение WinForm работать с Mono в Linux».

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

Спасибо!

Это было полезно?

Решение

Часть WinForms будет простой, возможно, вам придется сделать очень мало, поскольку Mono теперь утверждает, что поддерживает Winforms на 100%, однако все вызовы DirectSound придется переписать для использования API, доступного в Linux, причем очевидным выбором является ALSA.

Я писал небольшие приложения в VS 2005 и легко портировал их в Mono.Если вы выполняете много вызовов P/Invoke, вам придется принять это во внимание, поскольку, возможно, их придется полностью переписать или переосмыслить.

Также проверьте МОМА:«Инструмент Mono Migration Analyzer (MoMA) помогает вам выявить проблемы, которые могут возникнуть при переносе вашего .Net-приложения в Mono.Это помогает точно определить вызовы, специфичные для платформы (P/Invoke), и области, которые еще не поддерживаются проектом Mono».

Другие советы

Mono может помочь вам переместить управляемый код, но не поможет вам переместить звуковой слой.

К сожалению, платформа .NET не предоставляет комплексного API для обработки звука.Он просто обеспечивает способ воспроизведения небольшого звукового сэмпла, и даже не очень хорош в этом (см. сообщение Джерона о промежутках звука при запуске эмулятора C64 под IKVM).

Вам придется выяснить, какой Linux API лучше всего соответствует тому, что делает ваше аудиоприложение.

Запись в блоге Леннарта Поеттеринга об аудио — отличная отправная точка:

http://0pointer.de/blog/projects/guide-to-sound-apis.html

Как только вы выберете API, как и в Windows, вам нужно будет P/Invoke тот API, который вам подходит.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top