Os aplicativos de amostra do eShop foram atualizados e movidos para https://github.com/dotnet/eShop. O desenvolvimento ativo continuará lá. Também recomendamos a orientação de padrões de aplicativos Web confiáveis para criar aplicativos Web com padrões de aplicativos corporativos.
Exemplo de aplicativo de referência ASP.NET Core, desenvolvido pela Microsoft, demonstrando uma arquitetura de aplicativo e um modelo de implantação de processo único (monolítico). Se você é novo no desenvolvimento .NET, leia o guia Primeiros passos para iniciantes.
Uma lista de perguntas frequentes sobre este repositório pode ser encontrada aqui.
Steve "ardalis" Smith gravou uma transmissão ao vivo fornecendo uma visão geral do aplicativo de referência eShopOnWeb em outubro de 2020.
Este aplicativo de referência destina-se a oferecer suporte ao e-book gratuito para download em .PDF: Architecting Modern Web Applications with ASP.NET Core and Azure, update to ASP.NET Core 8.0 . Também disponível nos formatos ePub/mobi.
Você também pode ler o livro nas páginas on-line da documentação do .NET aqui: https://docs.microsoft.com/dotnet/architecture/modern-web-apps-azure/
O exemplo eShopOnWeb está relacionado ao aplicativo de exemplo eShopOnContainers que, nesse caso, se concentra em uma arquitetura de aplicativo baseada em microsserviços/contêineres. No entanto, eShopOnWeb é muito mais simples em relação à sua funcionalidade atual e concentra-se no desenvolvimento tradicional de aplicações Web com uma única implantação.
O objetivo deste exemplo é demonstrar alguns dos princípios e padrões descritos no e-book. Ele não pretende ser um aplicativo de referência de comércio eletrônico e, como tal, não implementa muitos recursos que seriam óbvios e/ou essenciais para um aplicativo de comércio eletrônico real.
VERSÕES
A ramificação
main
está executando atualmente o ASP.NET Core 8.0.Versões mais antigas estão marcadas.
A página inicial da loja deve ficar assim:
A CLI do Desenvolvedor do Azure ( azd
) é uma ferramenta de interface de linha de comando (CLI) centrada no desenvolvedor para criar aplicativos do Azure.
Você precisa instalá-lo antes de executar e implantar com a CLI do Desenvolvedor do Azure.
powershell - ex AllSigned - c " Invoke-RestMethod 'https://aka.ms/install-azd.ps1' | Invoke-Expression "
curl -fsSL https://aka.ms/install-azd.sh | bash
E você também pode instalar com gerenciadores de pacotes, como winget, choco e brew. Para mais detalhes, você pode seguir a documentação: https://aka.ms/azure-dev/install.
Depois de fazer login com o comando a seguir, você poderá usar o azd cli para provisionar e implantar rapidamente o aplicativo.
azd auth login
Em seguida, execute o comando azd init
para inicializar o ambiente.
azd init -t dotnet-architecture/eShopOnWeb
Execute azd up
para provisionar todos os recursos para o Azure e implantar o código nesses recursos.
azd up
De acordo com o prompt, insira um env name
e selecione subscription
e location
, esses são os parâmetros necessários ao criar recursos. Aguarde um momento até que a implantação do recurso seja concluída, clique no endpoint da web e você verá a página inicial.
Notas:
Você também pode executar o exemplo diretamente localmente (veja abaixo).
A maior parte da funcionalidade do site funciona apenas com o aplicativo da web em execução. No entanto, a página Admin do site depende do Blazor WebAssembly em execução no navegador e deve se comunicar com o servidor usando o aplicativo Web PublicApi do site. Você também precisará executar este projeto. Você pode configurar o Visual Studio para iniciar vários projetos ou simplesmente ir para a pasta PublicApi em uma janela de terminal e executar dotnet run
a partir daí. Depois disso, na pasta Web, você deve executar dotnet run --launch-profile Web
. Agora você deve conseguir navegar para https://localhost:5001/
. A parte administrativa do Blazor pode ser acessada por https://localhost:5001/admin
Observe que se você usar essa abordagem, será necessário interromper o aplicativo manualmente para criar a solução (caso contrário, ocorrerão erros de bloqueio de arquivo).
Após clonar ou baixar a amostra você deve configurar seu banco de dados. Para usar o exemplo com um banco de dados persistente, você precisará executar as migrações do Entity Framework Core antes de poder executar o aplicativo.
Você também pode executar os exemplos no Docker (veja abaixo).
Por padrão, o projeto usa um banco de dados real. Se desejar um banco de dados na memória, você pode adicionar o arquivo appsettings.json
na pasta Web
{
"UseOnlyInMemoryDatabase" : true
}
Certifique-se de que suas cadeias de conexão em appsettings.json
apontem para uma instância local do SQL Server.
Certifique-se de que a ferramenta EF já esteja instalada. Você pode encontrar alguma ajuda aqui
dotnet tool update --global dotnet-ef
Abra um prompt de comando na pasta Web e execute os seguintes comandos:
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
Esses comandos criarão dois bancos de dados separados, um para os dados do catálogo da loja e informações do carrinho de compras e outro para as credenciais do usuário e dados de identidade do aplicativo.
Execute o aplicativo.
Na primeira vez que você executar o aplicativo, ele semeará ambos os bancos de dados com dados de forma que você verá os produtos na loja e poderá fazer login usando a conta [email protected].
Observação: se precisar criar migrações, você poderá usar estes comandos:
-- 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
Este projeto inclui uma pasta .devcontainer
com uma configuração de contêiner de desenvolvimento, que permite usar um contêiner como um ambiente de desenvolvimento completo.
Você pode usar o contêiner de desenvolvimento para criar e executar o aplicativo sem precisar instalar nenhuma de suas ferramentas localmente! Você pode trabalhar em GitHub Codespaces ou na extensão VS Code Dev Containers.
Saiba mais sobre como usar o contêiner de desenvolvimento em seu leia-me.
Você pode executar a amostra da Web executando estes comandos na pasta raiz (onde o arquivo .sln está localizado):
docker-compose build
docker-compose up
Você poderá fazer solicitações para localhost:5106 para o projeto da Web e localhost:5200 para o projeto de API pública assim que esses comandos forem concluídos. Se você tiver algum problema, especialmente com o login, tente a partir de um novo convidado ou de uma instância anônima do navegador.
Você também pode executar os aplicativos usando as instruções localizadas no arquivo Dockerfile
na raiz de cada projeto. Novamente, execute esses comandos na raiz da solução (onde o arquivo .sln está localizado).
Temos ótimas contribuições da comunidade e, embora não sejam mantidas pela Microsoft, ainda queremos destacá-las.
eShopOnWeb VB.NET por Mohammad Hamdy Ghanem
FShopOnWeb Uma versão F# do eShopOnWeb por Sean G. Wright e Kyle McMaster