Назад | Перейти на главную страницу

Моно против вина для производства

Для производства

Вы бы предпочли использовать Wine или Mono для запуска .net-приложения в Linux OpenSuse 11.

в Подкаст stackoverflow # 61 , один из основных разработчиков, Мигель де Икаса, заявляет, что mono готово к производству, и говорит, что он используется в производстве. Они также упоминают плагин Visual Studio в подкасте, который помогает убедиться, что приложение готово к работе с Mono. В этом сообщении stackoverflow, они считают, что моно тоже готово к производству.

Я никогда не слышал таких заявлений о Wine для .NET. Так что я бы выбрал Моно.

Базовая установка для Wine не имеет среды выполнения .net, поэтому я бы выбрал Mono.

Учитывая тот факт, что Mono может запускать приложение изначально, я бы выбрал Mono. С точки зрения поддержки, это, вероятно, тоже лучший вариант. Ото, если приложение .Net использует специфические для Microsoft .Net части спецификаций (запатентованные вещи, вокруг которых так много шума), у вас нет другого выбора, кроме как использовать Wine. Я даже не знаю, возможно ли это.

Есть ли причина, по которой это должно быть одно из этих двух? Оба относительно зрелый. Но это зависит от приложения, поэтому вам придется фактически установить и настроить их с соответствующим приложением, чтобы увидеть, какова производительность и совместимость для каждого из них. Mono может запускать просто работоспособную дори для большинства вещей, но ваше приложение может иметь эту функциональность или обнаруживать тот единственный сбой, который внезапно заставляет его сканировать или давать сбой. То же и для вина.

Я бы также рассмотрел виртуализацию как возможное решение; запуск приложения в Virtualbox на рабочей станции или VMWare ESXi или Xen на соответствующих системах в «родной» среде обеспечит совместимость (если это приложение для рабочей станции, вы даже можете запустить его в бесшовном режиме, чтобы оно выглядело как другое приложение).

Если вы можете дать некоторую справочную информацию о рассматриваемом приложении, это может помочь.

Учитывая, что Mono является проектом Novell, а Novell владеет SUSE, вы можете рассчитывать на хорошую производительность и поддержку Mono через OpenSUSE. Исходя из моего опыта, Mono очень хорошо справляется с реализацией CLR с парой библиотечных исключений. Поскольку существует меньше уровней абстракции между запуском кода .NET через Mono, чем запуском чего-либо на базе Windows через WINE, я бы определенно использовал Mono.

Однако у меня возник бы один вопрос: является ли это настраиваемым приложением или предварительно упакованным приложением. В первом случае будет относительно легко обеспечить полную совместимость с Mono (и вы можете создать приложение с помощью MonoDevelop, чтобы получить предупреждение, хотя приложения, созданные с помощью Visual Studio, должны работать нормально). В последнем случае вы можете узнать, есть ли у него история с Mono (некоторые вещи, такие как Telerik, сертифицированы для нормальной работы через Mono), или вероятно, что он будет использовать библиотеку (например, компоненты MS DirectoryService), которые могут представлять вопросы.

Немного не по теме, но попробуйте взглянуть на Анализатор миграции Mono, MoMa.

MoMa - это инструмент, который вы можете использовать, чтобы проверить, будет ли приложение работать под Mono, и, если нет, выделить области, вызывающие проблемы. MoMa работает как в Windows, так и в Linux и очень проста в использовании.

Я использовал его только один раз, но это был простой способ узнать, будет ли приложение работать или нет.