Реальные затраты на запуск приложений WinForm на моно? - PullRequest
9 голосов
/ 16 октября 2008

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

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

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

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

Спасибо!

Ответы [ 2 ]

12 голосов
/ 16 октября 2008

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

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

Кроме того, ознакомьтесь с MOMA : «Инструмент Mono Migration Analyzer (MoMA) помогает вам выявлять проблемы, которые могут возникнуть при переносе приложения .Net в Mono. Он помогает точно определять вызовы для конкретной платформы (P / Invoke ) и области, которые еще не поддерживаются проектом Mono. "

6 голосов
/ 19 октября 2008

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

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

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

Леннарт Poettering запись в блоге на аудио является отличной отправной точкой:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...