{{tag>Jammy programmation windows}}
----
====== MonoDevelop : Un IDE pour Mono/.NET ======
===== Présentation =====
MonoDevelop fait partie du projet [[http://www.mono-project.com/Main_Page|Mono]]. C'est un IDE libre de GNOME initialement conçu pour le C# et les autres langages .NET et permet de développer des applications Web, Desktop, Web Service, Console, etc.
Il a été initialement un portage de SharpDevelop.
MonoDevelop est multi-plateformes :
* GNU/Linux
* Mac OSX
* Windows
===== Fonctionnalités =====
MonoDevelop permet de créer de véritables projets avec un éditeur de classes, de fichiers.
MonoDevelop est extensible par des add-in, il en existe notamment pour la gestion des base de données, le support de SVN.
Le liste complète des fonctionnalités est disponible sur cette page :[[http://monodevelop.com/Documentation/Feature_List|Fonctionnalités MonoDevelop]]
===== Licence =====
Depuis la version 2.2 Beta 2, Monodevelop est développé sous licence [[wpfr>LGPL|LGPL 2.1]].
Le principal changement que cela induit est que les add-ins peuvent être développés sous la licence du choix du développeur.
===== A propos de Mono =====
Mono est une plate-forme de développement complète basée sur une implémentation de la machine virtuelle .NET et des API de base définis à l’ECMA .
Mono propose entre autres :
* Des API indépendantes de l’environnement : sécurité, base de données, Service web, XML, web forms.
* Des API destinées à la programmation sous GNU/Linux et plus particulièrement GNOME : GTK#, Glade# Gecko#, Gst#.
* Des API compatibles avec le framework .Net de Microsoft.
* Un outil pour naviguer dans la documentation : Monodoc, qui a l'originalité de pouvoir être modifié par le programmeur qui peut ensuite envoyer automatiquement les modifications au CVS de Mono.
* Un compilateur pour le langage C# 4 à partir de la version 2.4.3. Souvent présenté comme une évolution du langage Java avec une pincée de C++. Sans être une révolution, ce langage apporte de réels plus qui le rendent très agréable et puissant. Mono propose également un compilateur Javascript et VB.NET.
* Un serveur web léger entièrement compatible avec la technologie ASP.NET qui permet d'utiliser n'importe quel langage de la plate-forme pour générer des sites web dynamiques. Un module Apache est également disponible.
===== Installation =====
Il est recommandé par Xamarin d'utiliser le flatpak dédié.
[[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>flatpak]]**.
Puis installer monodevelop depuis flatpak
flatpak install --user --from https://download.mono-project.com/repo/monodevelop.flatpakref
flatpak exécutant les applications dans un bac à sable, les bibliothèques présentes dans votre système ne peuvent être appelées par DllImport dans votre application/projet
En 2024, le téléchargement via flatpack ne fonctionne plus. Se rendre à l'adresse https://www.monodevelop.com/download/
===== Configuration =====
==== Exécution des applications console ====
Afin d'exécuter des applications console ou si vous rencontrez le message d'erreur « **File name has not been set** ». [[:tutoriel:comment_installer_un_paquet|Installer le paquet]] **[[apt>xterm|xterm]]**.
==== Could not connect to debugger ====
Si vous avez l'erreur « Could not connect to debugger », lancez monodevelop depuis un terminal avec avant:
* Pour Gnome: « //unset GNOME_DESKTOP_SESSION_ID// »
* Pour KDE: « //unset KDE_SESSION_VERSION// »
* Pour Mate: « //unset MATE_DESKTOP_SESSION_ID// »
[[http://superuser.com/questions/669444/monodevelop-cannot-connect-to-debugger#744763|Source]]
===== Liens externes =====
=== MonoDevelop ===
* (en) [[http://www.monodevelop.com|Site web MonoDevelop]]
* (en) [[http://go-mono.com/forums/|Forum - Mono - MonoDevelop]]
* (en) [[http://www.icsharpcode.net/OpenSource/SD/|Site web SharpDevelop]]
* (en:irc) [[irc://irc.gimp.org/monodevelop|#monodevelop sur l'irc.gimp.org]]
=== Mono ===
* (en) [[http://www.mono-project.com|Site officiel du projet Mono]]
* (en) [[http://www.go-mono.com/docs/|Documentation des classes de Mono]]
* (en) [[http://pkg-mono.alioth.debian.org|Mono pour Debian]]
----
//Contributeurs : [[utilisateurs:ronan|ronan]], [[utilisateurs:binnette]], [[utilisateurs:breizhodrome]] //