MonoDevelop является интегрированной средой разработки для оболочки рабочего стола GNOME, основной задачей которой является создание программ на языке C#, на других языках семейства .NET, а также открыт для любых других языков. Однако, MonoDevelop рассчитывает стать чем то больше, чем просто IDE, он намерен стать расширяемой платформой, на которой могут быть построены любые средства разработки.
Первоначально MonoDevelop был портом SharpDevelop для GTK#, однако в последующем он стал чем-то большим.
Имеется множество целей, которые планирует достичь MonoDevelop, среди которых можно выделить:
- Создание лучшей в своем роде интегрированной среды разработки под UNIX-системы с использованием библиотеки Mono.
- С момента начала реализации MonoDevelop с помощью библиотеки GTK#, с тех пор, как нам нравится GTK# и с тех пор, как мы получаем полноценную поддержку со стороны его разработчиков, скорее всего будут расширяться функциональные возможности и для получения полноценного опыта использования GTK#.
- Мы хотим интегрировать некоторые инструменты, которые были разработаны до этого, такие как MonoDoc, NUnit-Gtk и отладчик.
- Первое GTK# приложение.
- Первое Glade#-приложение.
Ядро MonoDevelop распространяется под LGPLv2, в то время как основная часть кода и надстроек придерживается лицензии MIT/X11. Весь исходный код доступен в SVN-формате. Откройте страницу Загрузка MonoDevelop для получения более подробных рекомендаций.
Такие замечательные платформы, как Mono, должны иметь свои уникальные IDE, такие как MonoDevelop, которые позволяют в полной мере использовать ее возможности. Такие возможности, как автоматическое завершение кода, интегрированное модульное тестирование, браузер классов и т.д. было бы гораздо труднее реализовать с применением среды разработки, основанной на языке C.
Платформа Mono также предоставляет некоторые возможности, которые идеально подходят для создания IDE. Благодаря Mono, MonoDevelop предлагает следующие функции:
- Полностью объектно-ориентированный API.
- Очень мощная надстройка над программой для реализации конкретной задачи (на основе рефлексии рабочей среды, которая использует преимущества .NET-сборки).
- Простая поддержка множества языков, как для проектов пользователей, так и для написания надстроек.
MonoDevelop 0.10, а также более поздние версии, имеет в совем составе интегрированную среду разработки пользовательского интерфейса, основанную на Stetic
Конечно. MonoDevelop может быть запущен в Windows, может строить, запускать и отлаживать приложения с использованием либо Mono, либо .NET. Установочный файл MonoDevelop для Windows доступен на странице Загрузки MonoDevelop
Да, версия для Mac OSX доступна на странице Загрузки MonoDevelop.
Разумеется. Нажмите правой кнопкой мыши на вашем проекте, выберите 'Options'=>'Runtime' и выберите '2.0' в выпадающем списке
Менеджер надстроек может быть запущен независимо с помощью команды: 'mdtool gsetup'
MonoDevelop может открывать, управлять и сохранять проекты, основанные на MSBuild, непосредственно в большинстве случаев. В действительности, начиная с MonoDevelop 2.0 стандартным форматом форматом проектов является стиль VS2008 проектов MSBuild, однако также осуществляется поддержка проектов VS2005 и VS2010
Это происходит потому что MonoDevelop не использует сборки из GAC. В Mac и Linux MonoDevelop использует pkg-config для поиска установленных пакетов и получить список сборок, которые содержат пакеты. Пакет содержит список сборок в файлах .pc, которые должны быть установлены в стандартную директорию pkg-config.
Если Вы разрабатываете библиотеку, MonoDevelop может автоматически сгенерировать файл .pc для Вашего проекта (в диалоге конфигурации проекта выберите "Linux Deployment Settings" и выберите опцию "Generate .pc file").
Когда проект ориентируется на .NET в Windows, MonoDevelop использует те же самые AssemblyFolders, что и VS.
С практической точки зрения, нет.
Ранее существовал экспериментальный визуальный дизайнер для ASP.NET, AspNetEdit, построенный на Google Summer of Code 2005, который был интегрирован в MonoDevelop в 2006 году. Он присутствует в SVN MonoDevelop и заинтересованные люди приглашаются для построения и экспериментов над ним, однако полной поддержки не существует.
Хотя AspNetEdit может быть использован для простых демонстраций, он так и не достиг Release-статуса, при котором он может быть использован для реальных проектов. Основной причиной этого является то, что Mozilla Composer имеет плохую поддержку современного HTML. Кроме того, существовало много трудностей со встраиванием Mozilla/Gecko/Firefox, которые сделали установку надстройки очень сложной задачей. В результате этого, было принято решение о портировании AspNetEdit в движок WebKit. Однако, так как завершение этой работы требует больших усилий, было принято решение приостановить ее для решения более значимых для пользователей задач.
Если Вы заинтересованы в развитии визуального дизайнера, просим Вас написать в список рассылок или найдите Майкла Хатчинсона ('mhutch') на IRC (StackOverflow; GitHub/mhutch).
Бинарный инсталлятор Linux больше не поддерживается. Для установки используйте пакеты своего дистрибутива.
Это связано с плохим взаимодействием Mono 1.1.13 и Boo.
У Вас есть три способа решения этой проблемы:
- Обновить Boo до версии 0.7.5
- Удалить надстройку Boo, запустив "mdtool gsetup"
- Обновить Mono до версии 1.1.14 или выше
Ниже представлена трассировка стека:
System.Runtime.Remoting.RemotingException: Unix transport error. Server stack trace:
in Mono.Remoting.Channels.Unix.UnixMessageIO:ReceiveMessageStatus (System.IO.Stream networkStream, System.Byte[] buffer)
in Mono.Remoting.Channels.Unix.UnixClientTransportSink:ProcessMessage (IMessage msg, ITransportHeaders requestHeaders,
System.IO.Stream requestStream, ITransportHeaders responseHeaders, System.IO.Stream responseStream)
in Mono.Remoting.Channels.Unix.UnixBinaryClientFormatterSink:SyncProcessMessage (IMessage msg) Exception rethrown at:
---> System.Runtime.Remoting.RemotingException: Connection closed
in Mono.Remoting.Channels.Unix.UnixMessageIO:StreamRead (System.IO.Stream networkStream, System.Byte[] buffer, Int32 count)
in Mono.Remoting.Channels.Unix.UnixMessageIO:ReceiveMessageStatus (System.IO.Stream networkStream, System.Byte[] buffer)
--- End of inner exception stack trace ---
in Mono.Remoting.Channels.Unix.UnixMessageIO:ReceiveMessageStatus (System.IO.Stream networkStream, System.Byte[] buffer)
in Mono.Remoting.Channels.Unix.UnixClientTransportSink:ProcessMessage (IMessage msg, ITransportHeaders requestHeaders,
System.IO.Stream requestStream, ITransportHeaders responseHeaders, System.IO.Stream responseStream)
in Mono.Remoting.Channels.Unix.UnixBinaryClientFormatterSink:SyncProcessMessage (IMessage msg)
Если Вы не можете "копировать\вставлять" (команда "вырезать" приводит только к удалению) какие-либо элементы управления, то у Вас запущен апплет "glipper" оболочки рабочего стола GNOME. Вы можете проверить это, использовав команду:
ps | grep glipper
Если эта команда вернет какой-либо результат, значит glipper активен и должен быть отключен.
Для надстройки NUnit необходим mono 1.1.9 или выше. Она выполняет некоторые кроссдоменные исправления окже имеют другую особую проблему, которая заключается в том, что NUnit отделяется от Mono и не включает соответствующие PKG-конфигурационные файлы.
Сконфигурируйте MonoDevelop с помощью следующей команды:
./configure --enable-nunit
Только для пользователей Debian
Установите пакеты nunit и libnunit-cil (на данный момент необходимы приложения из ветки unstable). В связи с отдельной установкой NUnit, мы должны сделать так, чтобы символьная ссылка MonoDevelop знала, где найти PKG-файл
ln -s /usr/lib/pkgconfig/nunit.pc /usr/lib/pkgconfig/mono-nunit.pc