La domanda che ho sempre voluto porre e ho avuto paura, in realtà - in che lingua è scritto .NET Framework? Intendo la biblioteca stessa.
Mi sembra che sia principalmente C e C++. (Spero che Jon Skeet stia leggendo questo, sarà molto interessante sentire cosa ne pensa)In quale lingua è scritto .NET Framework?
risposta
CLI/CLR è scritto in C/C++ e assemblato. Quasi tutte le classi del framework .NET sono scritte in C#> compilate in IL, che viene eseguito nel CLR. Se apri una libreria framework in Reflector, classe, potresti vedere un attributo come [MethodImpl (MethodImplOptions.InternalCall)] che delega la chiamata alla CLI.
Si noti che questo si applica solo a Microsoft .NET. Altre implementazioni della CLI possono essere progettate in modo diverso. Ad esempio, in Mono molte delle cose scritte in C/C++ in Microsoft.NET sono in realtà scritte in C# in Mono. Inoltre, esistono implementazioni metacircolari, sia di Microsoft Research che di altre organizzazioni, che sono scritte * interamente * in C#. –
Jörg W Mittag - Grazie, non lo sapevo. Dovrà dare un'occhiata alle implementazioni C#. –
Questo è fondamentalmente affermato in [Storia di StyleCop] (https://stylecop.codeplex.com/wikipage?title = A% 20Brief% 20History% 20of% 20CSharp% 20Style), se qualcuno vuole un riferimento citato. –
Ci sono parti di .NET Framework che sono open-source, come ASP.NET MVC, ed è scritto in C#.
Poiché .NET Framework rappresenta molti assiemi, presumo che diverse librerie siano scritte in lingue diverse. Finché la lingua è compatibile con CLR, può essere utilizzata per creare parti del framework.
Tutto detto, però; Immagino che la parte del leone di .NET Framework sia scritta in C++ e C#.
.NET era completamente scritto in C e C++ perché la base era in linguaggio assembly. L'integrazione dell'assemblaggio con C è molto più semplice rispetto alle lingue più recenti.
Microsoft .NET Framework è diviso in molti segmenti.
CLR: C++
IO/Signal Processing: Assemblea
BaseClass Biblioteca: C#
System.Threading: C#
complessa struttura dati: C++
Esempio: GetHashCode
CLR/Compilatori - Visual C++
BaseClass Biblioteca - Semplice Managed C (SMC)
http://blogs.msdn.com/b/jasonz/archive/2007/11/23/couple-of-historical-facts.aspx
Da quell'articolo: "In realtà abbiamo scritto il BCL originale in SMC: è stato un atto di fede convertire in C#". Quindi .NET Framework BCL è in realtà C# – Suamere
Scarica la fonte e scoprire: http://referencesource.microsoft.com/netframework.aspx –
@michielvoo il tuo link è morto, aggiornato sarebbe apprezzato. – Aelphaeis
@Aelphaeis Ora è solo http://referencesource.microsoft.com –