2009-08-24 7 views
37

La question que je voulais toujours demander et avait peur de, en fait - quelle langue est .NET Framework écrit? Je veux dire la bibliothèque elle-même.
Il me semble que c'était surtout C et C++. (J'espère que Jon Skeet lit celui-ci, il sera très intéressant d'entendre ce qu'il en pense.)Dans quelle langue est écrit .NET Framework?

+1

Télécharger la source et découvrez: http://referencesource.microsoft.com/netframework.aspx –

+0

@michielvoo votre lien est mort, mis à jour serait apprécié. – Aelphaeis

+4

@Aelphaeis Il est maintenant juste http://referencesource.microsoft.com –

Répondre

50

La CLI/CLR est écrite en C/C++ et assemblée. Presque toutes les classes de framework .NET sont écrites en C#> compilées en IL, qui s'exécute dans le CLR. Si vous ouvrez une bibliothèque de framework dans Reflector, class, vous pouvez voir un attribut tel que [MethodImpl (MethodImplOptions.InternalCall)] qui délègue l'appel à la CLI.

+9

S'il vous plaît noter que cela ne s'applique qu'à Microsoft .NET. D'autres implémentations de la CLI peuvent être architecturées différemment. Par exemple, dans Mono, beaucoup de choses écrites en C/C++ dans Microsoft.NET sont écrites en C# dans Mono. En outre, il existe des implémentations métacirculaires, à la fois par Microsoft Research et d'autres organisations, qui sont écrites * entièrement * en C#. –

+0

Jörg W Mittag - Merci, je ne le savais pas. Devra jeter un coup d'oeil aux implémentations C#. –

+0

Ceci est essentiellement indiqué dans [Histoire de StyleCop] (https://stylecop.codeplex.com/wikipage?title = A% 20Brief% 20History% 20of% 20CSharp% 20Style), si quelqu'un veut une référence citée. –

3

Certaines parties de .NET Framework sont open-source, comme ASP.NET MVC, et il est écrit en C#.

Étant donné que .NET Framework représente de nombreux assemblys, je suppose que différentes bibliothèques sont écrites dans des langues différentes. Tant que le langage est compatible CLR, il peut être utilisé pour construire des parties du framework.

Tout est dit, cependant; Je suppose que la part du .NET Framework est écrite en C++ et C#.

5

.NET a été entièrement écrit en C et C++ car la base était en langage assembleur. L'intégration de l'assemblage avec C est beaucoup plus facile par rapport aux langages plus récents.

3

Microsoft .NET Framework est divisé en plusieurs segments.

CLR: C++

IO/Traitement du signal: Assemblée

BaseClass Bibliothèque: C#

System.Threading: C#

Structure de données complexes: C++

Exemple: GetHashCode

Questions connexes