Mariano Z. 2 лет назад
Родитель
Сommit
46f2a35a40
4 измененных файлов с 42 добавлено и 8 удалено
  1. 2 2
      Dockerfile
  2. 3 3
      Products.Backoffice/Views/Product/Index.cshtml
  3. 36 2
      README.md
  4. 1 1
      fly.toml

+ 2 - 2
Dockerfile

@@ -1,5 +1,5 @@
 # Use the official .NET SDK image as a build stage
-FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
+FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
 WORKDIR /app
 
 # Copy the solution and global.json to the container
@@ -19,7 +19,7 @@ WORKDIR /app/Products.Backoffice
 RUN dotnet publish -c Release -o out
 
 # Use the official .NET runtime image as the final base image
-FROM mcr.microsoft.com/dotnet/aspnet:7.0
+FROM mcr.microsoft.com/dotnet/aspnet:8.0
 WORKDIR /app
 COPY --from=build /app/Products.Backoffice/out ./
 

+ 3 - 3
Products.Backoffice/Views/Product/Index.cshtml

@@ -9,10 +9,10 @@
 <table class="table">
     <thead>
         <tr>
+            <th scope="col">Id</th>
             <th scope="col">Nombre</th>
-            <th scope="col">Descripcion</th>
-            <th scope="col">Precio</th>
-            <th scope="col">Stock</th>
+            <th scope="col">Color</th>
+            <th scope="col">Marca</th>
             <th scope="col">Acciones</th>
         </tr>
     </thead>

+ 36 - 2
README.md

@@ -1,4 +1,4 @@
-## Ejemplo de Aplicación .NET con MVC y API REST
+## Ejemplo de Aplicación .NET con MVC y API REST 🚀
 
 A continuación, encontrarás instrucciones detalladas sobre cómo configurar y ejecutar este proyecto .NET. El proyecto consta de varios componentes que incluyen lógica de negocio, aplicaciones web y una API REST para administrar productos.
 
@@ -43,13 +43,21 @@ A continuación, se describen los pasos para configurar y ejecutar el proyecto:
 
 5. **Ejecutar Aplicaciones MVC**:
    - Para el proyecto Backoffice, navega a la carpeta `Products.Backoffice` en la terminal y ejecuta:
-     ```
+     ```bash
      dotnet run
      ```
+     o desde la raiz del proyecto:
+     ```bash
+     dotnet run --project Products.Backoffice
+     ```
    - Para el proyecto API, navega a la carpeta `Products.API` en la terminal y ejecuta:
      ```
      dotnet run
      ```
+     o desde la raiz del proyecto:
+     ```bash
+     dotnet run --project Products.API
+     ```
 
 6. **Ejecutar Proyecto Svelte**:
    - Navega a la carpeta `Products.Frontoffice` en la terminal.
@@ -60,6 +68,32 @@ A continuación, se describen los pasos para configurar y ejecutar el proyecto:
    Ahora puedes acceder a las aplicaciones MVC desde tu navegador y probar la API REST.
   Además, el proyecto Svelte te mostrará cómo consumir la API desde un frontend.
 
+## Migraciones (branch `migrations`)
+
+Inrtalar `dotnet ef` ([how-to](httpr://learn.microsoft.com/en-us/ef/core/cli/dotnet)) para poder gestionar las migraciones.
+
+- `dotnet ef database update`: Actualiza la base de datos
+- `dotnet ef migrations add <nombre de la migración>`: Crea una nueva migración
+- `dotnet ef migrations remove <nombre de la migración>`: Elimina una migración
+- `dotnet ef migrations list`: Lista las migraciones
+
+```bash
+dotnet ef database update
+dotnet ef migrations add <nombre de la migración>
+dotnet ef migrations remove <nombre de la migración>
+dotnet ef migrations list
+```
+
+**Nota**: Como este proyecto utiliza la base de datos SQLite, es imporante que se respete la ubicación de la base de datos.
+Es por ello que los comandos deben se ejecutados desde la raiz del proyecto haciendo uso del flag `--project`.
+
+```bash
+dotnet ef database update --project Products.Business
+dotnet ef migrations add <nombre de la migración> --project Products.Business
+dotnet ef migrations remove <nombre de la migración> --project Products.Business
+dotnet ef migrations list --project Products.Business
+```
+
 ## Deploy en Fly.io
 
 Se ha realizado un deploy de la aplicación MVC en Fly.io. Puedes acceder a ella desde el siguiente enlace:

+ 1 - 1
fly.toml

@@ -9,7 +9,7 @@ primary_region = "scl"
 [build]
 
 [http_service]
-  internal_port = 80
+  internal_port = 8080
   force_https = true
   auto_stop_machines = true
   auto_start_machines = true