Es una plataforma/framework de desarrollo para construir y
ejecutar aplicaciones. Si bien es una plataforma, también es una tecnología porque provee la infraestructura para construir, compilar y gestionar aplicaciones. Que es un Framework?
Un framework es una componente de software, que provee
funcionalidad genérica con el objetivo de permitirle al desarrollador escribir software que cumpla con un propósito en particular. Arquitectura Interna de .NET Base Class Library (BCL)
.NET provee un conjunto de librerías base que son accesibles por
todos los lenguajes de programación soportados por el framework (C#, F#, Visual Basic, C++, entre otros). Common Language Runtime (CLR)
El Common Language Runtime (CLR), como su nombre lo indica,
es un runtime que puede ser utilizado por distintos lenguajes de programación. Las funcionalidades que el CLR provee (manejo de memoria, de excepciones, sincronización de threads, seguridad y demás) son accesibles por cualquier lenguaje que le sea compatible. Assembly El CLR no ejecuta directamente archivos o módulos, sino que trabaja con lo que se conoce como assembly. Un assembly no es más que un archivo ejecutable, de extensión .exe, o un archivo con definiciones de tipos y funcionalidad, con extensión .dll. Que hay dentro de un Assembly? ¿Cómo se ejecuta? Como se describió anteriormente, cuando programamos en el .NET Framework lo hacemos apuntando al CLR, el runtime de la plataforma. El compilador del lenguaje que estamos utilizando compila nuestro código y lo agrupa en assemblies que contienen IL (lenguaje intermedio) y metadata. Para ejecutar un método el lenguaje intermedio debe ser compilado a instrucciones de máquina, esto se debe a que el mismo es agnóstico a la plataforma en la que se ejecuta nuestro código, por lo que debe compilarse teniendo en cuenta la arquitectura particular de nuestra CPU. Ejecucion: