为了推广.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概念愈来愈火,目前的公司是基于服务作的(尚未到达微服务概念),在部署、开发、维护、扩展上都有不少不便,因此这个学习对我来讲很是重要。
第一篇比较偏废话些,后面会围绕代码和架构和设计模式进行讲解,欢迎你们订阅。最后来一张效果图