2009-08-24 16 views
37

La pregunta que siempre quise hacer y que le tenía miedo, de hecho, ¿en qué idioma está escrito .NET Framework? Me refiero a la biblioteca en sí.
Me parece que fue C y C++ en su mayoría. (Espero que Jon Skeet esté leyendo esto, será muy interesante escuchar lo que piensa al respecto)¿En qué idioma está escrito .NET Framework?

+1

Descargar la fuente y descubra: http://referencesource.microsoft.com/netframework.aspx –

+0

@michielvoo su enlace murió, actualizado sería apreciado. – Aelphaeis

+4

@Aelphaeis Ahora es solo http://referencesource.microsoft.com –

Respuesta

50

La CLI/CLR está escrita en C/C++ y ensamblada. Casi todas las clases de framework .NET están escritas en C#> compiladas en IL, que se ejecuta en el CLR. Si abre una biblioteca de marcos en Reflector, clase, puede ver un atributo como [MethodImpl (MethodImplOptions.InternalCall)] que delega la llamada a la CLI.

+9

Tenga en cuenta que esto solo se aplica a Microsoft .NET. Otras implementaciones de la CLI se pueden diseñar de forma diferente. Por ejemplo, en Mono muchas de las cosas que están escritas en C/C++ en Microsoft.NET están escritas en C# en Mono. Además, hay implementaciones metacirculares, tanto de Microsoft Research como de otras organizaciones, que están escritas * completamente * en C#. –

+0

Jörg W Mittag - Gracias, no lo sabía. Tendremos que echar un vistazo a las implementaciones de C#. –

+0

Esto se establece básicamente en [Historial de StyleCop] (https://stylecop.codeplex.com/wikipage?title = A% 20Brief% 20History% 20of% 20CSharp% 20Style), si alguien quiere una referencia citada. –

3

Existen partes de .NET Framework que son de código abierto, como ASP.NET MVC, y es escrito en C#.

Dado que .NET Framework representa muchos ensamblajes, supongo que las diferentes bibliotecas están escritas en diferentes idiomas. Siempre que el lenguaje sea CLR-obediente, se puede utilizar para construir partes del marco.

Todo dicho, sin embargo; Asumo que la mayor parte del .NET Framework está escrito en C++ y C#.

5

.NET fue escrito completamente en C y C++ porque la base estaba en lenguaje ensamblador. La integración del ensamblado con C es mucho más fácil en comparación con los idiomas más nuevos.

3

Microsoft .NET Framework está dividido en muchos segmentos.

CLR: C++

IO/Procesamiento de Señales: Asamblea

BaseClass Biblioteca: C#

System.Threading: C#

Complejo Estructura de Datos: C++

Ejemplo: GetHashCode

Cuestiones relacionadas