У всплывающего виджета нет доступа к диспетчеру экрана.
Поскольку у вас есть доступ к глобальной переменной screenManager
, замените self.manager.current = 'display_screen'
на screenManager.current = 'display_screen'
Что 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 и библиотек фреймворка.
У меня нет большого опыта в этой области, но ...
Дорожная карта проекта Mono содержит обзор новых, новых и отсутствующих в Mono функций по сравнению с MS.NET. Даже если Mono имеет те же классы, что и .NET, обратите внимание, что совместимость не на 100% (хотя это, как правило, их цель). Я не уверен, существует ли полный список вещей, отсутствующих в Mono.
MonoDevelop теперь доступен как для Windows, так и для Linux, поэтому вам, вероятно, лучше всего его использовать. Однако MonoDevelop, похоже, использует тот же формат файлов проекта, что и Visual Studio и SharpDevelop, поэтому вы можете попытаться смешать IDE.
Конечно, при использовании сторонних библиотек .NET обратите внимание, что многие из них не были протестированы с mono, и, в частности, все, что использует P / Invoke, не будет работать на Mono для Linux. Тем не менее, большинство несовместимостей с моно незначительны, и если вы будете придерживаться библиотек с открытым исходным кодом, вы всегда можете исправить любые несовместимости, с которыми вы столкнетесь.
Если вы можете помочь, рекомендую избегать Mono-реализации Remoting. Кажется, есть некоторые неожиданные икоты, и отладка не является прямой.
У нас был очень тяжелый продукт Remoting, который мы пытались перенести на Mono, чтобы мы могли поддерживать Linux. Из-за невозможности решить проблемы с удаленным доступом нам в конечном итоге пришлось полностью отказаться от попыток поддержки Linux.
Предостережение : мой опыт может быть устаревшим. Смотрите комментарии ниже
Вы также можете ознакомиться с Mono Tools для Visual Studio . Это позволяет разработчикам вашей визуальной студии ориентироваться на моноплатформу и тестировать ее.
Если никому из ваших разработчиков не нужно разрабатывать на Mono определенные функции, я предлагаю вам всем использовать Visual Studio в Windows. Затем протестируйте приложения в Mono с помощью
Лично я испытал много мелких неприятностей, когда попробовал третий способ, но, к счастью, я могу найти обходные пути.
Только прикоснувшись к Mono, вы узнаете, какую часть вашего приложения нужно настроить.
Вы стремитесь всегда получать поддержку и / или в первую очередь использовать программное обеспечение в Linux, верно? На самом деле это вопрос, который я недавно задал разработчикам Mono на конференции, и он в основном сводился к тому, что вы хотите с ним делать.
Если вы хотите, чтобы он всегда работал в Linux, используйте Mono. Если вас интересует только Windows, используйте Visual Studio.
Если вы используете Mono, используйте MonoDevelop для всех разработчиков. Позже это просто сделает жизнь намного проще и гарантирует, что все, что вы напишете в нем, будет работать для всех.
К сожалению, я не знаю ответа на вопрос о точных пределах / преимуществах Mono по сравнению с .NET, кроме того, что .NET находится дальше впереди, а Mono играет в догонялки, а также о различных аддонах.
Вам не нужен MonoDevelop для запуска ASP.NET в Linux, создайте общую папку на своем сервере разработки (VMWare'd или настоящий), часто тестируйте, чтобы вы могли легко исправить то, что отсутствует в Mono
. Тот же подход, который я использую в моем .NET Программа удаленного взаимодействия, которую я размещаю на сервере Ubuntu. Но я делаю обратное, поскольку я программист-одиночка, я создаю общую папку на своей машине для разработки Windows, а затем получаю доступ к этой общей папке на моем тестовом сервере Ubuntu (vmware'd). В материалах ASP.NET, если изменения не отражаются на вашем тестовом сервере Ubuntu, в Терминале просто коснитесь файла Web.Config на своем тестовом сервере Ubuntu. то есть коснитесь Web.Config
, затем обновите страницу