Introduction to eShopOnAbp
eShopOnAbp is a reference project designed for developers who are interested in building microservice solutions using the ABP Framework. This project acts as a valuable resource for those looking to understand the microservice architecture and its implementation using modern tools and technologies.
For more in-depth information, you can explore the blog post or experience the project through a live demo available at eShopOnAbp Live Demo.
How to Run eShopOnAbp
Running eShopOnAbp can be done through Visual Studio or by utilizing a developer tool called Microsoft Tye, which simplifies the development, testing, and deployment of microservices and distributed applications.
Requirements
To get started with eShopOnAbp, ensure the following are installed on your system:
- .NET 6.0 Runtime (necessary for Tye)
- .NET 8.0 SDK
- Docker
- Yarn v1.20+ (excluding v2) or npm v6+ (usually included with Node.js)
Running Instructions
-
Clone the Repository: Navigate to eShopOnAbp GitHub and clone the project repository to your local machine.
-
Install Tye: Install Microsoft Tye by following the instructions provided in their Getting Started Guide.
dotnet tool update --global Microsoft.Tye --prerelease
-
Create Environment File: Rename the
.env.example
file to.env
and input your PayPal ClientID and Secret. -
Start the Application: Run the script
run-tye.ps1
to launch the application. -
Monitoring: Once the applications are up, use the Tye dashboard to monitor them at
http://localhost:8000
.-
If your applications keep restarting, the issue might be related to SSL certificates. Refer to the application logs and check the Powershell execution policy:
Get-ExecutionPolicy -list Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
Visit the Microsoft Powershell documentation for further guidance.
-
-
Start Angular Application: With backend services running, navigate to the Angular application directory and start it using:
cd apps/angular yarn start
Handling Certificate Expiration
Encountering an error due to expired certificates can be resolved by generating a new one. Delete etc/dev-cert/localhost.pfx
and manually execute create-certificate.ps1
or re-run the setup with run-tye.ps1
.
Project Roadmap
Version 1.0 Highlights
- Created a blank microservice solution, deployment scenarios, and business services.
- Integrated PayPal for payments, and developed the Basket, Catalog, and Order services.
- Docker image creation and Helm deployment for local Kubernetes clusters are supported.
- Public Web Gateway switched from Ocelot to YARP, with gRPC used for the Catalog microservice.
- Administrative capabilities for managing products and orders via a dashboard.
- Deployment available on Azure Kubernetes Service.
Version 2.0 Highlights
- Added a product-detail page with components for comments and ratings via CMS-kit.
- Transitioned from IdentityServer to Keycloak in AuthServer.
- Upcoming features include redesigned authorization/permission management and the integration of a new sample microservice in GoLang, or alternatives like Python or Java.
Documentation Plans
An e-book is planned to provide a detailed explanation of the solution.
Current Architecture Visual
Community Engagement
The ABP Community hosted a meetup about the eShopOnAbp project, which can be viewed here.
eShopOnAbp stands as an exemplary model for developers venturing into the world of microservices with the ABP Framework, offering comprehensive guides, tools, and support to streamline the process.