基于ChatGPT的API的C#接入研究
今年开年,最火的莫过于ChatGPT的相关讨论,这个提供了非常强大的AI处理,并且整个平台也提供了很多对应的API进行接入的处理,使得我们可以在各种程序上无缝接入AI的后端处理,从而实现智能AI的各种应用。ChatGPT的API可以在前端,以及一些后端进行API的接入,本篇随笔主要介绍基于ChatGPT的API的C#接入研究。
1、ChatGPT的 ...
不用Blazor WebAssembly,开发在浏览器端编译和运行C#代码的网站
本文中,我将会为大家分享一个如何用.NET技术开发“在浏览器端编译和运行C#代码的工具”,核心的技术就是用C#编写不依赖于Blazor框架的WebAssembly以及Roslyn技术。
一、 为什么要开发这样的工具?
对于编程初学者来讲,开发环境的安装配置是一个令人头疼的事情,如果能让初学者不用做任何的安装配置,直接打开浏览器就能编 ...
关于C#中async/await的用法
一直对c#中async/await的用法模模糊糊,不太清晰,今天写了一下Demo彻底明确一下async/await的用法,以免因为对其不了解而对后期的业务产生影响(比如事务导致的锁表等等)。
1. 首先,async/await 成对出现才有意义。其意义在于可以等待异步操作完成后继续顺序执行,而不是异步操作还没处理完成主线程就进行了下一步。
&nb ...
C#零基础小白快速入门指导
前言
本文写给想学C#的朋友,目的是以尽快的速度入门
C#好学吗?
对于这个问题,我以前的回答是:好学!但仔细想想,不是这么回事,对于新手来说,C#没有那么好学。
反而学Java还要容易一些,学Java Web就行了,就是SpringBoot那一套。
但是C#方向比较多,你是学控制台程序、WebAPI、ASP.NET、Winform还是WPF?如果再区分一 ...
通过一个示例形象地理解C# async await异步
前言
相信大家看过不少讲C# async await的文章,博客园就能搜到很多,但还是有很多C#程序员不明白。
如果搞不明白,其实也不影响使用。但有人就会疑惑,为什么要用异步?我感觉它更慢了,跟同步有啥区别?
有的人研究深入,比如去研究状态机,可能会明白其中的原理。但深入研究的毕竟少数。有的人写一些示例,有的专业有的 ...
ORM哪家强?java,c#,php,python,go 逐一对比, 网友直呼:全面客观
前言
最近一段时间,我使用golang开发了一个新的ORM库。
为了让这个库更好用,我比较研究了各语言的主流ORM库,发现有一些语言的ORM库确实很好用,而有另外一些语言的库那不是一般的难用。
然后我总结了他们呢的一些共性和差异点,于是形成了本文的主要内容。
本文会先说明什么是SQL编写难题,以及探讨一下 code first 和 d ...
C# 托管堆 遭破坏 问题溯源分析
一:背景
1. 讲故事
年前遇到了好几例托管堆被损坏的案例,有些运气好一些,从被破坏的托管堆内存现场能观测出大概是什么问题,但更多的情况下是无法做出准确判断的,原因就在于生成的dump是第二现场,借用之前文章的一张图,大家可以理解一下。
为了帮助更多受此问题困扰的朋友,这篇来整理一下如何 快狠准 的抓取第一现场 ...
1.5万字长文:从 C# 入门 Kafka
目录1, 搭建 Kafka 环境安装 docker-compose单节点 Kafka 的部署Kafka 集群的部署2, Kafka 概念基本概念关于 Kafka 脚本工具主题管理使用 C# 创建分区分区与复制生产者消费者修改配置3, Kafka .NET 基础生产者批量生产使用 Tasks.WhenAll如何进行性能测试消费4,生产者连接 BrokerKey 分区评估消息发送时间生产者配置acksboo ...
C#11新特性整理
假期中有时间,整理了C#11的各个新特性,简单分享给大家。
一、使用VSCode新建一个.NET7.0的Console工程
<roject Sdk="Microsoft.NET.Sdk">
<ropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<RootNamespace>_NET7</RootNamespace>
<ImplicitUsings>enable ...
C#调用js库的方法
前言
用.net6开发一个Winform程序,处理Excel文件,并把结果导出Excel文件。
要用到两个算法,一是turf.js库的booleanPointInPolygon方法,判断经纬度坐标是否在区域内;二是经纬度纠偏算法,因为对方给的区域坐标集合有偏移,需要纠偏。
这两个算法,网上找C#的实现,一是不好找;二是找来的不信任,我还要测试以确保没有 ...
看我是如何用C#编写一个小于8KB的贪吃蛇游戏的
译者注:这是Michal Strehovský大佬的一篇文章,他目前在微软.NET Runtime团队工作,主要是负责.NET NativeAOT功能的开发。我在前几天看到这篇文章,非常喜欢,虽然它的内容稍微有点过时(还是使用的.NET Core 3.0),不过其中的一些编程技巧和思维方式很受用,特意找到Michal大佬要到了授权,翻译给大家看。
作者:Micha ...
C#多线程(四)并行编程篇之结构化
前言
在前三章中我们的案例大量使用到了Thread这个类,通过其原始API,对其进行创建、启动、中断、中断、终止、取消以及异常处理,这样的写法不仅不够优雅(对接下来这篇,我称其为.NET现代化并行编程体系中出现的API而言),并且大部分的接口都是极度复杂和危险的。很幸运,如今.NET已经提供,并且普及了一系列多线程API来 ...
使用C# 11的静态接口方法改进 面向约定 的设计
C# 11带来了一个我期待已久的特性——静态接口方法。我们知道接口是针对契约的定义,但是一直以来它只能定义一组“实例”的契约,而不能定义类型(的静态成员)的契约,因为定义在接口中的方法只能是实例方法。由于缺乏针对“类型契约”的支持,我们在设计一些框架或者类库的时候,只能采用“按照约定”的设计,比如ASP.NET ...
工程坐标转换方法C#代码实现
目录1. 前言2. 计算总体框架3. C#代码实现3.1 整体类的构建3.2 椭球参数赋值3.3 转换1、3(大地经纬度坐标与地心地固坐标的转换)3.4 投影转换3.5 转换2的实现(三参数、七参数)3.6 转换5的实现(四参数+高程拟合)3.7 调用过程3.7.1 一步法3.7.2 两步法4. 总结
1. 前言
在前面的文章中系统的阐述了工程坐标的转换类别和转 ...
使用.NET7和C#11打造最快的序列化程序-以MemoryPack为例
译者注
本文是一篇不可多得的好文,MemoryPack 的作者 neuecc 大佬通过本文解释了他是如何将序列化程序性能提升到极致的;其中从很多方面(可变长度、字符串、集合等)解释了一些性能优化的技巧,值得每一个开发人员学习,特别是框架的开发人员的学习,一定能让大家获益匪浅。
简介
我发布了一个名为MemoryPack 的新序列化程 ...
基于.net C# Socket WinForm MQTT 客户端开发
1、什么是MQTT? MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开 ...
在C#中使用Halcon开发视觉检测程序
目录简介将 HALCON/.NET 添加到应用程序添加控件引用dll调用Halcon算子程序示例HSmartWindowControl控件使用加载、保存图像扩展:加载相机图像画线、画框并保存检测算法抓边算法2D测量模型代码实现使用方法测宽算法附件
简介
本文的初衷是希望帮助那些有其它平台视觉算法开发经验的人能快速转入Halcon平台下,通过文中的示 ...
C#多线程(三)线程高级篇
前言
抛开死锁不谈,只聊性能问题,尽管锁总能粗暴的满足同步需求,但一旦存在竞争关系,意味着一定会有线程被阻塞,竞争越激烈,被阻塞的线程越多,上下文切换次数越多,调度成本越大,显然在高并发的场景下会损害性能。在高并发高性能且要求线程安全的述求下,无锁构造(非阻塞构造)闪亮登场。
如果你对同步&阻塞不是很 ...
C#11之原始字符串
最近.NET7.0和C#11相继发布,笔者也是第一时间就用上了C#11,其中C#11的有一个更新能解决困扰我多年的问题,也就是文章的标题原始字符串。
在使用C#11的原始字符串时,发现的一些有意思的东西,超出了我原本对它的期待,话不多说,我们一起来看看。
多年的困扰
我不知道大家有没有写过这样的代码,在单元测试里面我需要创建 ...
C#多线程(一)线程基础篇
线程基础
视频已经发布到B站
如果你已经掌握了线程基础,请跳往下一篇:同步基础传送门
参考文章:
《Threading in C# 》(Joseph Albahari)https://www.albahari.com/threading/
《Threading in C# 》中文翻译(GKarch ):https://blog.gkarch.com/topic/threading.html
《图解系统》(小林coding):https://xiaolincod ...