Merge 3.1.1(release) to Main (#1583) * Fix functional tests of Marketing * remove mvc routing spa * move background task * restore background config * background * Add health check in Ordering.BackgroundTask project * add package version to dependencies.props * ordering.api error integrationevents * remove not needed code * Fix authentication in Ordering.SignalR * Create ReadMe.md * partial checkin trying to fix checkout process * add grpc basket * first approach * restore options and grpc calling from console app it's working * Partial checkin * fix grpc call from mobile bff to basket.api and add ordering, in ordering controller * migrate web bff to 3.0 and apply grcp in order controller * Add proto to catalog * Moved some files to ./src/ * Moved .env to src * partial checkin * web bff endpoint /api/v1/Basket working in grpc * refactoring the grpc client * refactored the grpc client * Update Dockerfiles for use /src as build context root * refactor mobile bff * Deleted unneeded Dockerfile * update dockerfiles * Fix mvc calls to grpc * temporal fix to get the order in local dbset of orders for UpdateOrderWhenBuyerAndPaymentMethodVerifiedDomainEventHandler.cs * add using * fix checkout process of mvc app * Migrate packages in preview7 to preview8 * fix identity server * standarize the productId type * format * Add missing key in appsettings * fix version problems with identity server * Add layers in docker for npm install * fix problems with spa adding items to basket * add polly for grpc calls * Fix identity server * fix tests of basket * fix unit test of basket * fix ordering tests * updated compose and 1st envoy config * updated config files * update to helm charts for grpc config * fixed ending 0 in values.yaml for catalog * Final charts tunning and allowing Linkerd Mesh to be used * update to net3 rc1 * Configuration of envoy routes and minor code fixes * missing word in comment :p * updated charts for local k8s deployment * Fixing some generic issues * Added web shoping agg to mesh * ApiGW added to mesh. Ingress updated for Linkerd * Final adjustments to make envoy work with ingress and remove Polly from http calls * Removing unneeded files. Making compatible FailingMiddleware & Healthchecks * Changes in compose config for docker-compose up running ok. Added volumes for data * Update dockerfile.develop to net3 * Readme updated to net3 * fixed path in azure devops build * Sort package references * Aling basket-data-test entry with base .yml * Remove unnecessary commands from dockerfiles * Add back logging traces referenced in the wiki * Remove string interpolation from logging * Change obsolete .ForSqlServerUseSequenceHiLo for .UseHiLo * Remove obsolete warning configuration * Replace obsolete IHostingEnvironment for IWebHostEnvironment * Remove obsolete references * Sort dependencies.props * Removed obsolete folders * Fix webstatus configuration for docker-compose * Update README.md * MVC working with SignalR without Envoy * Remove SignalR transport parameter on clients * Remove unsupported ServiceFabric folder * Remove obsolete folders * Reorganize project folders * Improve docker build cache usage * Add IdentityUrlExternal config in appsettings * Fix tests compilation errors * Run unit and integration tests from VS * Add required configuration * Fix to close issue #1162 * Add configuration value for running in Mac * Relocate/remove folders * Remove old test docs already in wiki * Move more obsolete files * Move auxiliary solution files to "to-fix" folder * Remove obsolete files/folders * Relocate mobile solutions, remove obsolete ones. * Rename script to create aks resource * Add comment to Create-DockerfileSolutionRestore.ps1 script * Remove deleted folder from .gitignore * Remove obsolete files * Make installation work in local kubernetes * Update README * Move/remove obsolete folders * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Streamline README, add links to Wiki * Minor README updates * Bold release notes * Fix SignalR + MVC through Envoy * Change dockerhub microsoft images to mcr * Fix services test containers * Fix SignalR + SPA through Envoy * Fix paths for moved folders * Comment out windows jobs * Fix healthchecks configuration values * Configure Envoy to forward SignalR notifications * Unify dashboard setup yaml * Simplify ingress setup files * Explore adding CSP * Update to 3.1 - Fix test to work on Catalog.API controller, using in-memory database * Don't force LongPolling for SignalR * Update base images to 3.1 * Upgrade Locations to 3.1 * Relocate network-related scripts * tls support * Update packages * Add missing await * Update to IHost - Return IHost from CreateHostBuilder - Register AutoFac with UseServiceProviderFactory() in CreateHostBuilder * Add back looging to Seq and Logstash * Fix services names in azure-pipelines * Update README.md * fixed https://github.com/dotnet-architecture/eShopOnContainers/issues/1181 * Fix npm & docker build warnings #1224 Update Angular 7 to 8 to fix warnings and vulnerabilities * Diferentiate displayNames * Add project-directory param for compose * Add -f parameter * Add cache use comment to Dockerfiles to force PR validation * minor change to requeue DevOps validation * User internal docker dns names * Update README.md * Error fixed, applied the cookie policy to lax mode * disable windows containers in buildimages and multiarch yaml (#1287) * disable windows containers in buildimages and multiarch yaml * fix space * disabled delopy in windows and prefixes * Change extension method to load the configuration * fix authorization in webhooks api * Remove obsolete middleware UseApplicationInsights * Fix/include pipeline yml in trigger (#1290) * add trigger to include pipelines * Update build/azure-devops/webhooks-client/azure-pipelines.yml Co-Authored-By: Miguel Veloso <mvelosop@gmail.com> Co-authored-by: Miguel Veloso <mvelosop@gmail.com> * Executed npm audit fix and npm update * Executed npm audit fix * correct call order of "app.UseCors" * Updated readme with new book cover icon * Bump npm-registry-fetch from 4.0.2 to 4.0.5 in /src/Web/WebSPA (#1361) Bumps [npm-registry-fetch](https://github.com/npm/registry-fetch) from 4.0.2 to 4.0.5. - [Release notes](https://github.com/npm/registry-fetch/releases) - [Changelog](https://github.com/npm/npm-registry-fetch/blob/latest/CHANGELOG.md) - [Commits](https://github.com/npm/registry-fetch/commits) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump lodash from 4.17.15 to 4.17.19 in /src/Web/WebSPA (#1365) Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump jquery from 3.4.1 to 3.5.0 in /src/Web/WebSPA (#1313) Bumps [jquery](https://github.com/jquery/jquery) from 3.4.1 to 3.5.0. - [Release notes](https://github.com/jquery/jquery/releases) - [Commits](https://github.com/jquery/jquery/compare/3.4.1...3.5.0) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump websocket-extensions from 0.1.3 to 0.1.4 in /src/Web/WebSPA (#1336) Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4. - [Release notes](https://github.com/faye/websocket-extensions-node/releases) - [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md) - [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Updated readme.md with mslearn link * Moved mslearn section on top * Fixed typo in README (#1375) * Shifting MS learn section on top. * Fix/1370 - Updated script related changes for helm 3.x and k8s 1.16.x (#1378) * Fix for helm 3 and k8s 1.16 * Inclusion of archived directory under k8s * separate deploy-all powershell script for local Mac OS deployment. * Bump elliptic from 6.4.1 to 6.5.3 in /src/Web/WebSPA (#1381) Bumps [elliptic](https://github.com/indutny/elliptic) from 6.4.1 to 6.5.3. - [Release notes](https://github.com/indutny/elliptic/releases) - [Commits](https://github.com/indutny/elliptic/compare/v6.4.1...v6.5.3) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Swamy/remove unused using and refactoring entity classes (#1371) * Removed Unused Usings * Code Refactoring for readbility. Added spaces and moved the classes to separate file * Removed unused usings from ModelDTOs (#1373) * Updated dot-prop version to 5.1.1 (#1382) * Update README.md * Update README.md * Updated Readme. * Fixed firewall rules check and improved the script the check shall be like ~ Get-NetFirewallRule -DisplayName eShopOnContainers-* -ErrorAction Stop * Updated serialize-javascript version to 3.1.0 (#1396) * Update "minimist" version to 1.2.5 (#1398) * #1397: Replaced deprecated docker.for.win.localhost by host.docker.internal in src/.env (#1400) * Updated Readme (#1402) Fixed sentence structure in Readme. Changed "and a several" to "with several." * CatalogService: Fix issue with Status set when items list is empty (#1304) * Fix issue with Status set when items list is empty * Change method Count() call to Count property Co-authored-by: Dmytro Hridin <v-dmytro.hridin@lionbridge.com> * refactored Equals() method on ValueObject (#1316) * Fix/1403and1404 removed duplicate Key SubscriptionClientName and added app.UseAuthorization() call (#1406) * #1403 removed duplicate Key SubscriptionClientName Removed duplicate key SubscriptionClientName from Tests/Services/Application.FunctionalTests/Services/Marketing/appsettings.json and sorted its content in asc order. * #1404 Added app.UseAuthorization() call Added app.UseAuthorization() call to BasketTestsStartup, LocationsTestsStartup, and MarketingTestsStartup to fix failed unit tests IntegrationEventsScenarios.Post_update_product_price_and_catalog_and_basket_list_modified and MarketingScenarios.Set_new_user_location_and_get_location_campaign_by_user_id (see #1404) * Fix for Campaigns exception and SignalR 401 Unauthorized (#1374) * update API Gateway - /locations-api/ @ webmarketing/envoy.yaml * updated signalr services - envoy: webmarketingapigw - latest client: webmvc - service hub: ordering-signalrhub Co-authored-by: hfz-r <hafiz.roslan@hartalega.com.my> * Mis-Spelled 'client' (#1411) * fix parameter error in multiarch job (#1413) * Private readonly string changed to private const string (#1288) * fix disposing of direct instantiated objects in calalog service #1392 (#1395) * Updated version of different packages. (#1420) * for issue #1423: changed literal string "OpenIdConnect" to constant string (#1424) Co-authored-by: Jeremiah Flaga <j.flaga@arcanys.com> * Updated node-fetch package version. (#1426) * Updated node-fetch package version. * Updated node-forge version. * Fixes #1474: webspa container does not build when running docker-compose up.Updated sha hashes in packages-lock.json (#1475) * Change ReadAllBytes to ReadAllBytesAsync in PicController (#1425) * Fixed parameter bug create resource script (#1494) * Fixed invalid number format in webspa (#1496) * Updated package version of webpack-subresource-integrity (#1497) * Fixed #1495 bug : UseLoadTest missing claimsType (#1508) * Update ByPassAuthMiddleware.cs * Update ByPassAuthMiddleware.cs * remove WebMVC/ByPassAuthMiddleware duplicate cliam * remove Ordering.API/ByPassAuthMid duplicate cliam * remove Location.API/ByPassAuthMid duplicate cliam * remove Market.API/ByPassAuthMid duplicate cliam * change webmvc bypassauth: claimType of sub * change ordering bypassauth: claimType of sub * change location bypassauth: claimType of sub * change market bypassauth: claimType of sub * Update solution items (#1515) Co-authored-by: Manuel Cañete <mcanete@protonmail.com> * Updated solution file. (#1514) * Fixed #1518 bug (#1520) * Update CatalogContextModelSnapshot.cs * Update CatalogContextSeed.cs * Modify CSV data * Give PictureFileName assignment * Fix PurchaseUrl port in WebSPA appsettings.json (#1525) * Updated highlight version to latest. (#1531) * Finished sentence and fixed spelling mistake. (#1536) * Updated credit card default exipiration value. (#1535) * Fix login issue Exception: Correlation failed (#1516) Fix samesite issue when running eShop from docker-compose locally as by default http protocol is being used Refer to https://github.com/dotnet-architecture/eShopOnContainers/issues/1391 * Updated getting started section in readme file. (#1538) * Updated get started section in readme file. * Updated docker-compose specific link * Updated instructions in the readme file. * Updated packages to latest version. (#1539) * Update README.md * fix(#1261): remove helm chart indent for config map glob (#1533) * Updated ini package in package-lock.json file. (#1541) * Removed unnecessary await (#1546) * 1. remove unused using, 2. Reorganized the using, 3. Moved the class into separate file and 4. Added line and spacing formats (#1532) * Removed Unused Using and Reorganized the Using * Removed unused using, Reorganized using, moved the class to separate file, removed commented code in Catalog.API * Revert "Removed unused using, Reorganized using, moved the class to separate file, removed commented code in Catalog.API" This reverts commit 34241c430619b3b0bbeaabafa44c078c859237c4. * Removed unused using and reorganized the using inside "Services" folder * Removed Unused using and reoganized the using * Refactor Webhooks.API * Removed unused using and reorganized using inside Catalog.API * Swamy/remove unused using and refactor the code (#1552) * Removed Unused Using and Reorganized the Using * Removed unused using, Reorganized using, moved the class to separate file, removed commented code in Catalog.API * Revert "Removed unused using, Reorganized using, moved the class to separate file, removed commented code in Catalog.API" This reverts commit 34241c430619b3b0bbeaabafa44c078c859237c4. * Removed unused using and reorganized the using inside "Services" folder * Removed Unused using and reoganized the using * Refactor Webhooks.API * Removed unused using and reorganized using inside Catalog.API * Refactoring * Removed unsed using * Added line break just to differentiate between the messages * Swamy/remove unused using and refactor the code (#1555) * Removed Unused Using and Reorganized the Using * Removed unused using, Reorganized using, moved the class to separate file, removed commented code in Catalog.API * Revert "Removed unused using, Reorganized using, moved the class to separate file, removed commented code in Catalog.API" This reverts commit 34241c430619b3b0bbeaabafa44c078c859237c4. * Removed unused using and reorganized the using inside "Services" folder * Removed Unused using and reoganized the using * Refactor Webhooks.API * Removed unused using and reorganized using inside Catalog.API * Refactoring * Removed unsed using * Added line break just to differentiate between the messages * Removed unused usings * Simple Refactoring * Fixed Issue #1410 (#1560) Added IdentityUrlExternal to src\Services\Ordering\Ordering.FunctionalTests\appsettings.json; sorted the properties * Small Refactoring (#1558) * Small-Formatting-Refactoring (#1564) * Swamy/01jan2021-small-refactoring (#1570) * Update Startup.cs * Removed commented code * Update UrlsConfig.cs * Small Refactoring * Removed Commented Code * Small Refactoring * Removes dotnet.myget.org NuGetPackage feed references (#1576) * Removed Nuget package feed * Removed unused System.ValueTuple package * Downloadgraded Microsoft.AspNetCore.Hosting.Abstractions package * Removed unused package * Downgraded System.IO.Compression.ZipFile package * Used Microsoft.AspNetCore.DataProtection.StackExchangeRedis package * Swamy/04 jan2021-small-refactoring (#1571) * Small Refactoring inside IntegrationEventLogEF * Small Refactoring inside BuildingBlocks folder * Fixes #1581: Fixed total decimal place issue and User hover menu display/usability issue. (#1582) * Swamy/15jan2021 small refactoring (#1580) * Small Refactoring inside Basket Service folder * Small Refactoring * Incorrect ContentPage.ToolbarItems in a TabbedPage (#1348) Incorrect ContentPage.ToolbarItems in a TabbedPage Co-authored-by: Erik Pique <epique@plainconcepts.com> Co-authored-by: ericuss <etorre@gmail.com> Co-authored-by: eiximenis <etomas@gmail.com> Co-authored-by: Miguel Veloso <mvelosop@gmail.com> Co-authored-by: Miguel Veloso <mveloso@plainconcepts.com> Co-authored-by: ericuss <etorreg@gmail.com> Co-authored-by: Christian Morgenthaler <c.morgenthaler@outlook.de> Co-authored-by: Sumit Ghosh <13281246+sughosneo@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sander Holvoet <holvoetsander@hotmail.com> Co-authored-by: Sumit Ghosh <sumit.ghosh@neudesic.com> Co-authored-by: Viswanatha Swamy <vishipayyallore@yahoo.com> Co-authored-by: Mark Harwood <47503138+markharwood101@users.noreply.github.com> Co-authored-by: edmondshtogu <edmondshtogu@gmail.com> Co-authored-by: InstanceFactory <InstanceFactory@users.noreply.github.com> Co-authored-by: Yosef Herskovitz <34112131+H3RSKO@users.noreply.github.com> Co-authored-by: Dmytro Hridin <dmytro.hridin@gmail.com> Co-authored-by: Dmytro Hridin <v-dmytro.hridin@lionbridge.com> Co-authored-by: André Silva <andrefilipegsilva@outlook.com> Co-authored-by: hfz-r <39443205+hfz-r@users.noreply.github.com> Co-authored-by: hfz-r <hafiz.roslan@hartalega.com.my> Co-authored-by: Majid Ali Khan Quaid <contactmakq@gmail.com> Co-authored-by: Javier Vela <fjvela@gmail.com> Co-authored-by: Facundo La Rocca <facundo_larocca@yahoo.com.ar> Co-authored-by: Nabil Sedoud <nsedoud@gmail.com> Co-authored-by: jeremiahflaga <flaga.jeremiah@gmail.com> Co-authored-by: Jeremiah Flaga <j.flaga@arcanys.com> Co-authored-by: Wojciech Rak <wojciechrak@users.noreply.github.com> Co-authored-by: Zakaria <23211915+zakaria-c@users.noreply.github.com> Co-authored-by: ansonzhang <3143422472@qq.com> Co-authored-by: m-knet <10815022+m-knet@users.noreply.github.com> Co-authored-by: Manuel Cañete <mcanete@protonmail.com> Co-authored-by: n-stefan <38526229+n-stefan@users.noreply.github.com> Co-authored-by: Gerard Gunnewijk <gerard.gunnewijk@live.nl> Co-authored-by: Yingting Huang <huangyingting@outlook.com> Co-authored-by: Mads Rosenberg <Rosenberg96@users.noreply.github.com> Co-authored-by: Gur Galler <35164039+GurGaller@users.noreply.github.com> Co-authored-by: Hetal Kapadia <31979831+hetal-kapadia@users.noreply.github.com> Co-authored-by: william-keller <kellerwilliam2011@gmail.com>
3 года назад История
README.md

eShop logo

.NET Microservices Sample Reference Application

Sample .NET Core reference application, powered by Microsoft, based on a simplified microservices architecture and Docker containers.

Azure DevOps - Build Status

Image Status Image Status
Api Gateway (base) Api Gateways base image Shopping Aggregator (Web) Web Shopping Aggregator
Basket API Basket API Shopping Aggregator (Mobile) Mobile Shopping Aggregator
Catalog API Catalog API Web Client (MVC) WebMVC Client
Identity API Identity API Web Client (SPA) WebSPA Client
Location API Location API Web Status (Health) Web Status
Marketing API Marketing API Webhooks API Webhooks API
Ordering API Ordering API Webhooks Client Webhooks demo client
Payment API Payment API

Dev branch contains the latest beta code and their images are tagged with :linux-dev in our Docker Hub

Getting Started

Make sure you have installed and configured docker in your environment. After that, you can run the below commands from the /src/ directory and get started with the eShopOnContainers immediately.

docker-compose build
docker-compose up

You should be able to browse different components of the application by using the below URLs :

Web Status : http://host.docker.internal:5107/
Web MVC :  http://host.docker.internal:5100/
Web SPA :  http://host.docker.internal:5104/

Note: If you are running this application in macOS then use docker.for.mac.localhost as DNS name in .env file and the above URLs instead of host.docker.internal.

Below are the other avenues to setup eShopOnContainers.

Basic scenario

The basic scenario can be run locally using docker-compose, and also deployed to a local Kubernetes cluster. Refer to these Wiki pages to Get Started:

Advanced scenario

The Advanced scenario can be run only in a Kubernetes cluster. Currently this scenario is the same as a basic scenario with the following differences:

In the future more features will be implemented in the advanced scenario.

IMPORTANT NOTES!

You can use either the latest version of Visual Studio or simply Docker CLI and .NET CLI for Windows, Mac and Linux.

Note for Pull Requests (PRs): We accept pull request from the community. When doing it, please do it onto the DEV branch which is the consolidated work-in-progress branch. Do not request it onto master branch.

NEWS / ANNOUNCEMENTS Do you want to be up-to-date on .NET Architecture guidance and reference apps like eShopOnContainers? –> Subscribe by “WATCHING” this new GitHub repo: https://github.com/dotnet-architecture/News

Updated for .NET Core 3.1 (LTS)

eShopOnContainers is updated to .NET Core 3.1 “wave” of technologies. Not just compilation but also new recommended code in EF Core, ASP.NET Core, and other new related versions with several significant changes.

See more details in the Release notes wiki page.

PLEASE Read our branch guide to know about our branching policy

DISCLAIMER

IMPORTANT: The current state of this sample application is BETA, because we are constantly evolving towards newly released technologies. Therefore, many areas could be improved and change significantly while refactoring the current code and implementing new features. Feedback with improvements and pull requests from the community will be highly appreciated and accepted.

Architecture overview

This reference application is cross-platform at the server and client side, thanks to .NET Core services capable of running on Linux or Windows containers depending on your Docker host, and to Xamarin for mobile apps running on Android, iOS or Windows/UWP plus any browser for the client web apps. The architecture proposes a microservice oriented architecture implementation with multiple autonomous microservices (each one owning its own data/db) and implementing different approaches within each microservice (simple CRUD vs. DDD/CQRS patterns) using Http as the communication protocol between the client apps and the microservices and supports asynchronous communication for data updates propagation across multiple services based on Integration Events and an Event Bus (a light message broker, to choose between RabbitMQ or Azure Service Bus, underneath) plus other features defined at the roadmap.

Related documentation and guidance

You can find the related reference Guide/eBook focusing on architecting and developing containerized and microservice based .NET Applications (download link available below) which explains in detail how to develop this kind of architectural style (microservices, Docker containers, Domain-Driven Design for certain microservices) plus other simpler architectural styles, like monolithic apps that can also live as Docker containers.

There are also additional eBooks focusing on Containers/Docker lifecycle (DevOps, CI/CD, etc.) with Microsoft Tools, already published plus an additional eBook focusing on Enterprise Apps Patterns with Xamarin.Forms. You can download them and start reviewing these Guides/eBooks here:

Architecting & Developing Containers Lifecycle & CI/CD App patterns with Xamarin.Forms
Download PDF Download PDF Download PDF

For more free e-Books check out .NET Architecture center. If you have an e-book feedback, let us know by creating a new issue here: https://github.com/dotnet-architecture/ebooks/issues

Are you new to microservices and cloud-native development?

Take a look at the free course Create and deploy a cloud-native ASP.NET Core microservice on MS Learn. This module explains microservices concepts, cloud-native technologies, and reduce the friction in getting started with eShopOnContainers.

Read further

Sending feedback and pull requests

Read the planned Roadmap within the Wiki for further info about possible new implementations and provide feedback at the ISSUES section if you’d like to see any specific scenario implemented or improved. Also, feel free to discuss on any current issue.

Описание

Cross-platform .NET sample microservices and container based application that runs on Linux Windows and macOS. Powered by .NET 5, Docker Containers and Azure Kubernetes Services. Supports Visual Studio, VS for Mac and CLI based environments with Docker CLI, dotnet CLI, VS Code or any other code editor.

Конвейеры
0 успешных
0 с ошибкой