Microsoft publiera en grande partie le code source du .NET Framework avec la sortie de Visual Studio 2008


Aujourd'hui, nous annonçons que nous publierons sous licence Shared Source "Microsoft Reference Licence" une grande partie des codes sources des composants et technologies qui constituent le .NET Framework.


Dans un premier temps, l'ensemble de classes et des bibliothèques qui sera couvert par cette publication de leur code source comprendra les bibliothèques de base (la BCL, aka Base Classe Library, qui regroupe par exemple les namespaces System, IO, Text, Collections, CodeDom, Remoting, etc...) ainsi que ASP.NET, Windows Forms et WPF (aka Windows Presentation Foundation). D'autres parties constitutives du .NET Framework seront ajoutées avec le temps.


Pour les développeurs, cela signifie d'une part qu'il sera possible d'étudier le fonctionnement des composants de base du .NET Framework, et que d'autre part, il sera possible d'utiliser ces codes sources au sein des outils de debugging intégrés à Visual Studio 2008.


Il sera donc possible d'installer ces codes sources localement sur les machines de développement pour les étudier et naviguer d'un code à l'autre, et d'autre part, il sera possible de configurer Visual Studio 2008 de façon à ce qu'il rappatrie les codes sources et fichiers de symboles (.PDB) nécessaires au sein des sessions de Debug.


Vous pouvez retrouver cette annonce sur le blog de Scott Guthrie, ainsi qu'une interview publiée sur Channel9 qui présente les différents aspects et détails liés à cette annonce.


On dirait que Shawn Burke est finalement parvenu à faire entendre sa voix 😉


[Edit 05/10/2007] : Miguel de Icaza a posté un billet dans lequel il commente cette annonce. Son billet comporte un paragraphe de "spéculations" personnelles.


A mon tour, non pas de faire des spéculations, mais de prononcer mes rêves à voix haute : Je veux croire que la publication de ces codes sources sous licence Microsoft Reference Licence soient un premier pas vers un accord de droit d'utilisation de notre propriété intellectuelle par les contributeurs du projet Mono. Clairement, c'est complètement utopique, et sans doute ingérable au niveau juridique avec ces imbrications et implications entre les différentes licences en présences qui ne sont pas toutes mutuellement solubles.


En même temps, c'est pourtant déjà bien le cas avec IronPython et le DLR, non ? Alors pourquoi n'étendrions nous pas ceci à tout le .NET Framework ?


Dernier commentaire personnel : Si vous ne l'aviez pas remarqué, ou si vous avez passé les 12, 24 ou 36 derniers mois dans une grotte, sachez qu'il se passe des choses en profondeur chez nous. Microsoft change... I luv this c0mpany 😉

