為了推廣.Net Core,微軟為我們提供了一個開源Demo-eShopOnContainers,這是一個使用Net Core框架開發(fā)的,跨平臺(幾乎涵蓋了所有平臺,windows、mac、linux、android、ios)的,基于微服務(wù)架構(gòu)的,運行在容器中的小型應(yīng)用,其不僅展示了.Net Core的跨平臺性,更展示了VS2017的強(qiáng)大,所有代碼都在VS2017下開發(fā)。從名字上可以看出,這是一個運行在容器上的電子店鋪應(yīng)用,利用Docker的跨平臺性,使我們可以“build once, run anywhere”。

一、介紹

eShopOnContainers是基于微服務(wù)架構(gòu)和Docker容器的一個簡單的.Net Core的應(yīng)用。目前微服務(wù)架構(gòu)如火如荼,docker技術(shù)也發(fā)展迅速,微軟在這時推出這個Demo,其用意可想而知,雖說這個Demo還不能完全應(yīng)用到生產(chǎn)環(huán)境,但對于我們開發(fā)者來說,可是非常好的學(xué)習(xí)資料,無論你是稍作修改還是利用架構(gòu)重新開發(fā),學(xué)習(xí)這樣一個Demo都是非常有必要的,這讓我想起以前學(xué)習(xí)BlogEngine.Net。

二、架構(gòu)

我們看下微軟提供給我們的架構(gòu)圖

從左到右我們看到有2個虛線框,左邊是各個客戶端應(yīng)用,右邊是假設(shè)在Docker上的web應(yīng)用、微服務(wù)應(yīng)用和數(shù)據(jù)庫。

在Demo中,微軟根據(jù)不同功能分別搭建了多個service,而且在設(shè)計這幾個service的時候,微軟又使用了不同的方式來實現(xiàn),如下圖所示:

以上是微軟在Demo中展示的四種services,你還可以使用不同的框架,不同的數(shù)據(jù)庫完成你的微服務(wù)搭建,這就是微服務(wù)為何如此流行的原因了。我可以利用任何語言,任何數(shù)據(jù)庫都能搭建我的服務(wù),無論我的調(diào)用端使用的何種語言,何種系統(tǒng)。

三、源代碼

這套架構(gòu)在Github上開源,地址:https://github.com/dotnet-architecture/eShopOnContainers

我們可以通過git把源代碼clone下來: