注意:

文章中提到的命令行工具即是Windows Terminal/PowerShell/cmd其中的一个,推荐使用Windows Terminal

运行命令行工具的时候建议以管理员身份,避免踩坑

为了保证操作顺畅,建议使用PowerShell先执行一下set-ExecutionPolicy RemoteSigned

安装Docker

因为Dapr CLI默认会在Docker内启动 redis、zipkin、placement。

当然这些也不是必须要安装的,只是推荐安装可以体验Dapr的完整能力,方便后续章节的学习。

  1. 下载并安装Docker Desktop

    https://www.docker.com/products/docker-desktop

  2. 安装WSL2,使用命令行工具执行命令

    wsl --instal
    如果不能使用wsl直接安装的话可以手动安装,运行PowerShell并执行下面两句命令
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    如果你再次遇到错误提示:0x800f080c 功能名称 VirtualMachinePlatform 未知。

    请保证自己的操作系统版本在Windows 10 build 18917以上

  3. 重启电脑后下载WSL2内核

    https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

  4. 运行命令行工具,设置默认使用WSL2

    wsl --set-default-version 2
  5. 下载Ubuntu 20.04

    https://www.microsoft.com/store/apps/9n6svws3rx71

  6. 设置Docker使用WSL2

你“可能”需要一个小工具

不能说的秘密,看文件名猜功能

https://github.com.cnpmjs.org/dotnetcore/FastGithub/releases/download/2.0.4/fastgithub_win-x64.zip

安装Dapr CLI

官方解释:Dapr CLI 是您用于各种 Dapr 相关任务的主要工具。您可以使用它来运行一个带有Dapr sidecar的应用程序, 以及查看sidecar日志、列出运行中的服务、运行 Dapr 仪表板。

CLI是必须要安装吗?其实也不是,但新手不建议去体验这些骚操作。后续文章会讲解脱离dapr cli工作。

  1. 运行Windows TerminalPowerShell,执行命令,这里要耐心等待一下

    iwr -useb https://raw.githubusercontent.com/dapr/cli/master/install/install.ps1 | iex

    如果是cmd执行下面命令:

    powershell -Command "iwr -useb https://raw.githubusercontent.com/dapr/cli/master/install/install.ps1 | iex"
  2. 验证安装,重新打开命令行工具执行命令dapr,看到下面的提示即安装正确

    ______/ /___ _____  _____/ __  / __ '/ __ \/ ___// /_/ / /_/ / /_/ / /\__,_/\__,_/ .___/_//_/===============================
    Distributed Application RuntimeUsage:dapr [command]Available Commands:completion     Generates shell completion scriptscomponents     List all Dapr components. Supported platforms: Kubernetesconfigurations List all Dapr configurations. Supported platforms: Kubernetesdashboard      Start Dapr dashboard. Supported platforms: Kubernetes and self-hostedhelp           Help about any commandinit           Install Dapr on supported hosting platforms. Supported platforms: Kubernetes and self-hostedinvoke         Invoke a method on a given Dapr application. Supported platforms: Self-hostedlist           List all Dapr instances. Supported platforms: Kubernetes and self-hostedlogs           Get Dapr sidecar logs for an application. Supported platforms: Kubernetesmtls           Check if mTLS is enabled. Supported platforms: Kubernetespublish        Publish a pub-sub event. Supported platforms: Self-hostedrun            Run Dapr and (optionally) your application side by side. Supported platforms: Self-hostedstatus         Show the health status of Dapr services. Supported platforms: Kubernetesstop           Stop Dapr instances and their associated apps. . Supported platforms: Self-hosteduninstall      Uninstall Dapr runtime. Supported platforms: Kubernetes and self-hostedupgrade        Upgrades a Dapr control plane installation in a cluster. Supported platforms: KubernetesFlags:-h, --help      help for dapr-v, --version   version for daprUse "dapr [command] --help" for more information about a command.

初始化Dapr

  1. 使用命令行工具执行命令

    dapr init

    如此之外还有一个精简版的安装方式

    dapr init --slim

    看看官方解释slim

    在此模式下安装了两个不同的二进制文件 daprdplacementplacement是给actor用的,之前有提到过。

    在此模式下,不会为状态管理或发布/订阅安装任何默认组件(如 Redis),那就只能用服务调用。其他的需要用户自己设置环境和自定义组件。

    说白了,你只用服务调用,那slim是可以的,否则的话你需要手动配置来解决CLI代替你做的那部分工作。

  2. 验证Dapr版本

    dapr --version

    当前时间下,我的版本是

    CLI version: 1.4.0
    Runtime version: 1.4.3
  3. 验证容器

    docker ps

    dapr init的容器是包括dapr_placement, dapr_redis, dapr_zipkin

  4. 验证组件目录,打开目录%USERPROFILE%\.dapr\,看到如下结构即代表安装完成