Comments (18)

  1. Arnaud Weil says:

    C’est tout bonnement hallucinant. Bien sûr, ce sera génial de pouvoir aller dans le code du Framework .NET.

    A première vue, ça paraît un peu bête de publier les sources d’ASP.NET qui n’a pas de concurrent viable sur le marché.

    Mais je crois deviner la raison derrière: Microsoft essaie peut-être de montrer patte blanche pour éviter de futurs procès antitrust comme celui qu’il a récemment perdu en appel face à l’Union Européenne.

  2. CLaueR says:

    @Arnaud : Ce que les procès anti-trust et autres commissions Européenne surveillent, c’est les cas d’Abus de position dominante.

    La position dominante sur un marché n’est pas punissable, fort logiquement, sur un marché donné, une entreprise ou un fournisseur se retrouve plus fort que ses concurrents et il prend donc une position dominante. Rien de critiquable ou punissable à ce niveau, tant que cette position est acquise de façon honnête et loyale.

    La taille d’une entreprise est une inconnue qui est déterminée par le marché. C’est le modèle libéral qui fonctionne ainsi.

    Tout ça pour dire que dans ma compréhension, la publication du code source n’a aucun rapport avec les procédures pour Abus de position dominante. Et ce n’est certainement pas une des motivations de ces publications que de penser que ça permettrait d’éviter de quelconques procédures en justice.

    C’était mes 2 centimes d’Euro sur la question…

  3. Florian says:

    Effectivement… pour être du lourd ! On ne peut que se réjouir d’une telle nouvelle ! Mais finalement quelle partie du code source ne sera pas publique ?

    Bravo à tous ceux qui se sont "battus" pour ça parce que j’imagine que ça n’a pas été chose facile…

  4. Petite question naïve :

    Qu’est-ce que ça apporte de plus par rapport à Reflector et un add-in genre FileDisasembler ?

  5. CLaueR says:

    @Matthieu : La différence ? Ben tu auras les vrais noms des variables locales, ça aide généralement bien à la compréhension.

    Ensuite, tu pourras faire du debug en descendant jusqu’au niveau du framework et voir ce qui se passe dans les internes. Bien entendu impossible avec Reflector.

  6. Mathieu says:

    @MatthieuMEZIL

    Ca apporte aussi la légalité…

  7. "Bien entendu impossible avec Reflector."

    Je ne suis pas d’accord. Rien ne t’empêche de te recréer le projet avec l’add-in FileDisasembler et ensuite référencé ton projet plutôt que la dll du framework. C’est assez pénible, surtout qu’en général, il faut bidouiller un peu pour que ça compile mais ça marche.

  8. CLaueR says:

    @Matthieu :

    Reflector : Oui, mais il faut être franchement motivé. Et puis il manque des choses avec le FileDisassembler, c’est pas très direct comme manip.

    Légalité : Oui et non, tout dépend de ta géographie. Dans certains pays, il est en effet légal de faire du Reverse Engineering (ou désassemblage) afin de comprendre le fonctionnement d’un logiciel. Mais c’et vrai que la question ne se pose plus maintenant 😉

  9. "Reflector : Oui, mais il faut être franchement motivé. Et puis il manque des choses avec le FileDisassembler, c’est pas très direct comme manip."

    C’est vrai qu’il faut être motivé et qu’il faut pas mal bidouiller pour arriver à un projet qui compile.

    Donc c’est sûr qu’avec les sources c’est quand même vachement plus simple, à la portée de tout le monde et en plus, aucun risque que les "bidouilles" apportées ne génère des bugs.

    Donc au final, même si je n’avais pas forcément perçu l’importance de la chose au tout début, je pense que c’est une très bonne chose.

    Par contre, autant il est intéressant de déboguer avec les sources du Framework, autant je déconseillerais vivement de modifier ces dernières et d’utiliser les assemblies ainsi modifiées dans les applications. Cela pose en effet deux problèmes très important : les effets de bord potentiels et la conservation des modifs avec les futurs versions du framework.

  10. Lotfi says:

    Est-ce que les commentaires seronts inclus avec le source?

  11. CLaueR says:

    @Lofti : C’est la grande question qu’on se pose en interne…

    Je sais que les rares privilégiés qui ont accès au code source de Windows ont accès à ces commentaires.

    En revanche, par le passé, on a souvent "strippé" les commentaires des codes sources qu’on publie. Non pas parce qu’ils contiennent des secrets à protéger, mais juste parce que souvent, ils sont écrits par des développeurs de Microsoft et destinés à être lus par des développeurs de Microsoft. Et que pour des yeux externes, ça pourrait faire mauvais genre 😉

    J’me comprends 😉

    http://www.kuro5hin.org/story/2004/2/15/71552/7795  par exemple …

  12. Arnaud Weil says:

    @Matthieu: Autre intérêt par rapport à Reflector: on aura les commentaires. Parce que lire du code sans commentaires, c’est plutôt difficile!

  13. Olivier says:

    Une très bonne nouvelle –  

    Nombre de fois il est utile d’avoir les sources pour comprendre comment c’est fait derrière, ça peut réellement aider au développement.

    On ne peut que se réjouir d’une telle annonce.

  14. L’annonce avait été faite par Scot Guthrie il y a un peu plus de deux mois maintenant, et relayée ici

Skip to main content