摘要:
Semantic Kernel 是一种轻量级应用开发框架,用于快速开发融合 LLM AI的现代应用。以下简称SK 名词解释 LLM:大语言模型 Prompt:简单的理解它是给 AI 模型的指令。 Prompt Engineering:中文意思为提示工程,是一种人工智能(AI)技术,它通过设计和改进
阅读全文
posted @ 2023-07-06 15:12
.Neterr
阅读(1053)
推荐(0)
摘要:
在C#中,可以使用CancellationToken来优雅地关闭线程。CancellationToken是一个结构体,用于向线程发送信号以请求线程停止运行。以下是一个使用CancellationToken的示例代码: ``` using System; using System.Threading;
阅读全文
posted @ 2023-06-27 16:16
.Neterr
阅读(245)
推荐(0)
摘要:
.NET 是一个非常强大的框架,它允许开发人员管理来自各种源(如 JSON 文件、环境变量等)的应用程序设置。但是,有时开发人员需要一种方法来引用和替换其他设置中的配置值,以避免在多个地方维护相同的值,从而使配置文件变得混乱和难以维护。 为了解决这个问题,我们可以使用 GSoft.Extension
阅读全文
posted @ 2023-06-20 17:34
.Neterr
阅读(50)
推荐(0)
摘要:
在 ASP.NET Core 中,内置了非常强大的依赖注入容器功能。但是,如果不正确使用,也可能会引起一些问题。 问题 下面我们通过一段示例代码来说明这个问题。 public interface IServiceA{ string Get();}public interface IServiceB{
阅读全文
posted @ 2023-06-20 17:25
.Neterr
阅读(38)
推荐(0)
摘要:
在这个系列中,我将探索一下 .NET 6 中的一些新特性。已经有很多关于 .NET 6 的内容,包括很多来自 .NET 和 http://ASP.NET 团队本身的文章。在这个系列中,我将探索一下这些特性背后的一些代码。 在这第一篇文章中,来研究一下 ConfigurationManager 类,讲
阅读全文
posted @ 2023-06-20 15:42
.Neterr
阅读(338)
推荐(0)
摘要:
前言 我们知道在 ASP.NET Core 中,内置了一个依赖注入容器,可用于注册和解析服务。 在注册服务时,我们需要指定服务的生命周期: Transient:每次请求服务时都会创建一个新的实例。 Scoped:每次请求服务时都会创建一个新的实例,但在同一个请求内,每次请求服务时都会使用同一个实例。
阅读全文
posted @ 2023-06-19 20:53
.Neterr
阅读(28)
推荐(0)
摘要:
获取数据类型 type(val) if type(1) == int: print('1是int类型') if type('hello') == str: print('1是字符串类型') if type(1.5) == float: print('1是float类型') if type([1,2]
阅读全文
posted @ 2023-05-05 13:59
.Neterr
阅读(41)
推荐(0)
摘要:
python包 python包用于管理python模块,将一批模块归为一类,方便使用 从物理上看,包就是一个文件夹,文件夹中必须包含一个__init__.py文件,该文件夹可用于包含多个模块文件; 从逻辑上看,包的本质依然是模块 导入包 import 包名.模块名 from 包名 import 模块
阅读全文
posted @ 2023-04-22 23:07
.Neterr
阅读(40)
推荐(0)
摘要:
对于我们程序员来说,在日常开发项目中,调用外部的命令是非常常见的,比如调用批处理命令、调用其他应用,这里面就涉及到进程的通讯、管理、启动、取消等一些操作,今天给大家推荐一个C#库,就可以满足这些日常的需求,避免重复造轮子。 项目简介 这是基于.NetCore 开发的C#库,一个用于与外部命令行界面交
阅读全文
posted @ 2023-04-11 14:27
.Neterr
阅读(596)
推荐(0)
摘要:
Intro dotnet-exec是一个可以执行 C# 程序而不需要项目文件的命令行工具,并且你可以指定自定义的入口方法不仅仅是Main方法 在 python/NodeJs 里,可以使用python xx.py/node xx.js来运行代码,在 C# 中一般是需要项目文件才能dotnet run运
阅读全文
posted @ 2023-04-11 09:51
.Neterr
阅读(252)
推荐(0)
摘要:
访问者模式介绍 最复杂的设计模式,并且使用频率不高 访问者模式是一种将数据操作和数据结构分离的设计模式。 访问者模式的使用场景 对象结构比较稳定,但经常需要在此对象结构上定义新的操作。 需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免这些操作“污染”这些对象的类,也不希望在增加新
阅读全文
posted @ 2023-04-07 15:00
.Neterr
阅读(35)
推荐(0)
摘要:
背景 在三方接口对接中,偶尔会遇到需要传递证书的情况,这种方式其实是在SSL握手过程中会同时验证客户端和服务器的身份,这就是我们常说的 双向认证。 双向认证需要服务器和客户端提供身份认证,只能是服务器允许的客户方能访问,安全性相对于要高一些。 下面老黄用几个小例子来演示一下双向认证的简单应用。 准备
阅读全文
posted @ 2023-04-06 15:02
.Neterr
阅读(407)
推荐(0)
摘要:
简介 ImageSharp 是一个全新的、功能齐全的、完全托管的、跨平台的 2D 图形库。ImageSharp 旨在简化图像处理,为您带来了一个功能强大而又非常简单的 API。 可以实现很多功能,如:缩放,裁剪,绘画,组合图片等 支持的图像格式: Bmp Gif Jpeg Pbm Png Tiff
阅读全文
posted @ 2022-12-22 18:23
.Neterr
阅读(5575)
推荐(0)
摘要:
基于非对称加密实现接口的安全开放(openapi的实现) 方案一:仅采用非对称加密 方案二:采用非对称加密+对称加密 iOS App签名原理 一、简单的签名原理: 目的:保证每个App都是经过苹果公司官方认证的 背景:因为手机和系统都是苹果公司生产的,所以苹果公司可以在手机上内置公钥,然后在App
阅读全文
posted @ 2022-11-26 09:29
.Neterr
阅读(148)
推荐(0)
摘要:
Portainer Docker图形化界面管理工具 docker run -d -p 8087:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portain
阅读全文
posted @ 2022-11-13 15:16
.Neterr
阅读(42)
推荐(0)
摘要:
通过docker安装 docker run -d -p 27017:27017 --name mongo01 -v /docker/mongo/config:/data/configdb -v /docker/db:/data/dbmongo -e MONGO_INITDB_ROOT_USERNAM
阅读全文
posted @ 2022-11-03 17:44
.Neterr
阅读(36)
推荐(0)
摘要:
操作流程 1. 安装Nodejs 2. 配置npm镜像源、缓存目录 3. 安装vue cli脚手架(可能不需要) 4. 创建vue项目 参考vue官网 5. 运行项目 参考vue官网 如果提示Cannot find package,运行npm install命令安装项目依赖包 其他命令 卸载脚手架
阅读全文
posted @ 2022-11-01 00:01
.Neterr
阅读(35)
推荐(0)
摘要:
介绍 在 ASP.NET Core MVC 应用程序中调用AddMvc()或AddMvcCore()添加的标准服务之一是 ApiExplorer。通过调用services.AddApiExplorer()将 ApiExplorer 服务添加到您的应用程序中 ApiExplorer 功能是Micros
阅读全文
posted @ 2022-10-16 16:17
.Neterr
阅读(468)
推荐(0)
摘要:
`Swashbuckle.AspNetCore.Annotations`包括一组可应用于Controller、Action和Model的自定义属性,以丰富生成的 Swagger #### 安装Nuget ``` install-package Swashbuckle.AspNetCore.Annot
阅读全文
posted @ 2022-10-16 09:24
.Neterr
阅读(1280)
推荐(0)
摘要:
生成器将在单个 Swagger 文档中包含所有 API 操作。但是,如有必要,您可以创建多个文档。例如,您可能希望每个 API 版本都有一个单独的文档。 案例 添加服务、中间件(v1、v2) builder.Services.AddSwaggerGen(options => { //定义多个Swag
阅读全文
posted @ 2022-10-16 08:40
.Neterr
阅读(422)
推荐(1)
摘要:
什么是Swagger/OpenAPI Swagger是为帮助我们生成webapi文档的工具,可以直接从您的路由、控制器和模型生成漂亮的 API 文档 Swagger 是一个与语言无关的规范,用于描述 REST API。Swagger 项目已捐赠给 OpenAPI 计划,现在它被称为OpenAPI。
阅读全文
posted @ 2022-10-16 08:37
.Neterr
阅读(661)
推荐(1)
摘要:
IPTools IPTools 是一个用于快速查询全球 IP 地址信息的库,支持国内和国际 IP 查询,提供详细的地理位置信息(如国家、省份、城市)以及经纬度等数据。 https://mp.weixin.qq.com/s/LYcQJF6fJYPMgKaKyFcp5A MaxMind https://
阅读全文
posted @ 2022-09-06 18:36
.Neterr
阅读(14)
推荐(0)
摘要:
概念 RPC 远程过程调用(远程函数调用) GRPC google开发,跨语言RPC,用来解决微服务通信性能和扩展问题 跨语言:通过Protobuffer文件(通用文件)解决跨语言问题的 高并发:GRPC基于http/2协议,多路复用机制(服务端一个线程可以连接任意数量客户端请求) webapi缺陷
阅读全文
posted @ 2022-09-03 22:10
.Neterr
阅读(334)
推荐(0)
摘要:
后台运行项目 安装dotnet core sdk https://dotnet.microsoft.com/en-us/download/dotnet/6.0 创建项目 dotnet new mvc -o ./app1 cd app1 # 发布项目 dotnet publish -o ../app1
阅读全文
posted @ 2022-08-28 23:44
.Neterr
阅读(267)
推荐(0)
摘要:
grep命令 grep是行过滤工具;用于根据关键字进行行过滤 语法: grep [选项] '关键字' 文件名 常见选项 -i: 不区分大小写 -v: 查找不包含指定内容的行,反向选择 -w: 按单词搜索 -o: 打印匹配关键字 -c: 统计匹配到的行数 -n: 显示行号 -r: 逐层遍历目录查找 -
阅读全文
posted @ 2022-08-07 09:55
.Neterr
阅读(500)
推荐(0)
摘要:
API Demo 查数量 //count:数量 { var countResponse1 = client.Count<ElasticUserModel>(c => c.Index("index13")); var countResponse2 = client.Count<ElasticUserM
阅读全文
posted @ 2022-07-31 22:48
.Neterr
阅读(724)
推荐(0)
摘要:
API Demo 索引(添加) var settings = new ConnectionSettings(new Uri("http://****:9200/")).DefaultFieldNameInferrer(name => name); var client = new ElasticCl
阅读全文
posted @ 2022-07-28 20:42
.Neterr
阅读(334)
推荐(0)
摘要:
NEST映射方式 自动映射(从POCO属性类型推断) 在创建索引或通过Put Mapping API创建映射时,NEST提供了一个称为自动映射的功能,可以从您正在映射的CLR POCO属性类型自动推断出正确的Elasticsearch字段数据类型。 //自动映射(AutoMap()) { var s
阅读全文
posted @ 2022-07-27 21:03
.Neterr
阅读(420)
推荐(0)
摘要:
# 介绍 JSON Schema是一个用于验证JSON数据的强大工具,可校验json格式和数据值 # 入门案例 安装Nuget ``` Install-package Newtonsoft.Json.Schema ``` 代码: ``` { string json = @"{ 'name':'fan
阅读全文
posted @ 2022-07-16 08:39
.Neterr
阅读(882)
推荐(1)
摘要:
rules .gitlab-ci.yml 的 rules 配置,能让我们根据自定义的筛选条件,控制 job 是否执行: 这段脚本我只想在 dev 分支执行,另一段只想在 master 分支执行; 这段脚本我只想在 master 分支上打 tag 的时候触发,其他情况不触发; 这段脚本我只想在 这些文
阅读全文
posted @ 2022-06-26 15:48
.Neterr
阅读(1150)
推荐(0)
摘要:
介绍 Elasticsearch 官方为 .NET 提供了 2 个官方客户端库:Elasticsearch.Net 和 NEST。 Elasticsearch.Net 和 NEST 对比说明: 可以简单理解为 Elasticsearch.Net 是 NEST 的一个子集。 NEST 内部使用了 El
阅读全文
posted @ 2022-06-23 23:05
.Neterr
阅读(869)
推荐(0)
摘要:
yield 关键字向编译器指示它所在的方法是迭代器块 yield 关键字与 return 关键字结合使用,向枚举器对象提供值。 这是一个返回值,例如,在 foreach 语句的每一次循环中返回的值。 yield 关键字也可与 break 结合使用,表示迭代结束。 例子: yield return <
阅读全文
posted @ 2022-06-19 23:40
.Neterr
阅读(299)
推荐(0)
摘要:
索引API 获取索引 var settings = new ConnectionSettings(new Uri("http://****:9200/")); var client = new ElasticClient(settings); { var getIndexResponse = cli
阅读全文
posted @ 2022-06-16 23:32
.Neterr
阅读(166)
推荐(0)
摘要:
介绍 ASP.NET Core 数据保护提供简单易用的加密 API,开发人员可以使用它来保护数据,包括密钥管理。 Data Protection(数据安全)机制:为了确保Web应用敏感数据的安全存储,该机制提供了一个简单、基于非对称加密改进的加密API用于数据保护。 它不需要开发人员自行生成密钥,它
阅读全文
posted @ 2022-06-12 19:55
.Neterr
阅读(1832)
推荐(0)
摘要:
变量基础知识 定义变量不加$,使用变量加$ your_name="qinjx" echo $your_name # 或${your_name} 数值运算:$((表达式)) 案例: cc=$((aa + bb)) declare 选项: - --给变量设定类型属性 + --取消变量类型属性 -i --
阅读全文
posted @ 2022-06-12 15:31
.Neterr
阅读(140)
推荐(0)
摘要:
索引名称推断 //索引名推断的3种方式 { var connectionSettings = new ConnectionSettings(new Uri("http://123.56.57.211:9200")); //方式1、默认索引库 connectionSettings.DefaultInd
阅读全文
posted @ 2022-06-11 00:47
.Neterr
阅读(89)
推荐(0)
摘要:
比如压缩流、加密流,这些流不仅有Stream的所有特征,还有自己的个性。它们不仅继承Stream类,还引用Stream类。这些通过"装饰器模式"来实现的流包括:BufferedStream, DeflateStream, GZipStream, CryptoStream, AuthenticateS
阅读全文
posted @ 2022-06-06 21:03
.Neterr
阅读(84)
推荐(0)
摘要:
FileStream FileStream流继承于Stream类,代表一个文件流,使用FileStream类可以对文件进行读取、写入、打开和关闭操作 常用构造函数: public FileStream(string path, FileMode mode, FileAccess access); 参
阅读全文
posted @ 2022-06-05 20:27
.Neterr
阅读(551)
推荐(0)
摘要:
TextReader 抽象类,它是StreamReader的父类, TextReader重要成员 void Close()方法 和上篇Stream一样,TextReader也有Close方法,我们必须牢记,在用完之后应该主动关闭它 void Dispose()方法 释放所有该TextReader 所
阅读全文
posted @ 2022-06-05 09:47
.Neterr
阅读(358)
推荐(0)
摘要:
Stream 代表一个流,抽象类 Stream重要成员 CanRead: 只读属性,判断该流是否能够读取: CanSeek: 只读属性,判断该流是否支持跟踪查找 CanWrite: 只读属性,判断当前流是否可写 Flush()方法 当我们使用流写文件时,数据流会先进入到缓冲区中,而不会立刻写入文件,
阅读全文
posted @ 2022-06-04 19:06
.Neterr
阅读(1048)
推荐(0)