2009-08-24 12 views
37

Die Frage, die ich immer fragen wollte und hatte Angst, eigentlich - in welcher Sprache ist .NET Framework geschrieben? Ich meine Bibliothek selbst.
Es scheint mir, dass es meistens C und C++ war. (Ich hoffe Jon Skeet liest dieses, es wird sehr interessant zu hören, was er darüber denkt)In welcher Sprache ist .NET Framework geschrieben?

+1

die Quelle herunterladen und finden Sie heraus: http://referencesource.microsoft.com/netframework.aspx –

+0

@michielvoo Ihr Link gestorben, aktualisiert würde geschätzt werden. – Aelphaeis

+4

@Aelphaeis Es ist jetzt nur http://referencesource.microsoft.com –

Antwort

50

Die CLI/CLR ist in C/C++ und Assembly geschrieben. Fast alle .NET-Framework-Klassen werden in C# geschrieben> nach IL kompiliert, das in der CLR ausgeführt wird. Wenn Sie eine Framework-Bibliothek in der Klasse Reflector öffnen, sehen Sie möglicherweise ein Attribut wie [MethodImpl (MethodImplOptions.InternalCall)], das den Aufruf an die CLI delegiert.

+9

Bitte beachten Sie, dass dies nur für Microsoft .NET gilt. Andere Implementierungen des CLI können unterschiedlich aufgebaut sein. Zum Beispiel in Mono wird eine Menge der Dinge, die in C/C++ in Microsoft.NET geschrieben sind, tatsächlich in C# in Mono geschrieben. Außerdem gibt es metakristalline Implementierungen, die sowohl von Microsoft Research als auch von anderen Organisationen * vollständig * in C# geschrieben wurden. –

+0

Jörg W Mittag - Danke, das wusste ich nicht. Wir müssen uns die C# -Implementierungen ansehen. –

+0

Dies wird grundsätzlich in [StyleCop's Geschichte] (https://stylecop.codeplex.com/wikipage?Titel = A% 20Brief% 20Geschichte% 20von% 20CSharp% 20Style), wenn jemand eine Referenz zitieren möchte. –

3

Es gibt Teile des .NET Framework, die Open-Source sind, wie ASP.NET MVC, und es ist in C# geschrieben.

Da das .NET Framework viele Assemblies darstellt, würde ich davon ausgehen, dass verschiedene Bibliotheken in verschiedenen Sprachen geschrieben sind. Solange die Sprache CLR-konform ist, kann sie zum Erstellen von Teilen des Frameworks verwendet werden.

Alle gesagt, obwohl; Ich würde annehmen, dass der Löwenanteil von .NET Framework in C++ und C# geschrieben ist.

5

.NET wurde vollständig in C und C++ geschrieben, da die Basis in Assemblersprache war. Die Integration von Assembly mit C ist im Vergleich zu neueren Sprachen viel einfacher.

3

Microsoft .NET Framework ist in viele Segmente unterteilt.

CLR: C++

IO/Signalverarbeitung: Montage

Basisklasse Bibliothek: C#

System.Threading: C#

Komplexe Strukturdaten: C++

Beispiel: GetHashCode

Verwandte Themen