Примеры приложений eShop были обновлены и перемещены на https://github.com/dotnet/eShop. Там продолжится активное развитие. Мы также рекомендуем руководство по шаблонам надежных веб-приложений для создания веб-приложений с использованием шаблонов корпоративных приложений.
Пример эталонного приложения ASP.NET Core на базе Microsoft, демонстрирующий однопроцессную (монолитную) архитектуру приложения и модель развертывания. Если вы новичок в разработке .NET, прочтите руководство «Начало работы для начинающих».
Список часто задаваемых вопросов об этом репозитории можно найти здесь.
Стив «ardalis» Смит записал прямую трансляцию с обзором эталонного приложения eShopOnWeb в октябре 2020 года.
Это эталонное приложение предназначено для поддержки бесплатной загрузки электронной книги в формате PDF: «Архитектура современных веб-приложений с помощью ASP.NET Core и Azure, обновленной до ASP.NET Core 8.0» . Также доступно в форматах ePub/mobi.
Вы также можете прочитать книгу на онлайн-страницах документации .NET здесь: https://docs.microsoft.com/dotnet/architecture/modern-web-apps-azure/
Пример eShopOnWeb связан с примером приложения eShopOnContainers, которое в данном случае фокусируется на архитектуре приложения на основе микросервисов/контейнеров. Однако eShopOnWeb намного проще в отношении своей текущей функциональности и фокусируется на традиционной разработке веб-приложений с помощью одного развертывания.
Цель этого примера — продемонстрировать некоторые принципы и закономерности, описанные в электронной книге. Оно не предназначено для использования в качестве эталонного приложения для электронной коммерции и поэтому не реализует многие функции, которые были бы очевидны и/или необходимы для реального приложения для электронной коммерции.
ВЕРСИИ
В
main
ветке в настоящее время используется ASP.NET Core 8.0.Старые версии отмечены тегами.
Домашняя страница магазина должна выглядеть так:
Azure Developer 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
, это необходимые параметры при создании ресурсов. Подождите немного, пока развертывание ресурса завершится, щелкните конечную веб-точку, и вы увидите домашнюю страницу.
Примечания:
Вы также можете запустить образец непосредственно локально (см. ниже).
Большая часть функций сайта работает только при работающем веб-приложении. Однако страница администрирования сайта использует Blazor WebAssembly, работающую в браузере, и должна взаимодействовать с сервером с помощью веб-приложения PublicApi сайта. Вам также нужно будет запустить этот проект. Вы можете настроить Visual Studio для запуска нескольких проектов или просто перейти в папку PublicApi в окне терминала и запустить оттуда dotnet run
. После этого из папки Web следует запустить dotnet run --launch-profile Web
. Теперь вы сможете перейти по адресу https://localhost:5001/
. Административная часть в Blazor доступна по адресу https://localhost:5001/admin
Обратите внимание: если вы используете этот подход, вам придется вручную остановить приложение, чтобы построить решение (в противном случае вы получите ошибки блокировки файлов).
После клонирования или загрузки образца вам необходимо настроить базу данных. Чтобы использовать образец с постоянной базой данных, вам потребуется выполнить миграцию Entity Framework Core, прежде чем вы сможете запустить приложение.
Вы также можете запустить примеры в Docker (см. ниже).
По умолчанию проект использует реальную базу данных. Если вам нужна база данных в памяти, вы можете добавить файл appsettings.json
в веб-папку.
{
"UseOnlyInMemoryDatabase" : true
}
Убедитесь, что строки подключения в appsettings.json
указывают на локальный экземпляр SQL Server.
Убедитесь, что инструмент EF уже установлен. Вы можете найти помощь здесь
dotnet tool update --global dotnet-ef
Откройте командную строку в папке «Веб» и выполните следующие команды:
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):
docker-compose build
docker-compose up
После выполнения этих команд вы сможете отправлять запросы на localhost:5106 для веб-проекта и на localhost:5200 для проекта Public API. Если у вас возникли проблемы, особенно с входом в систему, попробуйте использовать новый гостевой браузер или браузер в режиме инкогнито.
Вы также можете запускать приложения, используя инструкции, расположенные в файле Dockerfile
в корне каждого проекта. Опять же, запустите эти команды из корня решения (где находится файл .sln).
У нас есть большой вклад сообщества, и хотя он не поддерживается Microsoft, мы все равно хотим выделить его.
eShopOnWeb VB.NET от Мохаммада Хамди Ганема
FShopOnWeb Взгляд F# на eShopOnWeb от Шона Г. Райта и Кайла Макмастера