eShop サンプル アプリケーションが更新され、https://github.com/dotnet/eShop に移動されました。そこでは活発な開発が続けられます。エンタープライズ アプリ パターンを使用して Web アプリを構築するための、信頼できる Web アプリ パターンのガイダンスもお勧めします。
Microsoft が提供するサンプル ASP.NET Core リファレンス アプリケーション。単一プロセス (モノリシック) アプリケーション アーキテクチャと展開モデルを示します。 .NET 開発が初めての場合は、「初心者向け入門」ガイドをお読みください。
このリポジトリに関するよくある質問のリストは、ここにあります。
Steve "ardalis" Smith は、2020 年 10 月に eShopOnWeb リファレンス アプリの概要を提供するライブ ストリームを録画しました。
このリファレンス アプリケーションは、無料の .PDF ダウンロード電子ブック「Architecting Modern Web Applications with ASP.NET Core and Azure, updated to ASP.NET Core 8.0」をサポートすることを目的としています。 ePub/mobi 形式でも利用できます。
この本は、.NET ドキュメントのオンライン ページでも読むことができます: https://docs.microsoft.com/dotnet/architecture/modern-web-apps-azure/
eShopOnWebサンプルは、eShopOnContainers サンプル アプリケーションに関連しており、この場合、マイクロサービス/コンテナベースのアプリケーション アーキテクチャに焦点を当てています。ただし、 eShopOnWebは現在の機能に関してははるかにシンプルで、単一のデプロイによる従来の Web アプリケーション開発に重点を置いています。
このサンプルの目的は、電子ブックで説明されている原則とパターンのいくつかを実証することです。これは、e コマースのリファレンス アプリケーションであることを意図したものではないため、実際の e コマース アプリケーションにとって明白かつ/または必須となる多くの機能は実装されていません。
バージョン
main
ブランチは現在 ASP.NET Core 8.0 を実行しています。古いバージョンにはタグが付けられています。
ストアのホームページは次のようになります。
Azure Developer CLI ( azd
) は、Azure アプリケーションを作成するための開発者中心のコマンド ライン インターフェイス (CLI) ツールです。
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
これらのコマンドは 2 つの別々のデータベースを作成します。1 つはストアのカタログ データとショッピング カート情報用で、もう 1 つはアプリのユーザー資格情報と ID データ用です。
アプリケーションを実行します。
アプリケーションを初めて実行すると、両方のデータベースにデータがシードされ、ストア内の製品が表示され、[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 コードスペースまたは VS Code Dev Containers 拡張機能で作業できます。
開発コンテナの使用方法の詳細については、readme を参照してください。
ルート フォルダー (.sln ファイルがある場所) から次のコマンドを実行すると、Web サンプルを実行できます。
docker-compose build
docker-compose up
これらのコマンドが完了すると、Web プロジェクトの場合は localhost:5106 に、パブリック API プロジェクトの場合は localhost:5200 にリクエストを実行できるようになります。特にログインに関して問題がある場合は、新しいゲストまたはシークレット ブラウザ インスタンスから試してください。
各プロジェクトのルートにあるDockerfile
ファイルにある指示を使用して、アプリケーションを実行することもできます。もう一度、ソリューションのルート (.sln ファイルがある場所) からこれらのコマンドを実行します。
コミュニティからの素晴らしい貢献がいくつかあり、これらは Microsoft によって管理されているわけではありませんが、それでも強調しておきたいと思います。
eShopOnWeb VB.NET by Mohammad Hamdy Ghanem
FShopOnWeb Sean G. Wright と Kyle McMaster による eShopOnWeb に対する F# の解釈