eShop-Beispielanwendungen wurden aktualisiert und nach https://github.com/dotnet/eShop verschoben. Dort wird die aktive Entwicklung weitergehen. Wir empfehlen außerdem die Anleitung zu zuverlässigen Web-App-Mustern zum Erstellen von Web-Apps mit Unternehmens-App-Mustern.
Beispielhafte ASP.NET Core-Referenzanwendung, bereitgestellt von Microsoft, die eine (monolithische) Anwendungsarchitektur und ein Bereitstellungsmodell mit einem einzigen Prozess demonstriert. Wenn Sie neu in der .NET-Entwicklung sind, lesen Sie den Leitfaden „Erste Schritte für Anfänger“.
Eine Liste häufig gestellter Fragen zu diesem Repository finden Sie hier.
Steve „ardalis“ Smith zeichnete im Oktober 2020 einen Livestream auf, der einen Überblick über die eShopOnWeb-Referenz-App gab.
Diese Referenzanwendung soll das kostenlose .PDF-Download-E-Book „Architecting Modern Web Applications with ASP.NET Core and Azure, aktualisiert auf ASP.NET Core 8.0“ unterstützen. Auch in den Formaten ePub/mobi verfügbar.
Sie können das Buch auch online in den .NET-Dokumenten hier lesen: https://docs.microsoft.com/dotnet/architecture/modern-web-apps-azure/
Das eShopOnWeb -Beispiel steht im Zusammenhang mit der Beispielanwendung eShopOnContainers, die sich in diesem Fall auf eine auf Microservices/Containern basierende Anwendungsarchitektur konzentriert. Allerdings ist eShopOnWeb im Hinblick auf seine aktuelle Funktionalität viel einfacher und konzentriert sich auf die traditionelle Entwicklung von Webanwendungen mit einer einzigen Bereitstellung.
Das Ziel dieses Beispiels besteht darin, einige der im E-Book beschriebenen Prinzipien und Muster zu demonstrieren. Es ist nicht als E-Commerce-Referenzanwendung gedacht und implementiert daher nicht viele Funktionen, die für eine echte E-Commerce-Anwendung offensichtlich und/oder wesentlich wären.
VERSIONEN
Der
main
führt derzeit ASP.NET Core 8.0 aus.Ältere Versionen sind markiert.
Die Homepage des Shops sollte so aussehen:
Die Azure Developer CLI ( azd
) ist ein entwicklerorientiertes Befehlszeilenschnittstellentool (CLI) zum Erstellen von Azure-Anwendungen.
Sie müssen es installieren, bevor Sie es mit der Azure Developer CLI ausführen und bereitstellen.
powershell - ex AllSigned - c " Invoke-RestMethod 'https://aka.ms/install-azd.ps1' | Invoke-Expression "
curl -fsSL https://aka.ms/install-azd.sh | bash
Und Sie können auch mit Paketmanagern wie Winget, Choco und Brew installieren. Weitere Informationen finden Sie in der Dokumentation: https://aka.ms/azure-dev/install.
Nachdem Sie sich mit dem folgenden Befehl angemeldet haben, können Sie die Anwendung mit der azd cli schnell bereitstellen und bereitstellen.
azd auth login
Führen Sie dann den Befehl azd init
aus, um die Umgebung zu initialisieren.
azd init -t dotnet-architecture/eShopOnWeb
Führen Sie azd up
aus, um alle Ressourcen für Azure bereitzustellen und den Code für diese Ressourcen bereitzustellen.
azd up
Geben Sie gemäß der Eingabeaufforderung einen env name
ein und wählen Sie subscription
und location
aus. Dies sind die erforderlichen Parameter, wenn Sie Ressourcen erstellen. Warten Sie einen Moment, bis die Ressourcenbereitstellung abgeschlossen ist, klicken Sie auf den Web-Endpunkt und Sie sehen die Startseite.
Hinweise:
Sie können das Beispiel auch direkt lokal ausführen (siehe unten).
Die meisten Funktionen der Website funktionieren nur, wenn die Webanwendung ausgeführt wird. Die Admin-Seite der Site ist jedoch darauf angewiesen, dass Blazor WebAssembly im Browser ausgeführt wird, und muss über die PublicApi-Webanwendung der Site mit dem Server kommunizieren. Sie müssen dieses Projekt auch ausführen. Sie können Visual Studio so konfigurieren, dass mehrere Projekte gestartet werden, oder einfach in einem Terminalfenster zum Ordner „PublicApi“ wechseln und von dort aus dotnet run
ausführen. Anschließend sollten Sie im Web-Ordner dotnet run --launch-profile Web
ausführen. Jetzt sollten Sie in der Lage sein, zu https://localhost:5001/
zu navigieren. Der Admin-Teil in Blazor ist über https://localhost:5001/admin
zugänglich
Beachten Sie, dass Sie bei diesem Ansatz die Anwendung manuell stoppen müssen, um die Lösung zu erstellen (andernfalls treten Dateisperrungsfehler auf).
Nach dem Klonen oder Herunterladen des Beispiels müssen Sie Ihre Datenbank einrichten. Um das Beispiel mit einer persistenten Datenbank zu verwenden, müssen Sie deren Entity Framework Core-Migrationen ausführen, bevor Sie die App ausführen können.
Sie können die Beispiele auch in Docker ausführen (siehe unten).
Standardmäßig verwendet das Projekt eine echte Datenbank. Wenn Sie eine In-Memory-Datenbank wünschen, können Sie die Datei appsettings.json
im Webordner hinzufügen
{
"UseOnlyInMemoryDatabase" : true
}
Stellen Sie sicher, dass Ihre Verbindungszeichenfolgen in appsettings.json
auf eine lokale SQL Server-Instanz verweisen.
Stellen Sie sicher, dass das Tool EF bereits installiert ist. Hier finden Sie Hilfe
dotnet tool update --global dotnet-ef
Öffnen Sie eine Eingabeaufforderung im Webordner und führen Sie die folgenden Befehle aus:
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
Diese Befehle erstellen zwei separate Datenbanken, eine für die Katalogdaten und Warenkorbinformationen des Geschäfts und eine für die Benutzeranmeldeinformationen und Identitätsdaten der App.
Führen Sie die Anwendung aus.
Wenn Sie die Anwendung zum ersten Mal ausführen, werden beide Datenbanken mit Daten gefüllt, sodass Sie Produkte im Store sehen sollten und Sie sich mit dem Konto [email protected] anmelden können.
Hinweis: Wenn Sie Migrationen erstellen müssen, können Sie diese Befehle verwenden:
-- 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
Dieses Projekt enthält einen .devcontainer
Ordner mit einer Entwicklungscontainerkonfiguration, mit der Sie einen Container als voll funktionsfähige Entwicklungsumgebung verwenden können.
Sie können den Entwicklungscontainer verwenden, um die App zu erstellen und auszuführen, ohne eines ihrer Tools lokal installieren zu müssen! Sie können in GitHub Codespaces oder der VS Code Dev Containers-Erweiterung arbeiten.
Weitere Informationen zur Verwendung des Entwicklungscontainers finden Sie in der Readme-Datei.
Sie können das Webbeispiel ausführen, indem Sie die folgenden Befehle im Stammordner (in dem sich die SLN-Datei befindet) ausführen:
docker-compose build
docker-compose up
Sie sollten in der Lage sein, Anfragen an „localhost:5106“ für das Webprojekt und „localhost:5200“ für das öffentliche API-Projekt zu stellen, sobald diese Befehle abgeschlossen sind. Wenn Sie Probleme haben, insbesondere mit der Anmeldung, versuchen Sie es mit einer neuen Gast- oder Inkognito-Browserinstanz.
Sie können die Anwendungen auch ausführen, indem Sie die Anweisungen in ihrer Dockerfile
-Datei im Stammverzeichnis jedes Projekts verwenden. Führen Sie diese Befehle erneut im Stammverzeichnis der Lösung aus (dort, wo sich die SLN-Datei befindet).
Wir haben einige großartige Beiträge aus der Community, und obwohl diese nicht von Microsoft gepflegt werden, möchten wir sie dennoch hervorheben.
eShopOnWeb VB.NET von Mohammad Hamdy Ghanem
FShopOnWeb Eine F#-Version von eShopOnWeb von Sean G. Wright und Kyle McMaster