爲了推廣.Net Core,微軟爲咱們提供了一個開源Demo-eShopOnContainers,這是一個使用Net Core框架開發的,跨平臺(幾乎涵蓋了全部平臺,windows、mac、linux、android、ios)的,基於微服務架構的,運行在容器中的小型應用,其不只展現了.Net Core的跨平臺性,更展現了VS2017的強大,全部代碼都在VS2017下開發。從名字上能夠看出,這是一個運行在容器上的電子店鋪應用,利用Docker的跨平臺性,使咱們能夠「build once, run anywhere」。
1、介紹
eShopOnContainers是基於微服務架構和Docker容器的一個簡單的.Net Core的應用。目前微服務架構如火如荼,docker技術也發展迅速,微軟在這時推出這個Demo,其用意可想而知,雖然說這個Demo還不能徹底應用到生產環境,但對於咱們開發者來講,但是很是好的學習資料,不管你是稍做修改仍是利用架構從新開發,學習這樣一個Demo都是很是有必要的,這讓我想起之前學習BlogEngine.Net。
2、架構
咱們看下微軟提供給咱們的架構圖
從左到右咱們看到有2個虛線框,左邊是各個客戶端應用,右邊是假設在Docker上的web應用、微服務應用和數據庫。
在Demo中,微軟根據不一樣功能分別搭建了多個service,並且在設計這幾個service的時候,微軟又使用了不一樣的方式來實現,以下圖所示:
以上是微軟在Demo中展現的四種services,你還可使用不一樣的框架,不一樣的數據庫完成你的微服務搭建,這就是微服務爲什麼如此流行的緣由了。我能夠利用任何語言,任何數據庫都能搭建個人服務,不管個人調用端使用的何種語言,何種系統。
3、源代碼
咱們能夠經過git把源代碼clone下來:
咱們看到裏面有3個sln,建議用vs2017打開,若是你安裝了完整版,你能夠打開eShopOnContainers.sln,不過通常對於初學者來講,咱們仍是打開eShopOnContainers-ServicesAndWebApps.sln解決方案。
能夠看到在解決方案中已經涵蓋了webapp和service app,咱們的教程也是以這個solution爲準。
4、必要環境:
以前說過咱們的應用是跨平臺的,能夠運行在任何支持Docker的操做系統之上,但在咱們開發調試的時候,咱們須要相應的環境才能進行調試(固然你也可使用iisexpress進行調試)
一、64bit Windows 10 Pro
二、開啓Hyper-V(微軟的虛擬機)
若是咱們是win10以前的版本,咱們雖然能夠安裝
Docker Toolbox,可是沒辦法利用VS2017進行Docker調試,運行時會報錯,爲了這教程,我決定把我電腦升級到Win10,這樣才能更好的展現。
若是你想在以前的系統下進行調試運行,除了安裝Docker Toolbox外,您還須要安裝:
Docker for Windows 在win10或者server 2016上有2種類型的容器,Linux container 和Windows Container,這裏咱們只須要使用Linux Container便可(默認)。咱們的教程只針對Services和WebApp,微軟建議設置Docker的使用內存是4096M(4G)和CPU 3,若是你要運行完整版(包含手機客戶端),那你須要爲Dockere配置16G內存。
咱們在學習的時候,咱們不必定要使用Docker進行調試,利用iis express也能夠,用哪一種方式不重要,重要的是學習。
5、學習步驟:
本系列講解的都是以ServicesAndWebApps.sln代碼爲準,咱們將先從微服務學習,再看web部分的代碼結構。大體的順序以下:
一、Identity service
二、Catalog Service
三、Ordering Sevice
四、Basket Service
五、WebApp Mvc
六、WebSPA
寫在最後:
前段時間比較忙,但一直很是關注.Net Core的發展,在以前的builder大會上,2.0的驚豔亮相,完全讓我相信微軟會不惜餘力的發展.Net,也使我等.Net Developer感受到春天到了,至此爲天下全部.Net Developer致敬,咱們等了10年啊。
爲何挑這個架構來講呢,由於這是微軟寫的,頗有教學意義,並且如今微服務和Docker概念愈來愈火,目前的公司是基於服務作的(尚未到達微服務概念),在部署、開發、維護、擴展上都有不少不便,因此這個學習對我來講很是重要。
第一篇比較偏廢話些,後面會圍繞代碼和架構和設計模式進行講解,歡迎你們訂閱。最後來一張效果圖