Microsoft eShopOnWeb ASP.NET Core Reference Application
The eShopOnWeb project is a sample application developed by Microsoft, designed to showcase the use of ASP.NET Core for building web applications. It serves as a reference for developers who want to understand single-process (monolithic) application architecture and deployment. This application is specifically tailored for those new to .NET development, providing a clear, practical way to get started.
Overview and Resources
This project is under continuous development and has been moved to the GitHub repository along with other eShop sample applications. Developers can access resources such as the Getting Started for Beginners guide and a list of Frequently Asked Questions to gain a deeper understanding.
Overview Video
For a visual introduction, Steve "ardalis" Smith has recorded a live stream overview of the eShopOnWeb reference app.
Supporting eBook
The eShopOnWeb application is accompanied by a free eBook titled Architecting Modern Web Applications with ASP.NET Core and Azure, which is updated to ASP.NET Core 8.0. This book is available in PDF, ePub, and mobi formats, and can also be read online at the .NET docs site. This literature provides a comprehensive discussion on modern web application architecture, further extending the educational value of the application.
Project Purpose and Features
eShopOnWeb is designed to illustrate various architectural principles and patterns expounded in the eBook, making it a practical learning tool rather than a complete eCommerce solution. Unlike its counterpart, the eShopOnContainers, which demonstrates microservices and container-based architecture, eShopOnWeb is more straightforward and focuses on traditional web application development.
Topics Covered
The eBook’s table of contents provides insights into:
- Characteristics of modern web applications
- Comparing traditional web apps vs. Single Page Applications (SPAs)
- Architectural principles
- Common web and client-side technologies
- ASP.NET Core MVC app development
- Data management
- Testing ASP.NET Core MVC apps
- Azure-hosted development processes
- Hosting recommendations for ASP.NET Core web apps
Running eShopOnWeb
Using the Azure Developer CLI
Developers can run the sample application using the Azure Developer CLI (azd
). This tool simplifies the process of provisioning and deploying Azure applications. Detailed setup instructions ensure a smooth execution on both Windows and Linux/MacOS environments, with additional support for package managers like winget, choco, and brew.
Running Locally
For developers interested in running the application locally, the key functions operate with only the web application active. However, the Admin page requires Blazor WebAssembly to communicate with the site's PublicApi web application. The guide offers steps for configuring the SQL Server and running the necessary commands to ensure a seamless local deployment.
Using Docker and Dev Container
For those who prefer containerization, eShopOnWeb supports running through Docker and a development container. Commands for setting up via Docker compose are provided, as well as instructions for utilizing a full-featured development environment via the dev container configuration.
Community Contributions
The project benefits significantly from community involvement, boasting extensions and variations such as:
- eShopOnWeb VB.NET by Mohammad Hamdy Ghanem
- FShopOnWeb, an F# variant by Sean G. Wright and Kyle McMaster
In summary, eShopOnWeb by Microsoft offers a foundational example of web application development with ASP.NET Core, serving as both an educational tool and a comprehensive reference for modern web architectures.