Repositorio del Grupo 2 del curso de .NET: aplicación web con C#, ASP.NET Core MVC, Razor y Entity Framework Core, desarrollada en equipo con Git y GitHub.
Elegid una de estas temáticas durante el fin de semana. Todas parten del mismo esqueleto (usuarios con roles User y Admin); el dominio lo construís vosotros.
- Gestión de academias y centros de formación: administración de alumnos, profesores, cursos, matrículas y calificaciones.
Cuando el equipo lo haya decidido, sustituid esta sección por la descripción de la temática elegida y de sus funcionalidades principales (por ejemplo, con una Pull Request).
Punto de partida común de todos los grupos: solo la entidad ApplicationUser (usuario) y la infraestructura para que todo arranque a la primera. Las entidades del dominio, sus relaciones, servicios, controladores y vistas las construye el equipo.
| Área | Contenido |
|---|---|
| Usuarios | ApplicationUser (ASP.NET Core Identity) con nombre visible, avatar, fecha de alta y estado activo; roles Admin y User. |
| Cuenta | Registro, login por usuario o email, logout y página de acceso denegado. |
| Perfil | Consulta y edición del perfil, avatar y cambio de contraseña. |
| Administración | Panel /Users (solo Admin): alta, edición, activación y borrado de usuarios. |
| Datos | Entity Framework Core + SQLite (App_Data/g2.db), migración inicial de Identity y datos demo al arrancar. |
| Imágenes | ImageStorage para guardar imágenes subidas; hoy solo avatares (añadid vuestras carpetas en ImageFolder). |
| Interfaz | Razor + Bootstrap 5 en local, con tema claro/oscuro. |
| Calidad y despliegue | Proyecto de tests xUnit, GitHub Actions (compilar y testear) y Dockerfile. |
- SDK de .NET 10.
global.jsonacepta cualquier SDK de la versión 10.0. - Visual Studio Code y C# Dev Kit. Es el IDE estándar del curso en Windows, macOS y Linux.
- Git. Docker es opcional y solo se usa al explicar despliegue.
No instales ASP.NET, C#, SQLite ni Entity Framework por separado: los aporta el SDK o se restauran como dependencias del proyecto.
Instala .NET 10 SDK, Visual Studio Code y C# Dev Kit una sola vez en el ordenador.
winget install --id Microsoft.DotNet.SDK.10 --exact
winget install --id Microsoft.VisualStudioCode --exact
winget install --id Git.Git --exactCierra y abre una terminal nueva; después instala la extensión:
code --install-extension ms-dotnettools.csdevkitbrew install dotnet
brew install --cask visual-studio-code
brew install git
code --install-extension ms-dotnettools.csdevkitSi no utilizas Homebrew, instala el SDK de .NET 10 con el instalador oficial de macOS y añade C# Dev Kit desde el panel Extensions de VS Code.
sudo apt-get update
sudo apt-get install -y dotnet-sdk-10.0 git
sudo snap install code --classic
code --install-extension ms-dotnettools.csdevkitPara otra distribución Linux, sigue el instalador oficial de .NET para Linux y, una vez instalado VS Code, ejecuta el último comando.
Comprueba la instalación desde esta carpeta:
dotnet --versionDebe mostrar una versión que empiece por 10.0.
Si el comando code no se reconoce, abre VS Code e instala C# Dev Kit desde
Extensions.
Clona el repositorio y abre su carpeta (no una carpeta superior) en VS Code. C# Dev Kit carga automáticamente G2AspNet.sln.
git clone https://github.com/certidevs/g2_aspnet.git
cd g2_aspnet
code .
dotnet restore G2AspNet.sln
dotnet tool restore
dotnet run --project G2AspNet.csproj --launch-profile httpAbre http://localhost:5107. El primer arranque crea App_Data/g2.db, aplica la migración de Identity y añade los usuarios demo:
admin/Admin123!user/User123!
Todo el grupo tiene permiso de escritura en este repositorio. Para no pisaros el trabajo:
-
Una rama por tarea, partiendo de
mainactualizado:git switch main git pull git switch -c feature/nombre-corto
-
Commits pequeños y con mensaje claro (
feat: ...,fix: ...,docs: ...). -
Subid la rama y abrid una Pull Request hacia
main(git push -u origin feature/nombre-corto). Que la revise al menos otra persona del equipo antes de fusionarla y que el check de GitHub Actions esté en verde. -
No hagáis
pushdirecto amainnigit push --force. -
Antes de abrir la PR, y cada vez que
mainavance, actualizad vuestra rama:git pull --rebase origin main. -
Repartid el trabajo con Issues (una persona por issue) y, si queréis, un tablero de Projects.
Las migraciones (Data/Migrations) son lo que más choca al trabajar en paralelo, sobre todo ApplicationDbContextModelSnapshot.cs:
- Avisad al equipo antes de crear una migración y fusionad su PR cuanto antes.
- Si al actualizar con
mainhay conflicto enData/Migrations, no lo resolváis a mano: descartad vuestros cambios en esa carpeta, integradmain, borrad vuestra base local (App_Data/*.db) y volved a crear la migración condotnet ef migrations add. - Nunca editéis ni borréis migraciones que ya estén en
main.
Todos se ejecutan desde la raíz de este repositorio.
# Restaurar dependencias NuGet y herramientas locales tras clonar o actualizar
dotnet restore G2AspNet.sln
dotnet tool restore
# Ejecutar la aplicación
dotnet run --project G2AspNet.csproj --launch-profile http
# Ejecutar con recarga al guardar archivos
dotnet watch --project G2AspNet.csproj run --launch-profile http
# Compilar y ejecutar los tests
dotnet build G2AspNet.sln
dotnet test G2AspNet.slndotnet-ef está fijado en .config/dotnet-tools.json, por lo que dotnet tool restore lo deja disponible sin instalar nada de forma global.
# Después de cambiar una entidad: crear y aplicar una migración
dotnet ef migrations add NombreDescriptivo
dotnet ef database update
# Corregir la última migración solo antes de aplicarla a la base de datos
dotnet ef migrations removeLas migraciones se aplican también al arrancar la aplicación. El comando database update se incluye para conocer el flujo explícito.
GitHub Actions ejecuta restauración, compilación Release y tests en cada push a main y en cada pull request hacia main.
Docker es opcional:
docker build -t g2_aspnet:local .
docker run --rm -p 10000:10000 g2_aspnet:localEl contenedor queda disponible en http://localhost:10000.
En VS Code, selecciona el perfil http y pulsa F5 para depurar. Las tareas G2: compilar y G2: ejecutar tests están disponibles en Terminal → Run Task. En Windows, Visual Studio 2026 también abre G2AspNet.sln; consulta la guía de IDEs.
[ Firmado por Poulgar usando Push ] [ Firmado por Alfonso usando Push y rama auxiliar] [ Firmado por Rubén usando Push y sin rama auxiliar] [ Firmado por Juanma usando Push y rama auxiliar]