Developpez.com

Le Club des Développeurs et IT Pro

OmniSharp rend la programmation .NET multiplateforme

L'outil permet d'utiliser .NET dans votre éditeur préféré sur Windows, Linux et Mac

Le 2015-01-06 14:33:07, par Hinault Romaric, Responsable .NET
Microsoft a fait un grand pas il y a quelques mois vers la communauté open source en annonçant .NET Core, son fork open source de la plateforme .NET.

.NET Core est une implémentation modulaire, qui pourra être utilisé dans une grande variété de plateformes. L’ambition de Microsoft est de rendre .NET accessible à un nombre plus important de développeurs, sous plusieurs plateformes, y compris Linux et Mac.

Avec .NET Core, les développeurs peuvent dorénavant créer des applications ASP.NET 5 (prochaine version majeure de plateforme de développement Web ASP.NET) qui fonctionnent sur Windows, Mac et Linux.

Cependant, le développement .NET est extrêmement lié à l’environnement de développement Visual Studio, qui ne fonctionne que sur les systèmes d’exploitation Windows. Certes, il existe MonoDevelop, qui est un EDI cross platform permettant de créer des applications Web et Desktop en .NET sur Linux, Windows et Mac OS X. Mais, si le développeur pouvait exploiter l’EDI de son choix pour faire du développement .NET ?

C’est le défi que promet de résoudre OmniSharp, un ensemble de projets open source, chacun ayant pour objectif de rendre possible le développement .NET dans votre EDI. Le projet est actuellement maintenu par 8 développeurs, dont deux personnes de chez Microsoft. On y retrouve notamment Scott Hanselman, de Microsoft. Il faut noter cependant qu’il ne s’agit pas d’un projet de Microsoft.

« C’est amusant de dire que .NET est Cross platform. Mais, est-il raisonnable pour quelqu’un de développer en .NET sans Visual Studio et Windows ? », peut-on lire sur la page du projet. « Est-il amusant de faire du .NET sur un Mac avec Sublime ? Sur Ubuntu avec Emacs ? Sur Windows avec Atom ? »

Avec OmniSharp, vous serez désormais en mesure d’utiliser votre EDI pour créer des applications en .NET et déployer celles-ci partout, tout en bénéficiant des fonctionnalités intéressantes de Visual Studio comme l’IntelliSense, l’ajout des références, des formats de documents, la refactorisation, etc.


IntelliSence avec Sublime Text

Pour cela, il vous suffit de télécharger la version d’ASP.NET 5.0 pour votre plateforme, et installer les outils nécessaires en fonction de votre environnement de développement.

Actuellement, Sublime Text 3, Vim, Atom de Github, Emacs et Adobe sont pris en charge par OmniSharp. Le projet fonctionne comme un processus indépendant et exécute une API Web qui communique avec votre éditeur. Il suffit donc, de développer des plug-ins pour l’étendre à d’autres EDI, notamment Eclipse.

Le développement de OmniSharp est encore en cours, et ses développeurs espèrent à terme pouvoir l’intégrer avec le compilateur Roslyn. Pour l’instant, uniquement le support d’ASP.NET 5 est offert.

Pour rappel, ASP.NET 5 est un projet open source conçu à la fois pour le Cloud et les serveurs. La plateforme introduit un nouveau mode « cloud optimized », qui est plus rapide et utilise moins de ressources que la version actuelle de .NET. Ce mode permet de déployer des applications .NET avec des copies des bibliothèques du Framework .NET.

Télécharger OmniSharp et ses outils de développement

Source : Le site du projet

Et vous ?

Que pensez-vous de OmniSharp ? Allez-vous tester le projet ?
  Discussion forum
