C # es un lenguaje compilado. Esto significa que cuando un desarrollador crea archivos fuente C #, esos archivos deben compilarse antes de que puedan ejecutarse. No puede escribir un archivo C # y luego ejecutar ese archivo o combinación de archivos como puede hacerlo con un archivo JavaScript o PHP. Aquí es donde entran en juego los ensamblados para un lenguaje compilado. Los archivos de ensamblaje son el resultado de la lectura del compilador de C # en archivos fuente de C # legibles por humanos y luego produce un archivo que la aplicación puede usar. De hecho, un programa en C # a menudo constará de muchos archivos de ensamblaje trabajando juntos.


Compilación del archivo de origen AC #

En realidad, no necesita un IDE elegante para escribir y compilar un programa C #. Por supuesto, es muchas veces más fácil ya que algo como Visual Studio hará mucho del trabajo pesado por usted. Veamos cómo usar el compilador de C # directamente desde la línea de comandos usando el programa csc.exe .
compilador c sharp csc

En la línea de comando, podemos usar notepad.exe para crear un archivo de programa keto.cs simple. Haremos un programa que simplemente dé como resultado, "Me gusta Keto". Mira este sencillo programa aquí. No obtenemos ningún resaltado de sintaxis ni ayuda en absoluto como con Visual Studio.
archivo csharp en el bloc de notas

Ahora, queremos compilar este archivo de código fuente directamente desde la línea de comando. Bueno, csc.exe es el programa que queremos usar y vive en C: WindowsMicrosoft.NETFramework> v4.0.30319csc como se ve aquí.
ubicación del compilador de microsoft csc

Para compilar nuestro archivo fuente de C Sharp, simplemente podemos llamar al programa csc.exe desde la línea de comando y pasar el nombre del archivo que queremos compilar. Aquí compilamos el archivo keto.cs en un archivo keto.exe.
compilar el archivo csharp en el ejemplo de la línea de comandos

¡Frio! El compilador ha creado un archivo ejecutable que ahora se puede ejecutar desde la línea de comandos. De hecho, ¡acabamos de crear nuestro primer ensamblado en C # ! Sí, es un archivo exe, pero técnicamente se lo puede llamar Ensamblado. Un ensamblado .NET es un archivo que contiene código compilado que ahora se puede ejecutar dentro de Common Language Runtime . Aquí está nuestra asamblea en todo su esplendor.

Los ensamblados .NET son archivos que tienen una extensión .exe o .dll. El primer tipo es un archivo que es ejecutable, como acabamos de ver arriba. Los archivos dll son un poco diferentes. Un archivo dll significa que es lo que se conoce como biblioteca de vínculos dinámicos. Los archivos dll no se ejecutan como un archivo exe, pero pueden ser cargados por otros programas y ejecutar el código contenido en ellos. Estos tipos de archivos se utilizan a menudo para la reutilización de código. .NET Framework es un gran ejemplo de reutilización de código. Las clases comunes como Console y DateTime en .NET se encuentran dentro de un ensamblado que el marco .NET proporciona llamado mscorlib.dll .


La caché de ensamblados global

Los ensamblados .NET son parte de la caché de ensamblados global en una computadora con Windows. La caché de ensamblados global se encuentra en C: WindowsassemblyGAC> directamente como vemos aquí.
Caché de ensamblados global de Windows

Los ensamblados almacenados en el GAC pueden ser utilizados por cualquier aplicación .NET que se ejecute en la computadora. Los ensamblados comunes como mscorlib y otros viven en el GAC, lo que hace que una copia esté disponible para cualquier aplicación que la necesite en la computadora.


Trabajar con ensamblados en Visual Studio

construir archivos de Visual Studio en un ensamblado

Al crear una solución en Visual Studio, lo que sucede es que todos los archivos de código fuente se recopilan y se integran en un ensamblado. En este escenario, se está integrando en un ensamblado ejecutable o en un archivo con extensión .exe. Este archivo es creado por el compilador de C # en el directorio bin / Debug. Echemos un vistazo:

