eShop 範例應用程式已更新並移至 https://github.com/dotnet/eShop。那裡將繼續積極發展。我們也推薦使用企業應用程式模式建立 Web 應用程式的可靠 Web 應用程式模式指南。
由 Microsoft 提供支援的範例 ASP.NET Core 參考應用程序,演示了單一進程(整體)應用程式體系結構和部署模型。如果您是 .NET 開發新手,請閱讀初學者入門指南。
有關此存儲庫的常見問題清單可以在此處找到。
Steve“ardalis”Smith 在 2020 年 10 月錄製了一段直播,概述了 eShopOnWeb 參考應用程式。
此參考應用程式旨在支援免費的 .PDF 下載電子書:使用 ASP.NET Core 和 Azure 建立現代 Web 應用程式(已更新至ASP.NET Core 8.0) 。也提供 ePub/mobi 格式。
您也可以在 .NET 文件的線上頁面中閱讀本書:https://docs.microsoft.com/dotnet/architecture/modern-web-apps-azure/
eShopOnWeb範例與 eShopOnContainers 範例應用程式相關,在這種情況下,eShopOnContainers 專注於基於微服務/容器的應用程式架構。然而, eShopOnWeb就其當前功能而言要簡單得多,並且專注於透過單一部署進行傳統 Web 應用程式開發。
此範例的目標是演示電子書中描述的一些原則和模式。它並不是一個電子商務參考應用程序,因此它沒有實現許多對於真正的電子商務應用程式來說顯而易見和/或必不可少的功能。
版本
main
分支目前運行 ASP.NET Core 8.0。舊版本已標記。
商店的主頁應該如下所示:
Azure 開發人員 CLI ( azd
) 是一個以開發人員為中心的命令列介面 (CLI) 工具,用於建立 Azure 應用程式。
您需要在使用 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
您也可以使用套件管理器進行安裝,例如 winget、choco 和brew。有關更多詳細信息,您可以按照文件:https://aka.ms/azure-dev/install。
使用以下命令登入後,您將能夠使用 azd cli 快速設定和部署應用程式。
azd auth login
然後,執行azd init
指令初始化環境。
azd init -t dotnet-architecture/eShopOnWeb
執行azd up
將所有資源預配到 Azure 並將程式碼部署到這些資源。
azd up
根據提示輸入env name
,並選擇subscription
和location
,這些是建立資源時必須的參數。稍等資源部署完成,點選Web端點即可看到首頁。
筆記:
您也可以直接在本機運行範例(請參閱下文)。
該網站的大部分功能只需運行 Web 應用程式即可使用。但是,網站的管理頁面依賴在瀏覽器中執行的 Blazor WebAssembly,並且它必須使用網站的 PublicApi Web 應用程式與伺服器進行通訊。您還需要運行該專案。您可以將 Visual Studio 配置為啟動多個項目,或者只需轉到終端機視窗中的 PublicApi 資料夾並從那裡運行dotnet run
。之後,您應該從 Web 資料夾執行dotnet run --launch-profile Web
。現在您應該可以瀏覽到https://localhost:5001/
。 Blazor 中的管理部分可透過https://localhost:5001/admin
訪問
請注意,如果您使用此方法,則需要手動停止應用程式才能建立解決方案(否則您將收到檔案鎖定錯誤)。
克隆或下載範例後,您必須設定資料庫。要將範例與持久性資料庫一起使用,您需要先執行其 Entity Framework Core 遷移,然後才能執行應用程式。
您也可以在 Docker 中執行範例(請參閱下文)。
預設情況下,該項目使用真實的資料庫。如果您想要記憶體資料庫,可以在 Web 資料夾中的appsettings.json
檔案中加入
{
"UseOnlyInMemoryDatabase" : true
}
確保appsettings.json
中的連線字串指向本機 SQL Server 執行個體。
確保工具 EF 已安裝。您可以在這裡找到一些幫助
dotnet tool update --global dotnet-ef
在 Web 資料夾中開啟命令提示字元並執行下列命令:
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
這些命令將創建兩個獨立的資料庫,一個用於商店的目錄資料和購物車信息,另一個用於應用程式的使用者憑證和身份資料。
運行應用程式。
第一次執行應用程式時,它會在兩個資料庫中新增數據,以便您可以看到商店中的產品,並且您應該能夠使用 [email protected] 帳戶登入。
注意:如果需要建立遷移,可以使用下列命令:
-- 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
該專案包含一個帶有開發容器配置的.devcontainer
資料夾,它允許您使用容器作為全功能的開發環境。
您可以使用開發容器來建置和運行應用程序,而無需在本地安裝任何工具!您可以使用 GitHub Codespaces 或 VS Code Dev Containers 擴充功能。
在其自述文件中了解有關使用開發容器的更多資訊。
您可以從根資料夾(.sln 檔案所在的位置)執行以下命令來執行 Web 範例:
docker-compose build
docker-compose up
這些命令完成後,您應該可以向 Web 專案的 localhost:5106 以及公用 API 專案的 localhost:5200 發出請求。如果您遇到任何問題,尤其是登入問題,請嘗試使用新的來賓或隱形瀏覽器實例。
您也可以使用每個專案根目錄下的Dockerfile
檔案中的說明來執行應用程式。再次從解決方案的根目錄(.sln 檔案所在的位置)執行這些命令。
我們從社群中得到了一些偉大的貢獻,雖然這些貢獻不是由 Microsoft 維護的,但我們仍然想強調它們。
eShopOnWeb VB.NET 作者:Mohammad Hamdy Ghanem
FShopOnWeb Sean G. Wright 和 Kyle McMaster 對 eShopOnWeb 的 F# 改造