Cargando...

Namespaces y ensamblados en C#

Aprende los conceptos de namespaces y ensamblados en C# para organizar el código y gestionar dependencias correctamente.

En el mundo de C# y .NET se utilizan los conceptos de namespace (espacio de nombres) y assembly (ensamblado) para que el código sea organizado, manejable y reutilizable. Estas estructuras permiten dividir el código, evitar conflictos de nombres y facilitar el uso compartido de componentes, incluso en proyectos grandes.


Namespace (Espacio de nombres)

Un namespace agrupa clases, interfaces, enumeraciones y otros tipos dentro de una unidad lógica. De esta manera, clases con el mismo nombre pueden usarse sin conflicto si están en diferentes espacios de nombres.


namespace ProyectoA.Models
{
    class Usuario
    {
        public string Nombre { get; set; }
    }
}

namespace ProyectoB.Models
{
    class Usuario
    {
        public string NombreCompleto { get; set; }
    }
}

En este ejemplo existen dos clases Usuario diferentes. Al usar namespaces, se puede acceder a ellas como ProyectoA.Models.Usuario o ProyectoB.Models.Usuario.


Instrucción using

La instrucción using permite acceder directamente a los tipos definidos dentro de un espacio de nombres específico.


using ProyectoA.Models;

class Program
{
    static void Main()
    {
        Usuario u = new Usuario();
        u.Nombre = "Juan";
        Console.WriteLine(u.Nombre);
    }
}

Aquí, en lugar de escribir ProyectoA.Models.Usuario, simplemente se puede escribir Usuario.


Assembly (Ensamblado)

Un ensamblado es la unidad distribuible del código .NET compilado. Generalmente tiene la extensión .dll (Dynamic Link Library) o .exe (ejecutable).


Contenido de un Assembly

Un ensamblado no solo contiene código, sino también metadatos (por ejemplo, información de versión) y archivos de recursos.


TL;DR

  • Namespace: Organiza el código en grupos lógicos.
  • Assembly: Unidad distribuible del código compilado (.dll, .exe).
  • Namespace → evita conflictos de nombres y aporta estructura.
  • Assembly → agrupa código, metadatos y recursos en un solo paquete.