Las aplicaciones de muestra de eShop se actualizaron y trasladaron a https://github.com/dotnet/eShop. Allí continuará el desarrollo activo. También recomendamos la guía de patrones de aplicaciones web confiables para crear aplicaciones web con patrones de aplicaciones empresariales.
Ejemplo de aplicación de referencia ASP.NET Core, con tecnología de Microsoft, que demuestra una arquitectura de aplicación de proceso único (monolítica) y un modelo de implementación. Si es nuevo en el desarrollo de .NET, lea la guía Introducción para principiantes.
Puede encontrar una lista de preguntas frecuentes sobre este repositorio aquí.
Steve "ardalis" Smith grabó una transmisión en vivo que brinda una descripción general de la aplicación de referencia eShopOnWeb en octubre de 2020.
Esta aplicación de referencia está diseñada para admitir el libro electrónico de descarga gratuita en formato PDF: Arquitectura de aplicaciones web modernas con ASP.NET Core y Azure, actualizado a ASP.NET Core 8.0 . También disponible en formatos ePub/mobi.
También puede leer el libro en las páginas en línea en los documentos .NET aquí: https://docs.microsoft.com/dotnet/architecture/modern-web-apps-azure/
El ejemplo eShopOnWeb está relacionado con la aplicación de ejemplo eShopOnContainers que, en ese caso, se centra en una arquitectura de aplicación basada en microservicios/contenedores. Sin embargo, eShopOnWeb es mucho más simple en cuanto a su funcionalidad actual y se enfoca en el desarrollo de aplicaciones web tradicionales con una sola implementación.
El objetivo de este ejemplo es demostrar algunos de los principios y patrones descritos en el libro electrónico. No pretende ser una aplicación de referencia de comercio electrónico y, como tal, no implementa muchas características que serían obvias y/o esenciales para una aplicación de comercio electrónico real.
VERSIONES
La rama
main
actualmente ejecuta ASP.NET Core 8.0.Las versiones anteriores están etiquetadas.
La página de inicio de la tienda debería verse así:
La CLI de desarrollador de Azure ( azd
) es una herramienta de interfaz de línea de comandos (CLI) centrada en el desarrollador para crear aplicaciones de Azure.
Debe instalarlo antes de ejecutarlo e implementarlo con la CLI de desarrollador de Azure.
powershell - ex AllSigned - c " Invoke-RestMethod 'https://aka.ms/install-azd.ps1' | Invoke-Expression "
curl -fsSL https://aka.ms/install-azd.sh | bash
Y también puedes instalar con administradores de paquetes, como Winget, Choco y Brew. Para obtener más detalles, puede seguir la documentación: https://aka.ms/azure-dev/install.
Después de iniciar sesión con el siguiente comando, podrá utilizar azd cli para aprovisionar e implementar rápidamente la aplicación.
azd auth login
Luego, ejecute el comando azd init
para inicializar el entorno.
azd init -t dotnet-architecture/eShopOnWeb
Ejecute azd up
para aprovisionar todos los recursos en Azure e implementar el código en esos recursos.
azd up
Según el mensaje, ingrese un env name
y seleccione subscription
y location
; estos son los parámetros necesarios al crear recursos. Espere un momento a que se complete la implementación de recursos, haga clic en el punto final web y verá la página de inicio.
Notas:
También puede ejecutar el ejemplo directamente localmente (consulte a continuación).
La mayor parte de la funcionalidad del sitio funciona sólo con la aplicación web en ejecución. Sin embargo, la página de administración del sitio depende de Blazor WebAssembly que se ejecuta en el navegador y debe comunicarse con el servidor mediante la aplicación web PublicApi del sitio. También necesitarás ejecutar este proyecto. Puede configurar Visual Studio para iniciar varios proyectos o simplemente ir a la carpeta PublicApi en una ventana de terminal y ejecutar dotnet run
desde allí. Después de eso, desde la carpeta Web, debe ejecutar dotnet run --launch-profile Web
. Ahora debería poder navegar hasta https://localhost:5001/
. Se puede acceder a la parte de administración en Blazor desde https://localhost:5001/admin
Tenga en cuenta que si utiliza este método, deberá detener la aplicación manualmente para poder crear la solución (de lo contrario, obtendrá errores de bloqueo de archivos).
Después de clonar o descargar la muestra, debe configurar su base de datos. Para usar el ejemplo con una base de datos persistente, deberá ejecutar las migraciones de Entity Framework Core antes de poder ejecutar la aplicación.
También puede ejecutar los ejemplos en Docker (ver más abajo).
De forma predeterminada, el proyecto utiliza una base de datos real. Si desea una base de datos en memoria, puede agregar el archivo appsettings.json
en la carpeta Web.
{
"UseOnlyInMemoryDatabase" : true
}
Asegúrese de que sus cadenas de conexión en appsettings.json
apunten a una instancia local de SQL Server.
Asegúrese de que la herramienta EF ya esté instalada. Puedes encontrar ayuda aquí.
dotnet tool update --global dotnet-ef
Abra un símbolo del sistema en la carpeta Web y ejecute los siguientes comandos:
dotnet restore
dotnet tool restore
dotnet ef database update -c catalogcontext -p ../Infrastructure/Infrastructure.csproj -s Web.csproj
dotnet ef database update -c appidentitydbcontext -p ../Infrastructure/Infrastructure.csproj -s Web.csproj
Estos comandos crearán dos bases de datos separadas, una para los datos del catálogo de la tienda y la información del carrito de compras, y otra para las credenciales de usuario y los datos de identidad de la aplicación.
Ejecute la aplicación.
La primera vez que ejecute la aplicación, se generarán datos en ambas bases de datos que le permitirán ver los productos en la tienda y podrá iniciar sesión con la cuenta [email protected].
Nota: Si necesita crear migraciones, puede usar estos comandos:
-- create migration (from Web folder CLI)
dotnet ef migrations add InitialModel --context catalogcontext -p ../Infrastructure/Infrastructure.csproj -s Web.csproj -o Data/Migrations
dotnet ef migrations add InitialIdentityModel --context appidentitydbcontext -p ../Infrastructure/Infrastructure.csproj -s Web.csproj -o Identity/Migrations
Este proyecto incluye una carpeta .devcontainer
con una configuración de contenedor de desarrollo, que le permite usar un contenedor como un entorno de desarrollo con todas las funciones.
¡Puedes usar el contenedor de desarrollo para crear y ejecutar la aplicación sin necesidad de instalar ninguna de sus herramientas localmente! Puedes trabajar en GitHub Codespaces o la extensión VS Code Dev Containers.
Obtenga más información sobre el uso del contenedor de desarrollo en su archivo Léame.
Puede ejecutar el ejemplo web ejecutando estos comandos desde la carpeta raíz (donde se encuentra el archivo .sln):
docker-compose build
docker-compose up
Debería poder realizar solicitudes a localhost:5106 para el proyecto web y a localhost:5200 para el proyecto de API pública una vez que se completen estos comandos. Si tiene algún problema, especialmente al iniciar sesión, intente desde una nueva instancia de navegador invitado o de incógnito.
También puede ejecutar las aplicaciones siguiendo las instrucciones ubicadas en su archivo Dockerfile
en la raíz de cada proyecto. Nuevamente, ejecute estos comandos desde la raíz de la solución (donde se encuentra el archivo .sln).
Tenemos algunas contribuciones excelentes de la comunidad y, aunque Microsoft no las mantiene, queremos resaltarlas.
eShopOnWeb VB.NET por Mohammad Hamdy Ghanem
FShopOnWeb Una versión F# de eShopOnWeb por Sean G. Wright y Kyle McMaster