Monorepositorio con C#: organización de código para principiantes

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Monorepositorio con C#: organización de código para principiantes



En el desarrollo moderno con C# (.NET), tarde o temprano surge la pregunta: ¿cómo organizar el código cuando tienes varios proyectos — una biblioteca de clases, una API web, una aplicación de consola, pruebas? Muchos desarrolladores principiantes crean repositorios separados para cada parte, lo que genera confusión en las versiones y dependencias. La alternativa es el monorepositorio (monorepo). En este artículo, analizaremos qué es un monorepositorio, cómo configurarlo en C# y por qué simplifica la vida a los principiantes.



¿Qué es un monorepositorio?



Un monorepositorio es un enfoque en el que todo el código de varios proyectos relacionados se almacena en un único repositorio de Git. Por ejemplo, puede tener una biblioteca compartida MyApp.Shared, una aplicación web MyApp.Web y una herramienta de consola MyApp.Cli — todo en una misma carpeta, con un único archivo .sln.



En el contexto de C# (.NET), un monorepositorio generalmente significa una única solución de Visual Studio que contiene varios proyectos. Esto es especialmente útil para:

  • Compartir código (mediante referencias a proyectos, no paquetes NuGet).
  • Un proceso unificado de compilación y CI/CD.
  • Simplificar el trabajo con versiones (una rama — todos los cambios a la vez).


Ventajas del monorepositorio para principiantes



Si recién estás empezando a aprender C#, un monorepositorio te ayudará a evitar errores típicos:

  • Simplicidad de navegación — todos los proyectos en un solo lugar, sin necesidad de cambiar entre repositorios.
  • Conexión instantánea — un cambio en la biblioteca se ve inmediatamente en los proyectos dependientes.
  • Estilo unificado — se puede configurar un solo .editorconfig o Directory.Build.props para todos los proyectos.
  • Ejecutar pruebas fácilmente — con un solo comando dotnet test se verifica toda la solución.


Creación de la estructura del monorepositorio: guía paso a paso



Paso 1. Crear la carpeta raíz y la solución



Abra la terminal y ejecute:

mkdir MyMonorepocd MyMonorepodotnet new sln -n MyApp


Ahora tiene el archivo MyApp.sln — el punto de entrada para Visual Studio o Rider.



Paso 2. Agregar proyectos



Creemos tres proyectos: una biblioteca de clases, una API web y una aplicación de consola. Para mayor comodidad, los colocaremos en la subcarpeta src:

mkdir srccd srcdotnet new classlib -n MyApp.Shareddotnet new webapi -n MyApp.Webdotnet new console -n MyApp.Clicd ..


Ahora los vinculamos a la solución:

dotnet sln add src/MyApp.Shared/MyApp.Shared.csprojdotnet sln add src/MyApp.Web/MyApp.Web.csprojdotnet sln add src/MyApp.Cli/MyApp.Cli.csproj


Paso 3. Configurar dependencias entre proyectos



Supongamos que MyApp.Web y MyApp.Cli utilizan clases de MyApp.Shared. En lugar de publicar la biblioteca en NuGet, simplemente agregue una referencia de proyecto:

dotnet add src/MyApp.Web/MyApp.Web.csproj reference src/MyApp.Shared/MyApp.Shared.csprojdotnet add src/MyApp.Cli/MyApp.Cli.csproj reference src/MyApp.Shared/MyApp.Shared.csproj


Ahora, en el archivo MyApp.Web.csproj aparecerá la sección:

<ItemGroup>  <ProjectReference Include="..\\MyApp.Shared\\MyApp.Shared.csproj" /></ItemGroup>


Paso 4. Escribir código compartido



En el proyecto MyApp.Shared crearemos una clase simple:

// src/MyApp.Shared/GreetingService.csnamespace MyApp.Shared;

public class GreetingService{ public string GetGreeting(string name) => $"¡Hola, {name}! Bienvenido al monorepositorio.";}


Ahora la usamos en la aplicación de consola:

// src/MyApp.Cli/Program.csusing MyApp.Shared;                

Blogs

Book Recommendations