Developpez.com

Le Club des Développeurs et IT Pro

Projet Roslyn : Microsoft ouvre la voie à la compilation dans le Cloud

Et l'analyse poussée du code C# et Visual Basic

Le 2011-09-16 17:12:22, par Idelways, Expert éminent sénior
Mise à jour du 20/10/11, par Hinault Romaric

Microsoft vient de publier la CTP (Community Technology Preview) du projet Rosyln.

Pour rappel, Rosyln est le nom de code d’un compilateur en tant que service (Compiler as a Service) ayant pour but d’ouvrir les compilateurs C# et Visual Basic de sorte que toutes les informations traitées par l’intermédiaire d’un compilateur soient disponibles sous la forme d’une API.

L’outil va donc permettre aux développeurs et utilisateurs finaux d’exploiter et partager la richesse des informations générées par les compilateurs.

La CTP de Roslyn est disponible comme une extension pour l’environnement de développement Visual Studio 2010 service pack 1.

Cette version de l’outil contient des nouveaux modèles pour la génération de code, l’analyse et la refactorisation.

Microsoft note que Roslyn est un projet à long terme, qui ne sera pas intégré par défaut dans Visual Studio 11, mais dans la version suivante. La prochaine version de l’outil intégrera le support des scripts et l’utilisation interactive de C# et Visual Basic.

La publication de la CTP de Roslyn est accompagnée d’un livre blanc, d’une démo et une documentation pour la prise en main de l’outil

Télécharger la CTP de Roslyn

Les ressources sur le projet

Projet Roslyn : Microsoft ouvre la voie à la compilation dans le Cloud
Et l'analyse poussée du code C# et Visual Basic

Microsoft s'apprête à mettre à la disposition des développeurs une nouvelle génération de compilateur au nom de code Projet Roslyn, présentée hier lors d'une session consacrée à l'avenir de la plateforme .NET à l'occasion de la conférence Build.

Ce compilateur en tant que service (CaaS) pour les langages C# et Visual Basic s'accompagne d'un ensemble d'API (interfaces de programmation) que les développeurs peuvent exploiter pour inspecter et affiner leur code.
Il s'inspire ainsi d'un composant du Projet Mono, où les informations que le compilateur génère peuvent être utilisées dans son programme en tant que librairie.

Les compilateurs, qui convertissent le code source des applications en programmes binaires exécutables, génèrent beaucoup d'informations sur le programme et sa construction, a rappelé Anders Hejlsberg, architecte en chef de l'équipe C# durant sa présentation, mais les développeurs n'ont généralement pas accès à ces données, regrette-t-il.

Ce à quoi Roslyn se propose de remédier, en fournissant sous Visual Studio diverses informations qui peuvent être exploitées pour refactoriser, réorganiser son code, créer des applications plus dynamiques ou même ajouter des fonctionnalités en C# et VB à des programmes écrits dans d'autres langages de programmation.

Hejlsberg a présenté en pratique des usages plus avancés de cette nouvelle technologique, comme une interface en ligne de commande qui permet aux utilisateurs d'entrer du code qui se compile directement, ou lancer des scripts pendant la compilation, pour en extraire plus d'informations.

Enfin, Hejlsberg a impressionné l’audience en convertissant « en toute fidélité » du code Visual Basic en C# et vice-versa, avec Roslyn et par un simple copier-coller.

Microsoft publiera une première version CTP (Community Technology Preview, sorte de bêta) de Roslyn dans un mois.

Source : Keynote d'Anders Hejlsberg

Et vous ?

Que pensez-vous du projet Roslyn ?
  Discussion forum