运行一个示例代码看看效果

运行环境准备

vs 2022/2019,建议直接上VS2022体验64位VS

https://visualstudio.microsoft.com/zh-hans/vs/preview/#download-preview

.net 6,如果你用的不是vs2022,需要自行安装.net 6

https://download.visualstudio.microsoft.com/download/pr/5bc3c525-d6d5-4370-8468-e44a1b948c03/fe758c9942966b88b52d92ce2823f6c0/dotnet-sdk-6.0.100-rc.2.21505.57-win-x64.exe

从Github下载示例代码

使用命令行工具克隆代码库到本地

ssh(推荐)用下面的命令

git clone git@github.com:doddgu/dapr-study-room.git

https用下面的命令

git clone https://github.com/doddgu/dapr-study-room.git

没有git的需要先安装一下git,具体教程可以自行百度

https://github.com/git-for-windows/git/releases/download/v2.33.1.windows.1/Git-2.33.1-64-bit.exe

使用Dapr运行.Net示例代码

  1. 使用命令行工具,跳转到源码目录dapr-study-room\Assignment03\Assignment.Server

    Tips:在资源管理器找到源码目录

    Win 11可以右键空白区域 -> 在Windows终端中打开即可

    Win 11以下在资源管理器输入cmd

  2. 执行命令dapr run --app-id assignment-server --app-port 5038 dotnet run

    可以先不用了解命令行的意思,后续章节会讲解

  3. 看到输入内容如下即运行成功

    == APP == info: Microsoft.Hosting.Lifetime[14]
    == APP ==       Now listening on: https://localhost:7038
    == APP == info: Microsoft.Hosting.Lifetime[14]
    == APP ==       Now listening on: http://localhost:5038
    == APP == info: Microsoft.Hosting.Lifetime[0]
    == APP ==       Application started. Press Ctrl+C to shut down.
    == APP == info: Microsoft.Hosting.Lifetime[0]
    == APP ==       Hosting environment: Development
    == APP == info: Microsoft.Hosting.Lifetime[0]
    == APP ==       Content root path: D:\Project\OpenSource\dapr-study-room\Assignment03\Assignment.Server
    time="2021-10-27T18:06:11.8422605+08:00" level=info msg="application discovered on port 5038" app_id=assignment-server instance=SSHZ014 scope=dapr.runtime type=log ver=1.4.3
    time="2021-10-27T18:06:11.8788949+08:00" level=info msg="application configuration loaded" app_id=assignment-server instance=SSHZ014 scope=dapr.runtime type=log ver=1.4.3
    time="2021-10-27T18:06:11.8803982+08:00" level=info msg="actor runtime started. actor idle timeout: 1h0m0s. actor scan interval: 30s" app_id=assignment-server instance=SSHZ014 scope=dapr.runtime.actor type=log ver=1.4.3
    time="2021-10-27T18:06:11.8844485+08:00" level=info msg="dapr initialized. Status: Running. Init Elapsed 1830.3305ms" app_id=assignment-server instance=SSHZ014 scope=dapr.runtime type=log ver=1.4.3
    time="2021-10-27T18:06:11.8920835+08:00" level=info msg="placement tables updated, version: 0" app_id=assignment-server instance=SSHZ014 scope=dapr.runtime.actor.internal.placement type=log ver=1.4.3
  4. 还有一个验证方式,使用命令行工具执行命令dapr list

    其中APP ID,APP PORT,COMMAND是不变的,其余都是变的

    APP ID             HTTP PORT  GRPC PORT  APP PORT  COMMAND     AGE  CREATED              PID

    assignment-server  49948      49949      5038      dotnet run  13m  2021-10-27 18:06.09  22596

调用Dapr API

  1. 重新打开一个命令行工具

  2. 测试Dapr API,再打开一个命令行工具

    dapr invoke --app-id assignment-server --method hello
  3. 验证运行是否成功

    执行dapr inovoke的命令行窗口输出如下

    App invoked successfully

    执行dapr run的命令行窗口输出如下

    == APP == Hello World!

    这个Hello World就是Assignment.Server的API /hello 打印出来的,此时你的环境已经ok,且第一个示例也运行成功了

给自己点个赞吧

