1. .net 6.0项目模板变更

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

下图是api项目的.net6模板的样子。

下图Maui项目模板的Program类的截图

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

2. 基于docker容器开发

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

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

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

Dapr官方文档地址

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

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

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

demo源码地址

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

下图是我看的一本关于微服务的书籍,大家有需要也可以买来看看,或者找电子版看看。

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

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

面向 .NET 开发人员的 Dapr

从.net开发做到云原生运维(四)——.net core的微服务开发的更多相关文章

  1. 从.net开发做到云原生运维(二)——.net core生态

    1. 新的开始从.net 6.0开始 .net 6.0作为一个长期支持版,具有里程碑的意义.从.net5.0将.net framework和.net core合并以后,在.net5.0的功能上再次完善 ...

  2. 从.net开发做到云原生运维(零)——序

    1. 为什么要写这个系列的文章 大家看到标题的时候肯定会感觉到困惑,这个标题里的两件事物好像并不是很搭.说到.net开发大家一般都会想到asp.net做网站,或者是wpf和winform这类桌面开发, ...

  3. 从.net开发做到云原生运维(八)——DevOps实践

    1. DevOps的一些介绍 DevOps(Development和Operations的组合词)是一组过程.方法与系统的统称,用于促进开发(应用程序/软件工程).技术运营和质量保障(QA)部门之间的 ...

  4. 【新书推荐】《ASP.NET Core微服务实战:在云环境中开发、测试和部署跨平台服务》 带你走近微服务开发

    <ASP.NET Core 微服务实战>译者序:https://blog.jijiechen.com/post/aspnetcore-microservices-preface-by-tr ...

  5. 华为刘腾:华为终端云Cassandra运维实践分享

    点击此处观看完整活动视频 各位线上的嘉宾朋友大家好,我是来自华为消费者BG云服务部的刘腾,我今天给大家分享的主题是华为终端云Cassandra运维实践.和前面王峰老师提到的Cassandra在360中 ...

  6. 从On-Premise本地到On-Cloud云上运维的演进

    摘要: 从用户的声音中,我们听到用户对稳定.弹性.透明的诉求,我们也在不断升级ECS的运维能力和体验,助力用户建立主动运维体系,赋能业务永续运行.为了让大家更好的了解和用好ECS弹性计算服务,从本期开 ...

  7. Linux云自动化运维第三课

    Linux云自动化运维第三课 一.正则表达式 1.匹配符 * ###匹配0到任意字符 ? ###匹配单个字符 [[:alpha:]] ###匹配单个字母 [[:lower:]] ###匹配单个小写字母 ...

  8. Linux云自动化运维第四课

    Linux云自动化运维第四课 一.vim 1.vim光标移动 1)在命令模式下 :数字  ###移动到指定的行 G  ###文件最后一行 gg  ###文件第一行 2)在插入模式下 i  ###光标所 ...

  9. Linux云自动化运维第五课

    Linux云自动化运维第五课 一.进程定义 进程就是cpu未完成的工作 二.ps命令 ps a ###关于当前环境的所有进程 x ###与当前环境无关的所有进程 f ###显示进程从属关系 e ### ...

  10. 微服务平台(Micro Service Platform : MSP)旨在提供一个集开发、测试、运维于一体的开发者专属平台,让开发者能快速构建或使用微服务,让开发更简单,让运维更高效。

    微服务平台(Micro Service Platform : MSP)旨在提供一个集开发.测试.运维于一体的开发者专属平台,让开发者能快速构建或使用微服务,让开发更简单,让运维更高效. MSP采用业界 ...

随机推荐

  1. kettle从入门到精通 第六十六课 ETL之kettle kettle阻塞教程,轻松获取最后一行数据,so easy

    场景:ETL沟通交流群内有小伙伴反馈,如何在同步一批数据完成之后记录下同步结果呢?或者是调用后续步骤.存储过程.三方接口等. 解决:使用步骤Blocking step进行阻塞处理即可. 1.下面的de ...

  2. C#.NET 使用Windows证书库中的证书

    public static X509Certificate2 GetCertificate(string commonName, StoreName storeName) { X509Certific ...

  3. 解决NodeJS Downloading node-sass 卡死慢安装失败的问题

    之前写过一篇从0开始的NodeJS安装配置教程,在那篇文章结尾提到使用过程中还有一个坑,只是没有遇到就没写,时隔多日在我使用某开源项目的时候又遇到了这个问题 下载依赖时一直卡在 Downloading ...

  4. tempCode

    package com.cmbchina.monitor.service.imp; import com.alibaba.fastjson.JSON; import com.cmbchina.moni ...

  5. lumen、laravel 环境问题汇总

    框架报500 1.chmod 777 -R storage 将日志目录权限设置下. 2.修改fastcgi,将代码目录包含进去. fastcgi_param PHP_ADMIN_VALUE " ...

  6. Simple WPF: WPF 透明窗体和鼠标事件穿透

    一个自定义WPF窗体的解决方案,借鉴了吕毅老师的WPF制作高性能的透明背景的异形窗口一文,并在此基础上增加了鼠标穿透的功能.可以使得透明窗体的鼠标事件穿透到下层,在下层窗体中响应. 这个方法不一定是制 ...

  7. OpenCV程序练习(二):图像处理基础

    一.彩色图像像素处理 代码 import cv2 import numpy as np #----------蓝色通道---------- blue=np.zeros((300,300,3),dtyp ...

  8. Redis常见的16个使用场景

    1.缓存 String类型 例如:热点数据缓存(例如报表.明星出轨),对象缓存.全页缓存.可以提升热点数据的访问数据. 2.数据共享分布式 String 类型,因为 Redis 是分布式的独立服务,可 ...

  9. Vue 怎么用 vm.$set() 解决对象新增属性不能响应的问题 ?

    受现代 JavaScript 的限制 ,Vue 无法检测到对象属性的添加或删除.由于 Vue 会在初始化实例时对属性执行 getter/setter 转化,所以属性必须在 data 对象上存在才能让 ...

  10. react 拖拽组件 自由拖拽,垂直水平拖拽

    react拖拽组件 推荐几个不错的开源拖拽组件以及使用方法 第一个拖拽组件 antd的Tree组件 这个拖拽组件经常用于层级关系的拖拽组件 可以动态的增删改 (排序,添加子层级~父层级,修改等). i ...