20 commentaires
  • redcurve
    Membre extrêmement actif
    Envoyé par dfiad77pro
    C'est très intéressant comme type de projet et d'ouverture.

    Cela dit outre les fonctionnalités textuelles et référentiel d'un IDE,
    Visual studio possède énormément d'outils pas forcément simples à implémenter (coded UI, Designer , profiler ...),

    Ce qui fait la force de Visual studio en .NET c'est qu'on peut faire énormément de choses de manière unifié.
    je ne suis pas sur qu'assez de volontaires se lanceront dans ce genre de projet afin d'égaler Visual studio sur ces points dans une solution unifiée (même en java on à pas 20000 IDE complets).

    Je pense qu'on va plutôt à terme se retrouver avec un IDE éprouvé genre Eclipse For Dotnet (ce qui signifiera une implémentation l’analyse syntaxique et grammaticale, du compilateur roselyn , donc une foultitude de pluggins).

    Bref dans quelque mois on aura le sujet suivant sur dev.net : les DSI vont-il imposer Eclipse à la communauté .NET ?


    Surtout pas Eclipe ce soft est une horreur
  • anthyme
    Membre éprouvé
    gnome a bien une dépendance sur mono donc des linuxiens qui font du C# il y en a depuis déjà pas mal de temps ;-)
  • imikado
    Rédacteur
    Certes, il existe MonoDevelop, qui est un EDI cross platform permettant de créer des applications Web et Desktop en .NET sur Linux, Windows et Mac OS X.
    Il ne me semble pas
    Je developpe en ce moment avec monoDevelopp et on génère des applications mono et Mono (implémentation libre de .net) et non .Net
    Il y a une grosse différence

    Par exemple pour la partie graphique je fait du GTK# et non du winforms ou WPF...

    Et un autre exemple: je compile sur mon Linux, et l'application ne fonctionne pas sur mon windows où mono n'est pas installé

    Autre chose, il me semblait avoir lu que c'était ASP.net qui allait être multi plateforme et non .net tout entier... à confirmer
  • imikado
    Rédacteur
    J'essaierai aujourd'hui, mais on parle bien d'une application graphique (wpf/winforms...) pas console ?

    Utiliser wine ce n'est pas natif, désolé
  • dfiad77pro
    Membre expérimenté
    C'est très intéressant comme type de projet et d'ouverture.

    Cela dit outre les fonctionnalités textuelles et référentiel d'un IDE,
    Visual studio possède énormément d'outils pas forcément simples à implémenter (coded UI, Designer , profiler ...),

    Ce qui fait la force de Visual studio en .NET c'est qu'on peut faire énormément de choses de manière unifié.
    je ne suis pas sur qu'assez de volontaires se lanceront dans ce genre de projet afin d'égaler Visual studio sur ces points dans une solution unifiée (même en java on à pas 20000 IDE complets).

    Je pense qu'on va plutôt à terme se retrouver avec un IDE éprouvé genre Eclipse For Dotnet (ce qui signifiera une implémentation l’analyse syntaxique et grammaticale, du compilateur roselyn , donc une foultitude de pluggins).

    Bref dans quelque mois on aura le sujet suivant sur dev.net : les DSI vont-il imposer Eclipse à la communauté .NET ?
  • Seb33300
    Membre émérite
    Je peux comprendre l'idée de proposer des alternatives.
    Mais quitte à développer une appli .NET, autant utiliser visual studio. Je ne pense pas qu'il puisse une jour exister un équivalant qui puisse rivaliser à tous les niveaux.
    De toute façon, je doute que les "pro-linux/mac" se tournent un jour vers du développement .NET.
  • dfiad77pro
    Membre expérimenté
    Envoyé par Seb33300

    De toute façon, je doute que les "pro-linux/mac" se tournent un jour vers du développement .NET.

    Oh j'en connait un ( chercheur et poète moustachu complétement félé du language) qui est fan de C# et F#(mais en temps que langage pure)
  • codec_abc
    Membre confirmé
    Cette initiative me plait bien. Je vais surement tester l'intégration sous Atom dans les prochains jours.
  • Washmid
    Membre averti
    Pour linux + c#, l'énorme avantage de .NET sur Java est qu'il permet d'obtenir des applications très dépendantes de la plateforme, contrairement à java où faire du Gnome, par exemple... bonne chance.

    Ce n'est pas la portabilité de .NET qui plait sur Linux, c'est le fait que les applis qu'on crée avec soient extrêmement intégrées à Gnome & co (la plupart du temps).

    Bref, c'est pour répondre à Seb33300 et d'autres
  • Lutarez
    Membre chevronné
    Envoyé par imikado
    Il ne me semble pas
    Je developpe en ce moment avec monoDevelopp et on génère des applications mono et Mono (implémentation libre de .net) et non .Net
    En effet, ça marche beaucoup mieux de .Net vers Mono que l'inverse.

    Envoyé par imikado
    Par exemple pour la partie graphique je fait du GTK# et non du winforms ou WPF...
    Sauf erreur de ma part, tu peux faire du WinForms avec Mono. Bon, tu n'auras pas de designer et ça sera moche car le thème de la distro est pas appliqué, mais ça marche. Pour WPF, il y aurait certaines rumeurs pour son ouverture, mais ça prendrait sûrement pas mal de temps (portage vers OpenGL oblige).

    Envoyé par imikado
    Autre chose, il me semblait avoir lu que c'était ASP.net qui allait être multi plateforme et non .net tout entier... à confirmer
    C'est déjà le cas et pleinement opérationnel : http://aspnetwebstack.codeplex.com/. Il y a tout ce qu'il faut pour faire du Web sous Unix en utilisant ASP.NET + Entity. Mais ceci n'est finalement que la première étape de l'ouverture, le reste arrive petit à petit (par exemple, le Net.Core).

    Ca prends le temps, mais en tout cas, c'est sur le bon chemin.