C: UsersusersourcereposStocksStocksbinDebug> dir
 El volumen en la unidad C es OSDisk
 El número de serie del volumen es F232-B880

 Directorio de C: UsersusersourcereposStocksStocksbinDebug

05/02/2019 01:43 p.m.              .
05/02/2019 01:43 p.m.              ..
06/02/2019 05:29 p.m. 5,632 Stocks.exe
02/04/2019 04:46 PM 189 Stocks.exe.config
02/06/2019 05:29 PM 22,016 Accioness.pdb
               3 Archivo (s) 27,837 bytes
               2 Dir (s) 83,911,729,152 bytes libres

Podemos ver que Stocks.exe es un archivo que creó el compilador de C #. Es un ensamblado que se puede ejecutar debido a su extensión .exe. La razón de esto es que cuando creamos este proyecto, optamos por crear una Aplicación de Consola con el nombre de Stocks. Visual Studio tiene un montón de opciones que se configuran según el tipo de proyecto que elija. El nombre del ensamblado es el mismo que el nombre del proyecto, por lo que en este caso es Stocks.

La extensión dada al conjunto está controlada por el ajuste Tipo de salida. Para la aplicación de Windows o la aplicación de consola, obtendremos esa extensión .exe. Si elegimos la opción Biblioteca de clases, el ensamblado ya no obtendría una extensión .exe sino una extensión .dll.
vs menú de tipo de salida de la aplicación

Solo por sonrisas, podemos cambiar el tipo de salida a Biblioteca de clases y luego construir la solución nuevamente. Ahora, cuando miramos el contenido del directorio en la carpeta Debug, efectivamente vemos Stocks.dll en lugar de Stocks.exe.

C: UsersusersourcereposStocksStocksbinDebug> dir
 El volumen en la unidad C es OSDisk
 El número de serie del volumen es F232-B880

 Directorio de C: UsersusersourcereposStocksStocksbinDebug

08/02/2019 04:53 p.m.              .
08/02/2019 04:53 p.m.              ..
02/08/2019 04:53 PM 5,120 Stocks.dll
02/04/2019 04:46 PM 189 Stocks.dll.config
02/08/2019 04:53 PM 19,968 Accioness.pdb
               3 Archivo (s) 25,277 bytes
               2 Dir (s) 83,904,868,352 bytes libres

Este tipo de archivo no se puede ejecutar directamente. De hecho, si intentamos hacerlo, recibimos un mensaje de Visual Studio que dice: “Un proyecto con un tipo de salida de biblioteca de clases no se puede iniciar directamente. Para depurar este proyecto, agregue un proyecto ejecutable a esta solución que haga referencia al proyecto de la biblioteca. Establezca el proyecto ejecutable como proyecto de inicio ".
elija el tipo de salida correcto en Visual Studio


Ir a la definición de ensamblaje

Una buena forma de aprender más sobre un ensamblado que le interesa es hacer clic con el botón derecho en el nombre del ensamblaje en Visual Studio y luego elegir "Ir a definición". Aquí, puede ver que hacemos clic derecho en el ensamblaje de la Consola y luego Ir a Definición.
visual studio ir a la definición

Visual Studio abrirá una nueva ventana con un resumen de todos los métodos disponibles en esa clase. Este no es el código fuente, pero es casi como una colección de interfaces. El archivo le muestra lo que puede invocar desde la clase Console, al igual que cuando está escribiendo e intellisense intenta adivinar qué método desea usar. Observe que en la parte superior del archivo podemos ver qué ensamblado está usando.

#region Assembly mscorlib, Versión = 4.0.0.0, Cultura = neutral, PublicKeyToken = b77a5c561934e089
// C: Archivos de programa (x86) Ensamblados de referencia MicrosoftFramework.NETFrameworkv4.6.1mscorlib.dll
#endregion

