# DV-002: Configuración Solución .NET 10 **Proyecto:** Sistema de Registro de Estudiantes **Fecha:** 2026-01-07 --- ## 1. Crear Solución y Proyectos ```bash cd src/backend # Crear solución dotnet new sln -n StudentEnrollment # Crear proyectos dotnet new classlib -n Domain -f net10.0 dotnet new classlib -n Application -f net10.0 dotnet new classlib -n Adapters.Driving.Api -f net10.0 dotnet new classlib -n Adapters.Driven.Persistence -f net10.0 dotnet new web -n Host -f net10.0 # Agregar a solución dotnet sln add Domain/Domain.csproj dotnet sln add Application/Application.csproj dotnet sln add Adapters.Driving.Api/Adapters.Driving.Api.csproj dotnet sln add Adapters.Driven.Persistence/Adapters.Driven.Persistence.csproj dotnet sln add Host/Host.csproj ``` --- ## 2. Referencias entre Proyectos ```bash # Application → Domain dotnet add Application reference Domain # Adapters.Driving.Api → Application dotnet add Adapters.Driving.Api reference Application # Adapters.Driven.Persistence → Domain dotnet add Adapters.Driven.Persistence reference Domain # Host → Todos dotnet add Host reference Application dotnet add Host reference Adapters.Driving.Api dotnet add Host reference Adapters.Driven.Persistence ``` ``` Host ├── Adapters.Driving.Api → Application → Domain └── Adapters.Driven.Persistence ────────→ Domain ``` --- ## 3. Paquetes NuGet por Proyecto ### Domain (sin dependencias externas) ```xml ``` ### Application ```xml ``` ### Adapters.Driven.Persistence ```xml ``` ### Adapters.Driving.Api ```xml ``` ### Host ```xml ``` --- ## 4. Directory.Build.props (Raíz backend) ```xml net10.0 enable enable true ``` --- ## 5. Program.cs (Host) ```csharp var builder = WebApplication.CreateBuilder(args); // Services builder.Services.AddApplication(); builder.Services.AddPersistence(builder.Configuration); builder.Services.AddGraphQLApi(); // CORS builder.Services.AddCors(options => { options.AddDefaultPolicy(policy => policy.WithOrigins("http://localhost:4200") .AllowAnyHeader() .AllowAnyMethod()); }); var app = builder.Build(); app.UseCors(); app.MapGraphQL(); app.Run(); ``` --- ## 6. Comandos de Desarrollo ```bash # Restaurar dependencias dotnet restore # Build dotnet build # Ejecutar dotnet run --project Host # Watch mode dotnet watch run --project Host # Tests dotnet test # Migraciones EF dotnet ef migrations add Initial -p Adapters.Driven.Persistence -s Host dotnet ef database update -p Adapters.Driven.Persistence -s Host ```