Les exemples d'applications eShop ont été mis à jour et déplacés vers https://github.com/dotnet/eShop. Le développement actif s'y poursuivra. Nous recommandons également les conseils sur les modèles Reliable Web App pour créer des applications Web avec des modèles d’applications d’entreprise.
Exemple d'application de référence ASP.NET Core, optimisée par Microsoft, démontrant une architecture d'application et un modèle de déploiement à processus unique (monolithique). Si vous débutez dans le développement .NET, lisez le guide de démarrage pour les débutants.
Une liste de questions fréquemment posées sur ce référentiel peut être trouvée ici.
Steve "ardalis" Smith a enregistré une diffusion en direct donnant un aperçu de l'application de référence eShopOnWeb en octobre 2020.
Cette application de référence est destinée à prendre en charge le livre électronique téléchargeable gratuitement au format .PDF : Architecting Modern Web Applications with ASP.NET Core and Azure, mis à jour vers ASP.NET Core 8.0 . Également disponible aux formats ePub/mobi.
Vous pouvez également lire le livre sur les pages en ligne de la documentation .NET ici : https://docs.microsoft.com/dotnet/architecture/modern-web-apps-azure/
L'exemple eShopOnWeb est lié à l'exemple d'application eShopOnContainers qui, dans ce cas, se concentre sur une architecture d'application basée sur des microservices/conteneurs. Cependant, eShopOnWeb est beaucoup plus simple en ce qui concerne ses fonctionnalités actuelles et se concentre sur le développement d'applications Web traditionnelles avec un seul déploiement.
L’objectif de cet exemple est de démontrer certains des principes et modèles décrits dans le livre électronique. Elle n’est pas censée être une application de référence en matière de commerce électronique et, en tant que telle, elle n’implémente pas de nombreuses fonctionnalités qui seraient évidentes et/ou essentielles à une véritable application de commerce électronique.
VERSIONS
La branche
main
exécute actuellement ASP.NET Core 8.0.Les anciennes versions sont étiquetées.
La page d'accueil du magasin devrait ressembler à ceci :
Azure Developer CLI ( azd
) est un outil d'interface de ligne de commande (CLI) centré sur les développeurs pour créer des applications Azure.
Vous devez l’installer avant de l’exécuter et de le déployer avec Azure Developer CLI.
powershell - ex AllSigned - c " Invoke-RestMethod 'https://aka.ms/install-azd.ps1' | Invoke-Expression "
curl -fsSL https://aka.ms/install-azd.sh | bash
Et vous pouvez également installer avec des gestionnaires de packages, comme Winget, Choco et Brew. Pour plus de détails, vous pouvez suivre la documentation : https://aka.ms/azure-dev/install.
Après vous être connecté avec la commande suivante, vous pourrez utiliser azd cli pour provisionner et déployer rapidement l’application.
azd auth login
Ensuite, exécutez la commande azd init
pour initialiser l'environnement.
azd init -t dotnet-architecture/eShopOnWeb
Exécutez azd up
pour provisionner toutes les ressources sur Azure et déployer le code sur ces ressources.
azd up
Selon l'invite, entrez un env name
et sélectionnez subscription
et location
. Ce sont les paramètres nécessaires lorsque vous créez des ressources. Attendez un moment que le déploiement des ressources soit terminé, cliquez sur le point de terminaison Web et vous verrez la page d'accueil.
Remarques :
Vous pouvez également exécuter l’exemple directement localement (voir ci-dessous).
La plupart des fonctionnalités du site fonctionnent uniquement avec l'application Web en cours d'exécution. Cependant, la page d'administration du site s'appuie sur Blazor WebAssembly exécuté dans le navigateur et doit communiquer avec le serveur à l'aide de l'application Web PublicApi du site. Vous devrez également exécuter ce projet. Vous pouvez configurer Visual Studio pour démarrer plusieurs projets, ou simplement accéder au dossier PublicApi dans une fenêtre de terminal et exécuter dotnet run
à partir de là. Après cela, à partir du dossier Web, vous devez exécuter dotnet run --launch-profile Web
. Vous devriez maintenant pouvoir accéder à https://localhost:5001/
. La partie administrateur de Blazor est accessible sur https://localhost:5001/admin
Notez que si vous utilisez cette approche, vous devrez arrêter l'application manuellement afin de créer la solution (sinon vous obtiendrez des erreurs de verrouillage de fichiers).
Après avoir cloné ou téléchargé l'exemple, vous devez configurer votre base de données. Pour utiliser l'exemple avec une base de données persistante, vous devrez exécuter ses migrations Entity Framework Core avant de pouvoir exécuter l'application.
Vous pouvez également exécuter les exemples dans Docker (voir ci-dessous).
Par défaut, le projet utilise une vraie base de données. Si vous souhaitez une base de données en mémoire, vous pouvez ajouter le fichier appsettings.json
dans le dossier Web
{
"UseOnlyInMemoryDatabase" : true
}
Assurez-vous que vos chaînes de connexion dans appsettings.json
pointent vers une instance SQL Server locale.
Assurez-vous que l’outil EF était déjà installé. Vous pouvez trouver de l'aide ici
dotnet tool update --global dotnet-ef
Ouvrez une invite de commande dans le dossier Web et exécutez les commandes suivantes :
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
Ces commandes créeront deux bases de données distinctes, une pour les données du catalogue du magasin et les informations du panier, et une pour les informations d'identification et d'identité de l'utilisateur de l'application.
Exécutez l'application.
La première fois que vous exécutez l'application, les deux bases de données seront ensemencées avec des données telles que vous devriez voir les produits dans le magasin et vous devriez pouvoir vous connecter à l'aide du compte [email protected].
Remarque : Si vous devez créer des migrations, vous pouvez utiliser ces commandes :
-- 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
Ce projet comprend un dossier .devcontainer
avec une configuration de conteneur de développement, qui vous permet d'utiliser un conteneur comme environnement de développement complet.
Vous pouvez utiliser le conteneur de développement pour créer et exécuter l'application sans avoir besoin d'installer aucun de ses outils localement ! Vous pouvez travailler dans GitHub Codespaces ou dans l'extension VS Code Dev Containers.
Apprenez-en davantage sur l’utilisation du conteneur de développement dans son fichier Lisez-moi.
Vous pouvez exécuter l'exemple Web en exécutant ces commandes à partir du dossier racine (où se trouve le fichier .sln) :
docker-compose build
docker-compose up
Vous devriez pouvoir envoyer des requêtes à localhost:5106 pour le projet Web et à localhost:5200 pour le projet d'API publique une fois ces commandes terminées. Si vous rencontrez des problèmes, notamment avec la connexion, essayez à partir d'une nouvelle instance de navigateur invité ou incognito.
Vous pouvez également exécuter les applications en utilisant les instructions situées dans leur fichier Dockerfile
à la racine de chaque projet. Encore une fois, exécutez ces commandes à partir de la racine de la solution (où se trouve le fichier .sln).
Nous avons d'excellentes contributions de la part de la communauté et, même si celles-ci ne sont pas gérées par Microsoft, nous souhaitons néanmoins les mettre en valeur.
eShopOnWeb VB.NET par Mohammad Hamdy Ghanem
FShopOnWeb Une version F# d'eShopOnWeb par Sean G. Wright et Kyle McMaster