[[Vorlage(Getestet, bionic)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme starten: Starten von Programmen] [:Terminal: Ein Terminal öffnen] [:mit Root-Rechten arbeiten:] }}} [[Inhaltsverzeichnis()]] [[Bild(md-logo.png,64,align=left)]] [https://www.monodevelop.com MonoDevelop] {en} ist eine [:Entwicklungsumgebungen:integrierte Entwicklungsgebung] für Programmiersprachen, die den ISO/IEC/ECMA spezifizierten [wikipedia:Common Language Infrastructure:Common Language Infrastructure] (CLI) Standard implementieren, deren bekanntester Vertreter [wikipedia:C-Sharp:C#] ist. Ein frühes Alleinstellungsmerkmal war die Möglichkeit, mit einem grafischen Editor plattformunabhängige Benutzeroberflächen mit [https://www.mono-project.com/docs/gui/gtksharp/ Gtk#] {en} zu entwerfen. Die Bibliothek wird von MonoDevelop selbst zur Darstellung verwendet. Die unter Windows verwendeten [wikipedia:Windows Forms:WinForms] basierten Programme können kompiliert, aber nicht grafisch editiert werden. Applikationen auf Basis von Microsofts [wikipedia:Windows Presentation Foundation:WPF] sind hingegen nicht lauffähig. [[Vorlage(Bildunterschrift, ./MonoDevelop.png, 363, "MonoDevelop", right)]] Einst begann das Projekt als Portierung von [http://www.icsharpcode.net/OpenSource/SD/ SharpDevelop] {en} nach Linux, wobei die Entwicklungszweige stark voneinander abgedriftet sind. Heutzutage ist MonoDevelop die Basis für das kommerziell vertriebene [https://xamarin.com/studio Xamarin Studio] {en}, welches Programmierern unter Microsoft Windows und Mac OS X die kostenpflichtige Möglichkeit bietet, für iOS und Android Applikationen zu erstellen. = Installation = [[Bild(Wiki/Icons/synaptic.png, 48, align=right)]] MonoDevelop befand sich bis Ubuntu [:16.04:] in den offiziellen Paketquellen. Folgendes Paket muss installiert werden [1]: {{{#!vorlage Paketinstallation monodevelop, universe }}} Je nach Bedarf sind folgende Erweiterungen der Hauptanwendung sinnvoll. {{{#!vorlage Paketinstallation monodevelop-nunit, universe, um Modultests mit [wikipedia:NUnit:] zu schreiben monodevelop-versioncontrol, universe, integriert [:Git:] und [:Archiv/Subversion:Subversion] in die IDE monodevelop-database, universe, für Datenbank-Entwickler }}} == Fremdquellen == Ab Ubuntu [:18.04:] befindet sich MonoDevelop nicht mehr in den offiziellen Paketquellen. Man kann es aber für Ubuntu [:18.04:] über die Seiten des [https://www.monodevelop.com/download Mono-Projekts] {en} installieren: [[Vorlage(Fremdquelle-auth, key 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF)]] [[Vorlage(Fremdquelle, http://download.mono-project.com/repo/ubuntu vs-bionic main)]] Nach dem Aktualisieren der Paketquellen erfolgt die Installation [#Installation wie oben angegeben]. = Benutzung = [[Vorlage(Bildunterschrift, MonoDevelop-OpenRA-KDE.png, 368, "geöffnete [:Spiele/OpenRA:OpenRA]-Projektmappe", right)]] Das Programm wird über den Befehl '''monodevelop''' bzw. durch Anklicken von '''*.sln''' Projektdateien gestartet. Die Oberfläche ähnelt von der Benutzerführung einem Musikspieler bzw. Web-Browser. Rechts oben befindet sich eine Suchleiste, die sich mit [[Vorlage(Tasten, ctrl+',')]] fokussieren lässt, um den Quelltext des geöffneten Projekts zu durchforsten. == Ansichten == Über ''"Ansicht -> Debug"'' kann zu einer Perspektive gewechselt werden, die Quelltextdateien, Haltepunkte und Kompilierungsfehler anzeigt. Mit ''"Ansicht -> Projektmappe"'' werden hingegen die Klassen hierarchisch dargestellt. == Navigation == Durch Markieren von Funktionen im Quelltexteditor und Drücken von [[Vorlage(Tasten, f12)]] wechselt man zur Deklaration der aufgerufenen Methode. Mit [[Vorlage(Tasten, shift+f12)]] kann man weitere Verweise suchen, um zu schauen, wo und wie an anderer Stelle die gewählte Funktion aufgerufen wird. Mittels [[Vorlage(Tasten, f8)]] wird das geöffnete Projekt gebaut. Mit [[Vorlage(Tasten, ctrl+f8)]] wird das Projekt um bereits kompilierte Teile bereinigt und von Grund auf neu gebaut. == Kompilierung == Durch Drücken auf [[Vorlage(Tasten, f5)]] wird das Projekt gestartet, wobei ein Debugger mitläuft, der das Programm etwas verlangsamt, dafür aber im Fehlerfall deutlich mehr Informationen bereitstellt. Dies ist während der Entwicklung sowie gezielter Fehlersuche praktisch. Mit [[Vorlage(Tasten, ctrl+f5)]] wird das Programm wie später vom Anwender ohne Debugger gestartet. == Erweiterungsmöglichkeiten == Über ''"Tools -> Add-In-Manager"'' lassen sich Erweiterungen aus dem [https://addins.monodevelop.com/ MonoDevelop Add-in Repository] {en} installieren. Diese können unter anderem die IDE funktionell erweitern oder Produktivitätsverbesserungen ermöglichen. Es sind jedoch auch Erweiterungen für weitere [:Programmiersprache:]n installierbar. Im Standardumfang sind C/C++, C#, ILAsm ('''I'''ntermediate '''L'''anguage '''As'''se'''m'''bler, eine Zwischensprache, die von der Mono oder .NET Laufzeitumgebung in Maschinencode übersetzt wird) und VisualBasic.NET enthalten. [wikipedia:D (Programmiersprache):D], [:Lua:] und [wikipedia:F-Sharp:F#] werden von der Gemeinschaft bereitgestellt. Zudem existieren Vorlagen für die Spiele-Engine [https://unity3d.com/ Unity] {en} und [http://www.monogame.net/ MonoGame] {en}. = Beispiel: ein "Hallo Welt!" Programm = Durch Auruf von ''"Datei -> Neu -> Projektmappe -> Konsoleprojekt"'' erscheint ein Assistent, mit dem ein fertiges [wikipedia:Hallo-Welt-Programm:] erstellt wird: {{{#!code csharp using System; namespace Test { class MainClass { public static void Main(string[] args) { Console.WriteLine("Hello World!"); } } } }}} Die Datei kann man wie beschrieben mit [[Vorlage(Tasten, f5)]] direkt aus MonoDevelop starten. Beim Kompilieren entsteht eine '''.exe'''-Datei heraus, aber in Wirklichkeit handelt es sich um ein Abbild in einer Zwischensprache, das in etwa wie folgt aussehen würde: {{{#!code csharp .assembly Program { } .assembly extern mscorlib { } .method public static void Main() cil managed { .entrypoint .maxstack 1 ldstr "Hello World" call void [mscorlib]System.Console::WriteLine(string) ret } }}} Die erhaltene Binärdatei lässt sich auch über ein Terminal[3] mit folgendem Befehl ausführen: {{{#!vorlage Befehl mono Programm.exe }}} = Links = * [https://www.monodevelop.com/ Projektseite] {en} * [wikipedia:MonoDevelop:] * [wikibooks:Arbeiten_mit_.NET\:_Allgemeines/_Entwicklungsumgebungen/_MonoDevelop:MonoDevelop] * [ubuntu_fr:mono:Mono] und [ubuntu_fr:monodevelop:MonoDevelop] im franz. Ubuntu-Wiki * [https://bugzilla.xamarin.com/describecomponents.cgi?product=Xamarin%20Studio Fehlermeldesystem] {en} * [github:mono/monodevelop:Quelltext] {en} * [:Entwicklungsumgebungen:] {Übersicht} Übersichtsartikel # tag: Programmierung, Mono