¿Cuál es la diferencia entre C# y .NET?

Resuelto Bopha asked hace 14 años • 11 respuestas

¿Puedo saber cuál es la diferencia entre C# y .NET? Cuando pienso en C#, inmediatamente diría que es un lenguaje .NET, pero cuando busco puestos de trabajo, requieren que los candidatos tengan experiencia en C# y .NET. ¿Alguien puede darme una explicación?

Bopha avatar Apr 28 '10 03:04 Bopha
Aceptado

C# es un lenguaje de programación, .NET es un término general que tiende a cubrir tanto .NET Framework (una biblioteca de marco de aplicaciones) como Common Language Runtime, que es el tiempo de ejecución en el que se ejecutan los ensamblados .NET.

La implementación de C# por parte de Microsoft está fuertemente integrada con .NET Framework, por lo que es comprensible que los dos conceptos se confundan. Sin embargo es importante entender que son dos cosas muy diferentes.

Aquí hay una clase escrita en C#:

class Example { }

Aquí hay una clase escrita en C# que utiliza explícitamente un ensamblado, tipo y método de .NET Framework:

class Example
{
    static void Main()
    {
        // Here we call into the .NET framework to 
        // write to the output console
        System.Console.Write("hello, world");
    }
}

Como mencioné antes, es muy difícil usar la implementación de C# de Microsoft sin usar también el marco .NET. Mi primera Exampleimplementación anterior incluso usa el marco .NET (implícitamente, sí, pero de todos modos lo usa) porque Examplehereda de System.Object.

Además, la razón por la que uso la frase implementación de C# de Microsoft es porque hay otras implementaciones de C# disponibles .

Andrew Hare avatar Apr 27 '2010 20:04 Andrew Hare

Además de la respuesta de Andrew , vale la pena señalar que:

  • .NET no es sólo una biblioteca , sino también un tiempo de ejecución para ejecutar aplicaciones.
  • El conocimiento de C# implica algún conocimiento de .NET (porque el modelo de objetos de C# corresponde al modelo de objetos de .NET y puedes hacer algo interesante en C# simplemente usando bibliotecas .NET). Lo contrario no es necesariamente cierto, ya que se pueden utilizar otros lenguajes para escribir aplicaciones .NET.

La distinción entre un lenguaje , un tiempo de ejecución y una biblioteca es más estricta en .NET/C# que, por ejemplo, en C++, donde la especificación del lenguaje también incluye algunas funciones básicas de la biblioteca. La especificación de C# dice sólo muy poco sobre el entorno (básicamente, que debería contener algunos tipos como int, pero eso es más o menos todo).

Tomas Petricek avatar Apr 27 '2010 20:04 Tomas Petricek