28 commentaires
  • BenoitM
    Expert confirmé
    Envoyé par Mose

    En revanche le graal derrière tout ça, l'évolution ultime que ça préfigure sans le dire explicitement, c'est que demain, on pourra avoir un IDE 80% web, et pourquoi pas 100% web après demain...
    Enorme !
    Euh l'utilité????
  • BenoitM
    Expert confirmé
    Envoyé par chico200987
    Le ~100% Web..
    Ca fait très discours marketing

    Je suis pas contre le web, mais en 10 ans j'en ai jamais fait, et jamais ressenti* le besoin.
    Quand tu travailles dans l'industrie, que tu pilotes des robots, des analyseurs, ca a pas beaucoup d'utilité de faire du web.
    Quand tu fais un service windows pas besoin de web

    *J'aimerai bien en faire , ca m'ouvrirai plus de portes mais dans le cadre de mes projets, ca n'a jamais eu beaucoup d'utilité
  • pseudocode
    Rédacteur
    Roslyn n'est pas un service au sens "cloud". C'est un service "local" de l'OS, au même titre que le service d'impression par exemple.

    L'idée c'est de mettre a disposition de toutes les applications la même chaine de compilation, tronçonnée en briques indépendantes : parser, symbol, compilo, link, jit, ...

    Ca évitera que tout le monde réécrive son propre parser C#. Ca peut aussi permettre a toutes les applications de générer, analyser, compiler ou executer du code C# : par exemple on pourra utiliser C# comme langage de script, chaque application se chargeant de parser/verifier le code (pour éviter les codes malveillants) puis de le compiler/executer. Tout ca avec la même API fournie par l'OS pour plus d'interopérabilité.
  • tomlev
    Rédacteur/Modérateur
    Envoyé par Rocket06
    Honnêtement, cela ne semble pas intéresser grand monde...
    Plus que ton commentaire, si l'on en croit les votes

    C'est très intéressant, mais je pense surtout qu'il n'y a pas grand monde qui ait vraiment compris de quoi il s'agit, d'où le peu de réactions...

    Le truc, c'est qu'en pratique Roslyn ne sera probablement pas directement utile à la plupart des développeurs : c'est surtout intéressant pour créer des outils qui manipulent du code (genre ReSharper, CodeRush et autres outils de refactoring), pas vraiment pour développer des applications.

    EDIT: @Idelways, y a un truc que j'ai pas compris : c'est quoi le rapport avec le cloud au juste ?
  • zeavan
    Membre éclairé
    J'ai cru comprendre que dans .net 5.0 nous pourrons avoir acces au compiler lui meme, je pense que c'est egalement pour s'aligner avec la prochaine version.
  • tomlev
    Rédacteur/Modérateur
    Envoyé par zeavan
    J'ai cru comprendre que dans .net 5.0 nous pourrons avoir acces au compiler lui meme, je pense que c'est egalement pour s'aligner avec la prochaine version.
    Dans .NET 4.5 en fait (C# 5)
    Et oui, on pourra accéder au compilateur via des API, c'est justement le but de Roslyn
  • ParseCoder
    Membre averti
    Envoyé par tomlev
    EDIT: @Idelways, y a un truc que j'ai pas compris : c'est quoi le rapport avec le cloud au juste ?
    Effectivement je ne vois pas non plus.

    L'utilité de Roslyn c'est aussi :
    - la méta-programmation
    - la vérification de la conformité d'un code fonctionnel

    Bref, ça intéressera plutôt des gens qui créent des frameworks, DSLs, ... etc

    J'ai hâte de voir la tête de l'API !
  • tomlev
    Rédacteur/Modérateur
    Envoyé par ParseCoder
    J'ai hâte de voir la tête de l'API !
    On en a déjà un petit aperçu dans la présentation d'Anders Hejlsberg... Et de toutes façons tu peux tester la Preview de VS 11
  • Idelways
    Expert éminent sénior
    Bonjour,

    Le rapport avec le Cloud est que la compilation de Roslyn et la génération des rapports avancées sur le processus de compilation s'effectuent au niveau les serveurs Cloud de Microsoft, et non pas directement dans Visual Studio.

    Cordialement
    Idelways
  • tomlev
    Rédacteur/Modérateur
    Envoyé par Idelways
    Le rapport avec le Cloud est que la compilation de Roslyn et la génération des rapports avancées sur le processus de compilation s'effectuent au niveau les serveurs Cloud de Microsoft, et non pas directement dans Visual Studio.
    Euh... what ?

    Ca m'étonnerait beaucoup... ça voudrait dire que tu dois envoyer ton code sur le net pour le compiler ? Et si tu n'as pas accès à Internet, comme c'est le cas dans certaines boites (dans secteur de la défense par exemple) ?

    A mon avis c'est le terme "Compiler as a Service" qui a introduit une confusion. Cet article fait la même erreur dans son titre. "As a service", ça veut pas forcément dire dans le cloud... à moins que j'ai rien compris, Roslyn n'a absolument aucun rapport avec le cloud.