montaje mscorlib


Visualización de ensamblajes de proyecto

Para ver los ensamblados que utiliza un proyecto en particular en Visual Studio, puede buscar en el Explorador de soluciones y luego hacer clic en la opción Referencias.
referencias del explorador de soluciones de Visual Studio

Bajo este nodo se enumeran cosas como Microsoft.CSharp, System, System.Core, System.Data, System.Data.DataSetExtensions, System.Net.Http, System.xml y System.Xml.Linq. Estos son otros ensamblajes a los que este proyecto puede hacer referencia. Visual Studio incluye automáticamente muchos de estos cuando crea un nuevo proyecto mientras intenta acceder a ensamblados comunes que utilizan muchas aplicaciones. Incluso si no usa algunos de los ensamblados que se ven en el nodo Referencias, no es un problema, ya que .NET solo cargará un ensamblado cuando realmente use una clase de ese ensamblado dentro de un programa.


Mirando más de cerca con el navegador de objetos

Para obtener más información sobre un conjunto en particular, también puede usar el Explorador de objetos para profundizar en lo que está disponible. Por ejemplo, veamos System.Net.Http en el navegador de objetos.
ver en el navegador de objetos

Con esto, System.Net.Http se abre en el Explorador de objetos y podemos ver toda la funcionalidad disponible en ese ensamblaje. Podemos ver varias clases como HttpClient, HttpClientHandler, HttpCompletionOption, HttpContent, etc. Por supuesto, dentro de cada una de estas clases hay propiedades y métodos. La inspección de esa clase HttpMethod muestra varias propiedades, como Delete, Get, Head, Method, Options, Post, Put y Trace. Luego, si estamos interesados, por ejemplo, en realizar solicitudes GET, podemos profundizar en HttpMethod, luego elegir Obtener y observar la información que se nos proporciona.

público estático System.Net.Http.HttpMethod Get {get; }
    Miembro de System.Net.Http.HttpMethod

Resumen:
Representa un método de protocolo HTTP GET.

Devoluciones:
Devuelve System.Net.Http.HttpMethod.

System-Net-Http en el navegador de objetos


Agregar referencias a su proyecto

visual studio agregar referenciaHay tantos ensamblados disponibles en .NET Framework que es casi imposible conocerlos todos. Lo más probable es que no necesite crear mucho desde cero, ya que uno de los ensamblajes disponibles ya ha resuelto los problemas más comunes. Por ejemplo, digamos que desea agregar soporte para gráficos en su aplicación. Continúe y agregue una referencia al ensamblado System.Web.DataVisualization.
Visualización de datos web de Reference Manager

Esto le dará acceso a System.Web.UI.DataVisualization.Charting, System.Web.UI.DataVisualization.Charting.Borders3D, System.Web.UI.DataVisualization.Charting.ChartTypes, System.Web.UI.DataVisualization.Charting .Data, System.Web.UI.DataVisualization.Charting.Formulas y System.Web.UI.DataVisualization.Charting.Utilities espacios de nombres que colectivamente cientos y cientos de métodos y propiedades relacionados con la creación y representación de cualquier tipo de gráfico que pueda necesitar. como gráficos de barras, gráficos circulares y varios gráficos personalizados.


Qué es un ensamblado en C # Resumen

En este tutorial, aprendimos cómo Visual Studio y el compilador de C # compilarán nuestro código fuente en un ensamblado. El nombre del ensamblado tendrá el mismo nombre que el proyecto. El ensamblado resultante tendrá una extensión .exe o .dll dependiendo de si estaba creando un programa para ejecutarlo directamente o una biblioteca de clases. También vimos que se requiere más de un ensamblaje para la mayoría de las aplicaciones y aprendimos cómo agregar referencias a otros ensamblajes. En .NET, todos los tipos que crea un desarrollador vivirán en un ensamblado.