手把手教你学Dapr - 3. 使用Dapr运行第一个.Net程序相关推荐

  1. 《手把手教你学C语言》学习笔记(10)--- 程序的循环控制

    C语言程序设计中,有些代码需要重复执行很多次,循环主要有三类: 一.for循环 1.基本格式为:for(表达式1:表达式2:表达式3){ //表达式1:循环变量赋初值 //表达式2:循环变量满足的条件 ...

  2. 手把手教你学Dapr - 5. 状态管理

    介绍 使用状态管理,您的应用程序可以将数据作为键/值对存储在支持的状态存储中. 您的应用程序可以使用 Dapr 的状态管理 API 使用状态存储组件来保存和读取键/值对,如下图所示.例如,通过使用 H ...

  3. 第11章 UART 串口通信(手把手教你学51单片机pdf部分)

    手把手教你学51单片机-C语言版.pdf  

  4. python global用法_14_手把手教你学Python之函数(下)

    变量作用域:根据变量定义的位置,可将变量分为全局变量和局部变量. 全局变量:定义在函数外面的变量,可以在多个函数中进行访问,但不能执行赋值操作.如果有赋值语句,相当于创建了一个同名的局部变量: 局部变 ...

  5. oracle数据库更新语句_20_手把手教你学Python之操作数据库

    数据库是数据的仓库,将大量数据按照一定的方式组织并存储起来,方便进行管理和维护,例如快速检索和统计等.数据库的主要特点: 以一定的方式组织.存储数据: 能为多个用户共享: 与程序彼此独立. -- 数据 ...

  6. c++从入门到精通_资料下载:从入门到精通,手把手教你学DSP

    学习一个东西首先是了解它,比如DSP到底是什么?用在什么地方?怎么用?和单片机特点有那些相同与不同?开发需要注意什么?想了解清楚这些问题自然就清楚比较清楚的认识DSP.DSP,因为它是用来做数据处理, ...

  7. 手把手教你学dsp_新课免费看| 手把手教你学DSP,C2000从入门到精通

    课程简介: 目前,国内许多高校针对相关专业的本科生及硕士生已经开设了基于C2000系列的DSP应用课程,并建立了DSP重点实验室:许多企业也正在对C2000系列处理器进行开发和应用研究,因此迫切需要这 ...

  8. python中字典的value可以为任意对象_手把手教你学Python之字典

    字典是一种无序可变的容器,字典中的元素都是"键(key):值(value)"对, "键"和"值"之间用冒号隔开,所有"键值对&qu ...

  9. 手把手教你学Python之波士顿房价预测(scikit-learn的应用)

    目录 1.波士顿房价预测介绍 2.线性回归算法 3.调用scikit-learn库实现房价预测 1.波士顿房价预测介绍 问题描述:波士顿房价数据集统计的是20世纪70年代中期波士顿郊区房价的中位数,统 ...

  10. 模板匹配、抓圆、抓边、二维码 零基础labview视觉培训教程《龙哥手把手教你学视觉》只有不会教的老师,没有学不会的学生

    <龙哥手把手教你学视觉>周末班招生简章 教师简介: 江湖人称-龙哥,使用LabVIEW开发了大量视觉检测.运动控制.数据采集方面软件,具有丰富的非标自动化设备经验.www.ni-visio ...

最新文章

  1. linux系统中怎么驱动U盘
  2. python基础教程第二版和第三版有什么区别-《Python基础教程》(第2版修订版)中要注意的地方...
  3. linux 未找到wifi适配器,无线 - 重新启动后找不到WI-FI适配器
  4. linux无线网卡连不上网,Ubuntu 16.04无线网卡不见,无法用WiFi上网的解决方法
  5. 20155222 卢梓杰 myod
  6. [ZJOI2013]防守战线
  7. 附件 计算机 丢失,帮你找回Win7开始菜单附件丢失的工具
  8. ASIHTTPRequest
  9. UE4 命令行创建Pak
  10. 如何编写游戏辅助工具
  11. Android集成高德地图导航SDK、实现App内进行导航、打开高德App导航
  12. linux压缩到最小命令,Linux压缩打包命令
  13. 笔记本电脑开wifi热点小技巧,bat文件实现
  14. 冰汽朋克侦查机器人_冰汽时代困难难度机器人流玩法心得 寒霜朋克困难难度怎么玩...
  15. PDF页眉页脚怎么去掉,页眉页脚删除方法
  16. 教你 用c语言输出乘法口诀表 一giao我嘞gaiogiao
  17. 云和恩墨新晋ACED熊军微信大讲堂主题分享
  18. 视觉设计中发现的11种光学错觉
  19. java使用poi逐页读取ppxt,JAVA-WEB(通过POI)实现PPT在线预览
  20. firefox(火狐浏览器)插件的应用

热门文章

  1. 百度pcs 如何获取Access Token
  2. 转载:xml文件中的特殊字符
  3. linux 运行apj,pxe+ris-linux实现在DELL R710上网络安装windows2003
  4. java中自定义表单和流程_让驰骋工作流程引擎 ccbpm使用自定义表单来实现自己的业务逻辑....
  5. spring boot拦截器中获取request post请求中的参数(转)
  6. 算法马拉松13 A-E解题报告
  7. UNIX环境高级编程笔记
  8. HDU3363_贪心
  9. Microsoft AJAX Client Library规范的实例
  10. ios 开发账号 退出协作_如何在iOS 10中的Notes上进行协作