Различия в разработке между.NET и Моно

У всплывающего виджета нет доступа к диспетчеру экрана.

Решение

Поскольку у вас есть доступ к глобальной переменной screenManager, замените self.manager.current = 'display_screen' на screenManager.current = 'display_screen'

25
задан Igor Popov 1 January 2013 в 08:12
поделиться

7 ответов

Что Mono не предоставляет по сравнению с Visual Studio?
По-видимому, вы имеете в виду MonoDevelop. MonoDevelop предлагает кроссплатформенную разработку на Linux, Mac OS X, Windows на основе GTK. Однако по понятным причинам он не так совершенен, как Visual Studio - его делают 3 человека, а не сотни. У него есть несколько хороших функций, особенно его архитектура плагинов управления версиями. Однако, поскольку Visual Studio Express бесплатен, в Windows не так много преимуществ для его использования.

Он использует тот же формат .csproj и .sln , что и Visual Studio, однако формат документов XML отличается.

Если позже мы запустим это в Linux, не следует ли нам использовать MonoDevelop?
Как я уже упоминал выше, форматы проекта совместимы.

Существуют ли сторонние инструменты или надстройки, которые могут стать проблемой с Mono позже?
В отличие от Visual Studio, для Monodevelop не так много надстроек. Те, которые вы используете в Monodevelop, вообще не повлияют на ваши файлы .csproj, поскольку все, что Visual Studio не может прочитать, обычно игнорирует.


Как уже говорилось, не путайте Mono с MonoDevelop.MonoDevelop - это IDE для Mono, которая изначально пришла из (разветвленной) SharpDevelop.

Mono - это кроссплатформенный фреймворк, который «обезьянничал» от Microsoft CLR и библиотек фреймворка.

20
ответ дан 28 November 2019 в 21:34
поделиться

У меня нет большого опыта в этой области, но ...

Дорожная карта проекта Mono содержит обзор новых, новых и отсутствующих в Mono функций по сравнению с MS.NET. Даже если Mono имеет те же классы, что и .NET, обратите внимание, что совместимость не на 100% (хотя это, как правило, их цель). Я не уверен, существует ли полный список вещей, отсутствующих в Mono.

MonoDevelop теперь доступен как для Windows, так и для Linux, поэтому вам, вероятно, лучше всего его использовать. Однако MonoDevelop, похоже, использует тот же формат файлов проекта, что и Visual Studio и SharpDevelop, поэтому вы можете попытаться смешать IDE.

Конечно, при использовании сторонних библиотек .NET обратите внимание, что многие из них не были протестированы с mono, и, в частности, все, что использует P / Invoke, не будет работать на Mono для Linux. Тем не менее, большинство несовместимостей с моно незначительны, и если вы будете придерживаться библиотек с открытым исходным кодом, вы всегда можете исправить любые несовместимости, с которыми вы столкнетесь.

5
ответ дан 28 November 2019 в 21:34
поделиться

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

У нас был очень тяжелый продукт Remoting, который мы пытались перенести на Mono, чтобы мы могли поддерживать Linux. Из-за невозможности решить проблемы с удаленным доступом нам в конечном итоге пришлось полностью отказаться от попыток поддержки Linux.

Предостережение : мой опыт может быть устаревшим. Смотрите комментарии ниже

1
ответ дан 28 November 2019 в 21:34
поделиться

Вы также можете ознакомиться с Mono Tools для Visual Studio . Это позволяет разработчикам вашей визуальной студии ориентироваться на моноплатформу и тестировать ее.

5
ответ дан 28 November 2019 в 21:34
поделиться

Если никому из ваших разработчиков не нужно разрабатывать на Mono определенные функции, я предлагаю вам всем использовать Visual Studio в Windows. Затем протестируйте приложения в Mono с помощью

  1. Mono Tools for Visual Studio
  2. , вручную скопируйте двоичные файлы поверх
  3. , проверьте код в Linux и создайте MonoDevelop.

Лично я испытал много мелких неприятностей, когда попробовал третий способ, но, к счастью, я могу найти обходные пути.

Только прикоснувшись к Mono, вы узнаете, какую часть вашего приложения нужно настроить.

http://www.mono-project.com/Start

1
ответ дан 28 November 2019 в 21:34
поделиться

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

Если вы хотите, чтобы он всегда работал в Linux, используйте Mono. Если вас интересует только Windows, используйте Visual Studio.

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

К сожалению, я не знаю ответа на вопрос о точных пределах / преимуществах Mono по сравнению с .NET, кроме того, что .NET находится дальше впереди, а Mono играет в догонялки, а также о различных аддонах.

1
ответ дан 28 November 2019 в 21:34
поделиться

Вам не нужен MonoDevelop для запуска ASP.NET в Linux, создайте общую папку на своем сервере разработки (VMWare'd или настоящий), часто тестируйте, чтобы вы могли легко исправить то, что отсутствует в Mono

. Тот же подход, который я использую в моем .NET Программа удаленного взаимодействия, которую я размещаю на сервере Ubuntu. Но я делаю обратное, поскольку я программист-одиночка, я создаю общую папку на своей машине для разработки Windows, а затем получаю доступ к этой общей папке на моем тестовом сервере Ubuntu (vmware'd). В материалах ASP.NET, если изменения не отражаются на вашем тестовом сервере Ubuntu, в Терминале просто коснитесь файла Web.Config на своем тестовом сервере Ubuntu. то есть коснитесь Web.Config , затем обновите страницу

0
ответ дан 28 November 2019 в 21:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: