Microsoft publie en open source .NET CoreCLR avec son code source
Le moteur d'exécution de la déclinaison open source de .NET disponible sur GitHub
Le 2015-02-04 11:04:06, par Hinault Romaric, Responsable .NET
Dans le cadre de son initiative visant à mettre à la disposition des développeurs une version open source du Framework .NET, Microsoft vient de publier sur la plateforme de gestion des projets open source GitHub, le code source de .NET CoreCLR (Common Language Runtime).
.NET CoreCLR est le moteur d’exécution open source du Framework .NET dans Net Core. Il peut être comparé à la machine virtuelle Java par rapport au rôle qu’il joue. Lorsqu’une application .NET ASP.NET 5 est exécutée, par exemple, au-dessus de .NET Core, c’est CoreCLR qui est responsable de l’exécution du code de l’application, en plus des bibliothèques CoreFX/BCL.
Ce moteur d’exécution fournit des fonctionnalités comme le garbage collector (ramasse-miettes), le compilateur RyuJIT (nouveau compilateur JIT de Microsoft, permettant une amélioration de près de 30% des performances des applications lors du démarrage), native interop et de nombreux autres composants d’exécution pour .NET.
.NET CoreCLR comprend près de 2,6 millions de lignes de code écrites en utilisant une combinaison des langages C# et C++, dont 320 000 lignes de code pour le compilateur just-in-time et 55 000 lignes pour le garbage collector.
Le processus de build du code de CoreCLR est basé sur CMake (moteur de compilation multiplate-forme open source). Microsoft a opté pour CMake parce qu’il est disponible à la fois sur Linux, Windows et Mac.
Pour l’instant, CoreCLR fonctionne uniquement sous Windows. Microsoft prévoit de publier des versions pour Linux et Mac dans les prochains mois. La firme de Redmond veut permettre aux développeurs de profiter de son « voyage multiplateforme dès le départ. »
CoreCLR vient rejoindre Corefx qui avait été publié sur GitHub par Microsoft en fin novembre. Corefx contient les classes de base pour .NET Core. Il est construit entièrement en C#. Le programme contient actuellement environ 500 000 lignes de code, ce qui représente seulement 25% de sa taille finale.
Pour rappel, .NET Core représente le cœur du Framework .NET. La solution est disponible en open source et est en cours de développement par Microsoft en collaboration avec des développeurs externes, qui ont déjà contribué à environ 48% du projet.
Pour l’instant, .NET Core supporte uniquement deux types de projets : les projets ASP.NET 5.0 et les projets Windows Store. Le développement d’applications desktop avec WPF ou Windows Forms n’est pas supporté.
Source : Microsoft
.NET CoreCLR est le moteur d’exécution open source du Framework .NET dans Net Core. Il peut être comparé à la machine virtuelle Java par rapport au rôle qu’il joue. Lorsqu’une application .NET ASP.NET 5 est exécutée, par exemple, au-dessus de .NET Core, c’est CoreCLR qui est responsable de l’exécution du code de l’application, en plus des bibliothèques CoreFX/BCL.
Ce moteur d’exécution fournit des fonctionnalités comme le garbage collector (ramasse-miettes), le compilateur RyuJIT (nouveau compilateur JIT de Microsoft, permettant une amélioration de près de 30% des performances des applications lors du démarrage), native interop et de nombreux autres composants d’exécution pour .NET.
.NET CoreCLR comprend près de 2,6 millions de lignes de code écrites en utilisant une combinaison des langages C# et C++, dont 320 000 lignes de code pour le compilateur just-in-time et 55 000 lignes pour le garbage collector.
Le processus de build du code de CoreCLR est basé sur CMake (moteur de compilation multiplate-forme open source). Microsoft a opté pour CMake parce qu’il est disponible à la fois sur Linux, Windows et Mac.
Pour l’instant, CoreCLR fonctionne uniquement sous Windows. Microsoft prévoit de publier des versions pour Linux et Mac dans les prochains mois. La firme de Redmond veut permettre aux développeurs de profiter de son « voyage multiplateforme dès le départ. »
CoreCLR vient rejoindre Corefx qui avait été publié sur GitHub par Microsoft en fin novembre. Corefx contient les classes de base pour .NET Core. Il est construit entièrement en C#. Le programme contient actuellement environ 500 000 lignes de code, ce qui représente seulement 25% de sa taille finale.
Pour rappel, .NET Core représente le cœur du Framework .NET. La solution est disponible en open source et est en cours de développement par Microsoft en collaboration avec des développeurs externes, qui ont déjà contribué à environ 48% du projet.
Pour l’instant, .NET Core supporte uniquement deux types de projets : les projets ASP.NET 5.0 et les projets Windows Store. Le développement d’applications desktop avec WPF ou Windows Forms n’est pas supporté.
Source : Microsoft
-
tomlevRédacteur/ModérateurDe quelle syntaxe parles-tu ? Cet article ne parle pas des langages, mais de la plateforme .NET
Il y a toutes sortes de langages basés sur .NET, avec des syntaxes très différentes (C#, VB.NET, F#, C++/CLI, Nemerle...). Après, on peut aimer ou non la syntaxe de ces langages, mais C# par exemple a des qualités largement reconnues, et de nombreux langages récents s'en inspirent (Swift, ECMAScript...)
Au passage, la syntaxe de ces langages ne sort pas de nulle part. Celle de C# est largement inspiré de Java et de C++, F# a une syntaxe presque identique à OCaml, etc. Donc je ne vois pas trop en quoi ils ont une syntaxe "a la M$" (sic).
Bref, renseigne-toi un minimum avant de troller gratuitementle 20/11/2015 à 0:25 -
youtpout978Expert confirméle 04/05/2015 à 9:32
-
Bono_BXMembre confirméQui sera tellement barbare qu'elle sera reprise plus tard par les pro / sectaire de l'open source en arguant que c'est tout nouveau et que c'est eux qui ont tout inventé, comme d'habitude ... (voir HTML 5)
Et sinon, tu peux argumenter STP ?le 19/11/2015 à 23:22 -
tomlevRédacteur/ModérateurJe comprends pas très bien ta réaction... Tu réagis comme si c'était le premier "gros" truc que MS rendait open-source... Pourtant depuis quelque temps ça n'arrête pas, et les "autres biblios" sont déjà là :
- .NET Core
- .NET Framework (n'accepte pas de contributions, mais sous licence MIT, donc en gros tu en fais ce que tu veux)
- .NET Compiler Platform ("Roslyn"
- ASP.NET 5
- ASP.NET MVC
- Entity Framework
- SignalR
- F#
- TypeScript
- CodeContracts
- Unity (le conteneur IoC, pas le moteur 3D...)
Bref, je m'arrête là parce qu'il y en a trop... CoreCLR est juste un pas de plus dans la même direction.
(EDIT: ajouté quelques frameworks importants que j'avais oubliés...)le 04/02/2015 à 20:39 -
tomlevRédacteur/ModérateurAu début le projet .NET Core ne contenait effectivement que ça et quelques autres trucs, mais c'est juste parce qu'ils n'avaient pas encore mis le reste. D'ailleurs il n'y a pas encore tout, ils en sont à environ 25% de ce qu'il y aura au final.
C'est clair que le premier site referencesource était assez pourri et ne servait pas à grand chose... Après ils ont mis un truc mieux (toujours accessible ici) qui permet une navigation facile dans le code.
Comment ça ? mscorlib est bien inclus dedans. Et de quelle nouvelle annonce parles-tu ? Celle d'aujourd'hui concerne CoreCLR, le runtime pour .NET Core.
Sinon c'est vrai qu'il manque quelques trucs sur Github, notamment WPF qui est pourtant visible sur referencesource.microsoft.com. Je sais pas trop pourquoi il l'ont pas inclus.
Pour Roslyn, ils en ont publié la plus grande partie il y a un bon moment déjà. Il manquait certaines parties au début, mais entre temps ils ont ajouté ce qu'il manquait. Maintenant n'importe qui peut cloner le repo et ajouter ses propres features expérimentales à C# ou VB.NET.
Ca devient pourtant de plus en plus difficile... la plupart des libs, frameworks, etc liés de près ou de loin à .NET sont maintenant dispo.
Enfin bref, je te trouve un peu sévère quand même... en moins d'un an, ils ont rendu open-source des millions de lignes de code dont personne ne pensait voir la couleur un jour. Tu veux quoi de plus ? Le code de Windows, d'Office... ? Vu que c'est les plus grosses vaches à lait de MS, ça m'étonnerait que ça arrive un jour... il faut bien gagner de quoi vivre aussi
Pour ce qui est de la communication, c'est vrai que ça a pas toujours été très clair, mais ils jouent de plus en plus sur la transparence. Par exemple les comptes-rendus des Language Design Meetings sont rendus publics aussitôt après, et ils se mettent même à diffuser des vidéos de réunions internes. On peut aussi venir discuter les features de la prochaine version de C# avec l'équipe sur Github. Bref, à condition d'essayer de suivre un peu ce qui se passe (pas évident parce qu'il se passe beaucoup de choses), la communication de Microsoft envers les développeurs n'a jamais été aussi bonne, à mon sens en tous cas...le 04/02/2015 à 23:56 -
tomlevRédacteur/ModérateurLicence MIT
https://github.com/dotnet/coreclr/bl...er/LICENSE.TXT
Ce n'est pas une hypothèse, c'est un fait. Regarde sur la page d'accueil du repo Github :le 05/02/2015 à 16:24 -
Mat.MExpert éminent séniorfaut toujours qu'il y ait des gens qui râlent et qui soient pas contents...pour une multinationale comme Microsoft décider de publier du code source ça ne se fait pas d'un claquement de doigts...là c'est accéder à de la propriété intellectuelle pour faire plaisir à tout le monde
+1
c'est certain qu'on s'attendrait à mieux de la part de l'éditeur qui pourtant commercialise de très bons outils comme Visual Studio.
Ou alors c'est qu'ils n'ont pas eu le temps de mettre le code source au propre..le 06/02/2015 à 15:29 -
AesonNouveau Candidat au ClubIls n'y vont pas a moitier quand ils changent chez Microsoft.
Qui aurait pensé un jour voir Microsoft collaborer avec Google sur un projet OpenSource ?? (Angular 2).
Voir une presentation d'un produit openSource faites par des dev de Microsoft et Google en meme temp
Je suis impatient de faire tourner des app en .Net Core sur W2016 / Azure Stack....
C'est pas demain que je changerais de technos en tous cas.le 19/11/2015 à 16:01 -
LutarezMembre chevronnéA noter également que le compilateur AOT (.Net Native) est lui aussi devenu un projet open-source depuis hier
Source : Twitterle 19/11/2015 à 20:54 -
Bono_BXMembre confirméTa question est un peu vague. Comme nous sommes sur un article .Net, je pars du postulat que tu parles d'environnements .Net.
- Développement : oui, mais ça va être très limité car le seul IDE open source actuel avec .Net Core est Visual Studio Core. Comme son nom l'indique, tu as vraiment juste un ... Core. C'est un éditeur de code très avancé, mais on est bien loin de Visual Studio sous Windows. De plus, pour le moment .Net Core n'implémente pas l'intégralité du framework .Net, donc selon tes besoins, tu ne pourras pas y recourir ; mais c'est en cour de portage complet.
- Production : encore une fois, le principale problème vient de tes besoins : si tu utilises des fonctionnalités non implémentées dans .Net Core, tu seras bloqué. Un autre souci est l'hébergement, car pour du Web, il n'y a que IIS pour le moment.
Il ne faut pas oublier que le virage open source de .Net est récent (je mets à part Xamarin, qui n'est pas le sujet de l'article), et que les choses évoluent très vite. Donc pour te répondre je dirai que non, ce n'est pour l'instant pas possible, mais il est évident que cela va le devenir car Microsoft en a la volonté ... et les moyens, aussi bien en termes techniques qu'en termes de compétence.le 10/12/2015 à 17:54