


Analysis of Microsoft Microservice Architecture eShopOnContainers
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!

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

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

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

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











C# is a modern, object-oriented programming language developed by Microsoft and as part of the .NET framework. 1.C# supports object-oriented programming (OOP), including encapsulation, inheritance and polymorphism. 2. Asynchronous programming in C# is implemented through async and await keywords to improve application responsiveness. 3. Use LINQ to process data collections concisely. 4. Common errors include null reference exceptions and index out-of-range exceptions. Debugging skills include using a debugger and exception handling. 5. Performance optimization includes using StringBuilder and avoiding unnecessary packing and unboxing.

Testing strategies for C#.NET applications include unit testing, integration testing, and end-to-end testing. 1. Unit testing ensures that the minimum unit of the code works independently, using the MSTest, NUnit or xUnit framework. 2. Integrated tests verify the functions of multiple units combined, commonly used simulated data and external services. 3. End-to-end testing simulates the user's complete operation process, and Selenium is usually used for automated testing.

C#.NET is still important because it provides powerful tools and libraries that support multiple application development. 1) C# combines .NET framework to make development efficient and convenient. 2) C#'s type safety and garbage collection mechanism enhance its advantages. 3) .NET provides a cross-platform running environment and rich APIs, improving development flexibility.

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

Interview with C# senior developer requires mastering core knowledge such as asynchronous programming, LINQ, and internal working principles of .NET frameworks. 1. Asynchronous programming simplifies operations through async and await to improve application responsiveness. 2.LINQ operates data in SQL style and pay attention to performance. 3. The CLR of the NET framework manages memory, and garbage collection needs to be used with caution.

C#.NETissuitableforenterprise-levelapplicationswithintheMicrosoftecosystemduetoitsstrongtyping,richlibraries,androbustperformance.However,itmaynotbeidealforcross-platformdevelopmentorwhenrawspeediscritical,wherelanguageslikeRustorGomightbepreferable.

C# is widely used in enterprise-level applications, game development, mobile applications and web development. 1) In enterprise-level applications, C# is often used for ASP.NETCore to develop WebAPI. 2) In game development, C# is combined with the Unity engine to realize role control and other functions. 3) C# supports polymorphism and asynchronous programming to improve code flexibility and application performance.

The programming process of C# in .NET includes the following steps: 1) writing C# code, 2) compiling into an intermediate language (IL), and 3) executing by the .NET runtime (CLR). The advantages of C# in .NET are its modern syntax, powerful type system and tight integration with the .NET framework, suitable for various development scenarios from desktop applications to web services.
