


In order to promote .Net Core, Microsoft provides us with an open source Demo-eShopOnContainers, which is developed using the Net Core framework and is cross-platform (covering almost all platforms , windows, mac, linux, android, ios), based on microservicesarchitecture, small applications running in containers, which not only show. The cross-platform nature of Net Core also demonstrates the power of VS2017. All codes are developed under VS2017. As can be seen from the name, this is an electronic store application running on a container. Using the cross-platform nature of Docker, we can "build once, run anywhere".
1. Introduction
eShopOnContainers is a simple .Net Core application based on microservice architecture and Docker container. At present, the microservice architecture is in full swing, and docker technology is also developing rapidly. Microsoft launched this Demo at this time, and its intention can be imagined. Although this Demo cannot be fully applied to the production environment, it is very good for us developers. Learning materials, whether you make slight modifications or use the architecture to re-develop, it is very necessary to learn such a Demo, which reminds me of learning BlogEngine.Net before.
2. Architecture
Let’s take a look at the architecture diagram provided to us by Microsoft
We see 2 from left to right In the dotted box, the left side is each client application, and the right side is the web application, microservice application and database assumed to be on Docker.
In the Demo, Microsoft built multiple services according to different functions, and when designing these services, Microsoft used different methods to implement them, as shown in the following figure:
The above are the four services displayed by Microsoft in the Demo. You can also use different frameworks and different databases to complete the construction of your microservices. This is why microservices are so popular. . I can use any language and any database to build my service, no matter what language or system my calling end uses.
3. Source code
This architecture is open source on Github, address: https://github.com/dotnet-architecture /eShopOnContainers
We can clone the source code through git:
We see there are 3 sln in it, it is recommended to open it with vs2017, if youInstallation After the full version, you can open eShopOnContainers.sln, but generally for beginners, we still open the eShopOnContainers-ServicesAndWebApps.sln solution.
You can see that webapp and service app have been covered in the solution, and our tutorial is also based on this solution.
4. Necessary environment:
As mentioned before, our application is cross-platform and can run on any operating system that supports Docker, but during our developmentDebugging, we need the corresponding environment to debug (of course you can also use iisexpress for debugging)
1. 64bit Windows 10 Pro
2. Turn on Hyper-V (Microsoft's virtualization Machine)
3. Install Docker for Windows
If we are a version before win10, although we can install Docker Toolbox, we cannot use VS2017 for Docker debugging. An error will be reported when running. For this tutorial, I decided to upgrade my computer to Win10 so that it can be displayed better.
If you want to debug and run under the previous system, in addition to installing Docker Toolbox, you also need to install:
1, NodeJS
2. Bower
Docker for Windows There are two types of containers on win10 or server 2016, Linux container and Windows Container. Here we only need to use Linux Container (default). Our tutorial is only for Services and WebApp. Microsoft recommends setting the memory used by Docker to 4096M (4G) and CPU 3. If you want to run the full version (including mobile client), you need to configure 16G memory for Dockere.
My personal suggestion is that you'd better have a machine dedicated to the database, otherwise a mssql-linux-sql docker requires 4G of memory, and it goes without saying that you also need to build a redis.
When we are learning, we don’t necessarily have to use Docker for debugging. You can also use iis express. It doesn’t matter which method you use, the important thing is learning.
5. Learning steps:
The explanations in this series are based on the ServicesAndWebApps.sln code. We will learn from microservices first, and then look at the code structure of the web part. The approximate order is as follows:
1, Identity service
2, Catalog Service
3, Ordering Sevice
4, Basket Service
5, WebApp Mvc
6, WebSPA
I was busy some time ago, but I have been paying close attention to the development of .Net Core. At the previous builder conference, the stunning debut of 2.0 completely convinced me that Microsoft would spare no effort to develop .Net, and it also made me wait for .Net Developer. Spring is here, and I would like to pay tribute to all .Net Developers in the world. We have been waiting for 10 years.
Why choose this architecture? Because it was written by Microsoft and is of great teaching significance. Moreover, the concepts of microservices and Docker are becoming more and more popular. The current company is based on services (it has not yet reached Microservice concept), there are many inconveniences in deployment, development, maintenance, and expansion, so this learning is very important to me.
The first article is more nonsense. Later, I will explain the code, architecture and Design Pattern. Everyone is welcome to subscribe. Finally, here is a rendering
The above is the detailed content of Analysis of Microsoft Microservice Architecture eShopOnContainers. For more information, please follow other related articles on the PHP Chinese website!

This article explores the challenges of NULL pointer dereferences in C. It argues that the problem isn't NULL itself, but its misuse. The article details best practices for preventing dereferences, including pre-dereference checks, pointer initiali

This article explains how to create newline characters in C using the \n escape sequence within printf and puts functions. It details the functionality and provides code examples demonstrating its use for line breaks in output.

This article guides beginners on choosing a C compiler. It argues that GCC, due to its ease of use, wide availability, and extensive resources, is best for beginners. However, it also compares GCC, Clang, MSVC, and TCC, highlighting their differenc

This article emphasizes the continued importance of NULL in modern C programming. Despite advancements, NULL remains crucial for explicit pointer management, preventing segmentation faults by marking the absence of a valid memory address. Best prac

This article reviews online C compilers for beginners, focusing on ease of use and debugging capabilities. OnlineGDB and Repl.it are highlighted for their user-friendly interfaces and helpful debugging tools. Other options like Programiz and Compil

This article compares online C programming platforms, highlighting differences in features like debugging tools, IDE functionality, standard compliance, and memory/execution limits. It argues that the "best" platform depends on user needs,

This article discusses efficient code copying in C IDEs. It emphasizes that copying is an IDE function, not a compiler feature, and details strategies for improved efficiency, including using IDE selection tools, code folding, search/replace, templa

This article troubleshoots missing output windows in C program compilation. It examines causes like failing to run the executable, program errors, incorrect compiler settings, background processes, and rapid program termination. Solutions involve ch


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

Dreamweaver Mac version
Visual web development tools

Notepad++7.3.1
Easy-to-use and free code editor

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft
