从.net开发做到云原生运维(四)——.net core的微服务开发

  • A+
所属分类:.NET技术
摘要

在.net 5和.net 3.1的时候,asp.net core项目模板里有个Program类和Startup类,在.net 6中引入了一个最小api的项目模板,在正常的模板中也把Startup类移除了。个人感觉这些做了以后,web项目模板和控制台,Maui这类的项目模板就保持统一了。


1. .net 6.0项目模板变更

在.net 5和.net 3.1的时候,asp.net core项目模板里有个Program类和Startup类,在.net 6中引入了一个最小api的项目模板,在正常的模板中也把Startup类移除了。个人感觉这些做了以后,web项目模板和控制台,Maui这类的项目模板就保持统一了。

下图是api项目的.net6模板的样子。
从.net开发做到云原生运维(四)——.net core的微服务开发

下图Maui项目模板的Program类的截图
从.net开发做到云原生运维(四)——.net core的微服务开发

通过上面的两张图我们不难看出.net 6.0确实在统一上做了很多的努力。

2. 基于docker容器开发

个人学习的话,我推荐使用Docker Desktop这个软件进行安装。因为我们既可以学习docker容器作为日常开发,也可以用程序里带的K8s进行学习。

关于Kubernetes(简称K8S)的开启及基本使用,基于Docker Desktop & WSL2

我先用简单的几个项目做个演示,我用.net 6.0建了两个webapi和两个grpc服务,他们之间通过Dapr连接,然后交叉调用。具体什么是dapr这个大家可以自行搜索,这里我先不展开了,后面的文章会讲述下。

Dapr官方文档地址

从.net开发做到云原生运维(四)——.net core的微服务开发

几个服务的运行情况如上图所示,我通过docker-compose启动了几个服务。

从.net开发做到云原生运维(四)——.net core的微服务开发

然后我通过HttpA的服务通过GrpcB调用GrpcA就可以将请求传递过去。

这些服务都是以容器的形式运行的。开发体验上和传统开发方式区别不大。

demo源码地址

3. 微服务开发的一些理论知识

下图是我看的一本关于微服务的书籍,大家有需要也可以买来看看,或者找电子版看看。
从.net开发做到云原生运维(四)——.net core的微服务开发

微服务的理论知识需要系统的学习,对于在工作中做技术选型和决策有很大的帮助。

.NET 微服务:适用于容器化 .NET 应用程序的体系结构

面向 .NET 开发人员的 Dapr