


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#.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.

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.

How to deploy a C# .NET app to Azure or AWS? The answer is to use AzureAppService and AWSElasticBeanstalk. 1. On Azure, automate deployment using AzureAppService and AzurePipelines. 2. On AWS, use Amazon ElasticBeanstalk and AWSLambda to implement deployment and serverless compute.

C# and .NET adapt to the needs of emerging technologies through continuous updates and optimizations. 1) C# 9.0 and .NET5 introduce record type and performance optimization. 2) .NETCore enhances cloud native and containerized support. 3) ASP.NETCore integrates with modern web technologies. 4) ML.NET supports machine learning and artificial intelligence. 5) Asynchronous programming and best practices improve performance.

C# and .NET runtime work closely together to empower developers to efficient, powerful and cross-platform development capabilities. 1) C# is a type-safe and object-oriented programming language designed to integrate seamlessly with the .NET framework. 2) The .NET runtime manages the execution of C# code, provides garbage collection, type safety and other services, and ensures efficient and cross-platform operation.

The relationship between C# and .NET is inseparable, but they are not the same thing. C# is a programming language, while .NET is a development platform. C# is used to write code, compile into .NET's intermediate language (IL), and executed by the .NET runtime (CLR).

To start C#.NET development, you need to: 1. Understand the basic knowledge of C# and the core concepts of the .NET framework; 2. Master the basic concepts of variables, data types, control structures, functions and classes; 3. Learn advanced features of C#, such as LINQ and asynchronous programming; 4. Be familiar with debugging techniques and performance optimization methods for common errors. With these steps, you can gradually penetrate the world of C#.NET and write efficient applications.
