nuget

在.NET Core中用最原生的方式读取Nacos的配置

故事扮演 提交于 2020-10-14 19:27:27
背景 之前老黄写过一篇《ASP.NET Core结合Nacos来完成配置管理和服务发现》简单介绍了如何让.NET Core程序接入Nacos,之前的SDK里面更多的是对Nacos的Open API进行了封装以及对服务注册和发现的封装。 配置这一块当时并没有过多的处理,用起来有时感觉不会特别顺手,所以将它和.NET Core的配置结合起来了,让它用起来更简便。 怎么个简便法呢? 可以说,除了多添加一下provider,其他的操作都是和最原始的一模一样,你想用 IConfiguration 就用 IConfiguration ,想用 IOptions 系列就用 IOptions 系列。 更容易做到无缝迁移! 当然,这个SDK出自老黄的手,难免会有一些坑和bug,这个就请各位多多包涵!! 前提条件 启动Nacos Server 最简单的方式,用docker启动一个单机版的。 docker-compose -f example/standalone-mysql-8.yaml up 创建一个.NET Core项目,并安装相应nuget包 这里将用ASP.NET Core Web Api做示例,同时要安装下面的nuget包 dotnet add package nacos-sdk-csharp-unofficial.Extensions.Configuration --version 0.2

C#状态机Stateless

删除回忆录丶 提交于 2020-10-13 05:00:02
最近在折腾一些控制相关的软件设计,想起来状态机这个东西,对解决一些控制系统状态切换还是挺有用的。 状态机(有限状态自动机)网上有很多 介绍 。简单理解就是定义一系列状态,通过一系列的事件,可以使得状态可以相互之间切换。 如果不使用状态机的思想来编程,那么针对过程的编程方法会使得程序拓展性变差,并且不容易调试。而状态机只需要定义好了各种状态和状态切换之间的事件,你只管触发事件,剩下的事情它自己就自动完成了(毕竟名称叫做有限状态自动机),这对于很多需要定义各种控制阶段的系统简直是完美适配。了解到.NET也有很多库可以实现这些功能,本文主要介绍一下Stateless的应用。 Stateless介绍 Stateless 可以创建极简的状态机与对应的工作流。很多项目(包括VisualStudio Extension、AIlab)都有使用到它。 它支持以下特性: 支持各种类型作为状态和触发事件 支持状态继承 支持状态进入/离开事件 支持条件状态转移 支持状态/转移查询 也有几点需要注意的: 它支持异步语法,但是它是单线程的,不是线程安全的。 可以导出DOT graph 安装起来很简单,直接在nuget中安装即可: Install-Package Stateless Stateless使用 用起来也挺简单的,以打电话这个事情为例,针对打电话的种种动作和状态做成一个状态机。

Angular SPA基于Ocelot API网关与IdentityServer4的身份认证与授权(二)

可紊 提交于 2020-10-13 00:56:46
上文 已经介绍了Identity Service的实现过程。今天我们继续,实现一个简单的Weather API和一个基于Ocelot的API网关。 回顾 《 Angular SPA基于Ocelot API网关与IdentityServer4的身份认证与授权(一) 》 Weather API Weather API实现非常简单,直接用Visual Studio 2019 Community Edition自带的ASP.NET Core Web Application模板创建就行了,我们的目的不是为了实现Weather API的业务,我们只需要有一个能让IdentityServer4进行保护的API就行,以便能够完成我们的各种实验。 在原有的(也就是Identity Service所在的)解决方案中,新建一个ASP.NET Core Web Application,应用程序模板选择API,并禁用HTTPS和Docker支持,因为目前不需要,也不要启用任何Authentication机制,因为这部分功能会由Ocelot配合IdentityServer4实现。在完成创建之后,我们的Weather API就做好了。 现在,设置启动端口为5000,启动项目,然后通过curl测试API是否工作正常: curl http://localhost:5000/weatherforecast |

消息队列 Kafka 的基本知识及 .NET Core 客户端

倾然丶 夕夏残阳落幕 提交于 2020-10-08 03:29:59
前言 最新项目中要用到消息队列来做消息的传输,之所以选着 Kafka 是因为要配合其他 java 项目中,所以就对 Kafka 了解了一下,也算是做个笔记吧。 本篇不谈论 Kafka 和其他的一些消息队列的区别,包括性能及其使用方式。 简介 Kafka 是一个实现了分布式的、具有分区、以及复制的日志的一个服务。它通过一套独特的设计提供了消息系统中间件的功能。它是一种发布订阅功能的消息系统。 一些名词 如果要使用 Kafka ,那么在 Kafka 中有一些名词需要知道,文本不讨论这些名词是否在其他消息队列中具有相同的含义。所有名词均是针对于 Kafka。 Message 消息,就是要发送的内容,一般包装成一个消息对象。 Topic 通俗来讲的话,就是放置“消息”的地方,也就是说消息投递的一个容器。假如把消息看作是信封的话,那么 Topic 就是一个邮筒,如下图所示: Partition && Log Partition 分区,可以理解为一个逻辑上的分区,像是我们电脑的磁盘 C:, D:, E: 盘一样, Kafka 为每个分区维护着一份日志Log文件。 每个分区是一个有序的,不可修改的,消息组成的队列。 当消息过来的时候,会被追加到日志文件中,这个追加是根据 commit 命令来执行的。 分区中的每一条消息都有一个编号,叫做 offset id,这个 id 在当前分区中是唯一的

.NetCore学习笔记:六、Swagger API接口文档工具

此生再无相见时 提交于 2020-10-07 04:39:02
Swagger一个优秀的Api接口文档生成工具。Swagger可以可以动态生成Api接口文档,有效的降低前后端人员关于Api接口的沟通成本,促进项目高效开发。 1、使用NuGet安装最新的包:Swashbuckle.AspNetCore。 2、编辑项目文件(NetCoreTemplate.Web.csproj),配置Xml文档生成目录。 < PropertyGroup Condition ="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'" > < DocumentationFile > bin\Debug\netcoreapp3.1\NetCoreTemplate.Web.xml </ DocumentationFile > < OutputPath > bin\Debug\netcoreapp3.1\ </ OutputPath > </ PropertyGroup > < PropertyGroup Condition ="'$(Configuration)|$(Platform)'=='Release|AnyCPU'" > < DocumentationFile > bin\Release\netcoreapp3.1\NetCoreTemplate.Web.xml </ DocumentationFile > <

面向对象存储框架:Obase快速入门

泪湿孤枕 提交于 2020-10-03 07:15:45
在项目中完成对象建模后,可以使用Obase来进行对象的管理(例如对象持久化),本篇教程将创建一个.NET Core控制台应用,来展示Obase的配置和对象的增删改查操作。本篇教程旨在指引简单入门。 本篇教程将以此对象模型展开 class Blog{ +BlogId:int[文章Id] +Url:string[文章地址] +Post:sList<Post>[文章评论] } class Post{ +PostId:int[评论Id] +Title:string[评论标题] +Content:string[评论内容] +Blog:Blog[关联文章] } Blog "1"-right-"*" Post hide empty member 从NuGet安装Obase 在VS的NuGet包管理器中添加程序包源: http://nuget.suiyiyun.cn:8081/nuget 在NuGet包管理器中选择Obase进行安装 项目搭建 打开 Visual Studio 单击“创建新项目” 选择带有 C# 标记的“控制台应用 (.NET Core)” ,然后单击“下一步” 输入“ObaseTutorial” 作为名称,然后单击“创建” 添加对freep.Obase.dll的引用 定义领域实体类 /// <summary> /// 文章 /// </summary> public class