
C#入门
文章平均质量分 81
跟我学C#编程
webmote
一位资深系统架构师、70后大龄码农、擅长.net core、微服务、前端Vue、大数据ETL、系统DevOps运维、CentOS等,关注我,和我一起平坑码代码,组团打怪兽。
展开
-
在 IIS 中怎么设置程序环境变量,而无需重启?
方法作用范围适用场景主要缺点系统环境变量影响所有进程简单通用影响过大注册表修改 W3SVC/WAS仅影响 IIS更精确的控制需要重启 IIS精细控制应用池适用于特定 App Pool配置管理复杂IIS UI 配置适用于个别应用可视化管理过于繁琐appcmd.exe适用于自动化可脚本化管理语法较晦涩如果你希望设置环境变量影响整个系统,使用系统环境变量方法;如果你只想影响IIS 相关进程,使用注册表修改;如果你需要针对特定应用池,使用或IIS UI。原创 2025-03-12 14:36:20 · 170 阅读 · 0 评论 -
快速上手——.net封装使用DeekSeek-V3 模型
通过本文,我们详细介绍了如何使用.NET 9 调用DeepSeek的API进行文本生成。我们从创建项目、安装必要的NuGet包,到编写代码、运行实例,一步步展示了整个过程。此外,我们还介绍了DeepSeek的API收费模式,帮助开发者更好地了解如何控制成本。在新的一年里,AI技术将继续引领创新潮流。希望本文能为你提供一些启发,帮助你在AI领域取得更大的成就。祝大家新年快乐,技术更上一层楼!你学废了吗?原创 2025-02-06 13:17:51 · 2216 阅读 · 0 评论 -
微软官方重磅发布了《C#13/.NET9中文手册》
手册的第三部分是关于如何构建和部署跨平台应用程序的实用指南,包含使用ASP.NET Core 9.0构建Web应用程序的章节,以及利用Xamarin.Forms进行移动应用开发的实战案例。这种清晰而系统的分层次教学,既考虑了入门者的学习需求,也为有经验的开发者提供了深入的技术探讨和实用的项目实践,充分体现了“融合创新”的理念。该手册由微软的技术专家根据最新的.NET9编写,涵盖了从基础到高级的知识,适合不同技术水平的学习者,成为程序开发学习的利器。还好,一大早的没有错过几个亿!以上信息够不够劲爆?原创 2024-11-19 09:19:18 · 775 阅读 · 0 评论 -
.net 调用海康SDK实现NVR录像视频的下载
上3篇海康SDK使用以及常见的坑受到了许多网友的喜爱,这也说明了在工控领域内,使用.net开发还是非常便捷省事的。 针对海康的SDK进行进一步封装,第一版Net Framework版本代码发在[github](https://github.com/codeex/HikVisionNetLibrary)上,供大家测试和使用。这次主要讲解怎么实现从NVR硬盘录像机获取视频并下载保存。原创 2024-09-06 19:51:16 · 577 阅读 · 0 评论 -
.net 调用海康SDK的常用操作封装
上篇海康SDK使用以及常见的坑受到了许多网友的喜爱,这也说明了在工控领域内,使用.net开发还是非常便捷省事的。 结合硬件的开发经验来谈语言,也是非常切合实用主义的,这里继续上篇未完成的事情,对海康威视的SDK进行进一步封装,已解决其在x86和x64系统执行时的疑难杂症,并且对海康的SDK进行进一步封装,第一版代码发在github上,供大家测试和使用。原创 2024-06-16 10:36:46 · 1310 阅读 · 2 评论 -
.net 调用海康SDK以及常见的坑解释
海康的SDK是C++编写的Dll,因为没有很好的进行包装,使用起来还是比较麻烦的,并且随着海康SDK的版本不同,各类版本有许多差异性,不好的封装会导致有很多的问题,这里把踩过的坑列举下,以便后来者少踩坑。我这里没有提供封装好的类库,这应该是有大量需求的,海康自己也没有很好的进行封装,我计划后面会提供一个,先发文章看看是否有需求了,大家可以评论给我。海康SDK在使用的时候,需要进行SDK的初始化,在退出时,需要销毁资源,这里的资源属于非托管资源,因此请谨慎反复调用。引用有几种方式,最简单的方式是直接使用。原创 2024-06-12 11:51:48 · 1098 阅读 · 2 评论 -
2023年总结我所经历的技术大变革
2023年有很多的坏消息,很多朋友都经历了中年失业的社会毒打,而我总算庆幸自己有份安心的工作。也经历了从杭州工作又再次回归西安工作的短暂心理转变,并在技术关注点上也逐步从互联网回归到了传统而又新颖的机器人制造行业。2023年,一个充满变革与挑战的年份,对我个人而言,它不仅仅是日历上的一页翻过,更是技术演进的一大跃进,在这一年中,我不仅见证了技术的迅猛发展,也亲自融入了这场变革之中。既然又到了年末,那就盘点下自己在2023年经历的几个新的技术变革吧。原创 2024-01-20 12:37:16 · 2129 阅读 · 0 评论 -
有关多线程环境下的Volatile、lock、Interlocked和Synchronized们
多线程下的变量访问,就如同脚踏几只船的海王,在其精细的时间管理下安排每一个女朋友约会,一不小心,就很可能打翻友谊的小船,彻底坠入无尽的大海深处...而为了让各位亲爱的猿们,在约会对象之间横跳的时候,能优雅的控制住频率,编程语言引入了多个关键字和对象类完成相关操作。原创 2023-10-28 18:48:47 · 466 阅读 · 0 评论 -
比较浮点数时,我被绊倒了
一天,我在飞快的写代码,当然这个"飞快"我打上了引号, 因为手速奇快吗?并没有。我遇到一个非常普通的场景,对于码农多年的我老说,应该是小菜一碟了。然而,这次不一样,我被比较浮点数,绊倒了。原创 2023-10-28 11:05:24 · 496 阅读 · 0 评论 -
[.NET 6] IHostedService 的呼叫等等我的爱——等待Web应用准备就绪
如果在应用中同时启用了多个IHostedService,已开始多个背景任务,那么一个有趣的现象是,其他的任务总是比 web应用启动的快,这有时候会导致一些异常。当然,除了有些无力的控制感以外,并没有啥大不了的,除非真的有其他需求要求我们必须这么做。而现在我就遇到了一个类似的问题,我想在背景任务中获取应用已经绑定的端口,啊哈哈,什么,应用还没有启动,那我们搞个毛线...原创 2023-09-13 22:39:42 · 509 阅读 · 0 评论 -
翻过那座山——Jenkins编译发布web程序(.net framework web application)
Jenkins是个非常好的工具,不过自从用了gitlab的ci后,这个用途越来越少了。原创 2023-06-27 13:28:24 · 1044 阅读 · 0 评论 -
开始使用Dotnetty高性能网络库进行网络通讯
dotnetty。它是.NET平台上的明星网络库,堪比好莱坞明星,颜值高、性能强、可靠性极高。如果你需要在.NET平台上进行高性能、高可靠性、高可扩展性的网络通信,那么就不能错过它啦!原创 2023-06-25 09:24:49 · 1395 阅读 · 0 评论 -
你知道吗,怎么更好的迁移.NET Framework 的老旧项目?
如果你接管了别人的园子,不管什么原因,总有一堆坐落在园中的器物,或是古旧假山,或是年旧失修的池塘,又或是不合时宜的零散花卉。当你扛起锄头,想对这些旧物下手的时候,最好等等,先坐在旁边的凉椅上,打开Apple中的正念,闭上眼睛,想想下之前的主人,为什么这样做。而我现在,面对就是类似的情景,只不过接手的不是园子,而是来自于远古时期的.Net Framework4.5的项目......原创 2023-06-09 13:06:39 · 493 阅读 · 0 评论 -
重磅级视频直播推流服务,支持H265——Go2RTC
最近在研究推流服务器,部署过SRS、ZLMediaKit等服务,从2者的使用来看,SRS相对表现优异,支持众多的媒体格式!然而,强中自有强中手,在Go2RTC的面前,忽然感觉他们都不香了!这款新进开源的服务,支持跨平台部署,占用资源极少,并且配置简单,使用方便,简直堪称直播推流的神器!原创 2023-04-06 21:43:19 · 4325 阅读 · 4 评论 -
关于日期和时间的那些事,过来看看你都能搞对吗?
有关日期类型,估计是每个学习编程语言都会接触到的类型概念。关于日期和时间的那些事,过来看看你都能搞对吗?以下只是一些有关日期的问题,希望你都知道答案哦!原创 2023-02-28 10:04:51 · 667 阅读 · 0 评论 -
奇怪的知识——Windows下怎么修改进程的名称?
windows下每个启动的进程都有一个名称,这个名称在程序运行时,不过使用什么接口都无法更改!有时候为了特别的目的,我们可能想要修改进程的名称,该怎么做到呢?原创 2023-01-05 17:28:48 · 17922 阅读 · 2 评论 -
Windows下的通用进程守护程序(持续更新中),高仿supervisor。
比如开发了.net core的web程序,明明可以很好的部署在IIS下,但领导偏不,他就想启动为不可见的Console程序。如果是一个console程序,那么还可以借助exe转service的技术,把它转换成windows service服务,好像也没啥大不了,怕就怕竟然又多个。多个console启动在服务端虽然有些不好看,忍忍是不是就没事了? 不,如果程序写的不好崩溃了咋办?这....容我思考下,感觉好像需要写个守护程序......哎,部署在Linux下不行吗?使用supervisor不行吗?好像原创 2022-12-23 15:23:28 · 4572 阅读 · 0 评论 -
系列ML.Net 学习篇【一】——初识机器学习
微软官方的目的就是,让你无需离开 .NET 生态系统,便可以使用 C# 或 F# 创建自定义 ML 模型。并让你可以轻松地将机器学习集成到 Web、移动、桌面、游戏和物联网应用中。所以如果你刚好有Python训练好的模型,而正在烦恼怎么应用到.NET平台上时,那么刚好可以使用ML.NET,使用你的模型,它基本兼容市面上所有常见的数据格式,ML.NET支持TensorFlow和ONNX模型。原创 2022-11-29 17:09:47 · 2391 阅读 · 1 评论 -
.net core 的 Console 输出乱码问题
操作系统是英文的,因此乱码也不奇怪,那么这个可以很好的解决问题,记录一下。Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); Console.OutputEncoding = Encoding.GetEncoding("GB2312");原创 2021-11-18 10:40:21 · 1557 阅读 · 0 评论 -
理解C#中的ConfigureAwait
原文:ConfigureAwait FAQ - .NET Blog作者:Stephen翻译:xiaoxiaotank静下心来,你一定会有收获。七年前(原文发布于2019年).NET的编程语言和框架库添加了async/await语法糖。自那以后,它犹如星火燎原一般,不仅遍及整个.NET生态,还被许许多多的其他语言和框架所借鉴。当然,.NET也有很大改进,就拿对使用异步的语言结构上的补充来说,它提供了异步API支持,并对async/await的基础架构进行了根本改进(特别是 .NET Core中性.转载 2021-11-11 13:59:15 · 2479 阅读 · 4 评论 -
【官宣】.NET 6 正式版来了
号外,.NET 6 正式版已经发布了!.NET 6家人们,可以到 微软官方进行下载安装使用。.NET 6 是从 .NET 5开始的 .NET 统一计划的最后部分。这种统一体现在跨平台、桌面、IoT 和云应用的统一的SDK、基本库和运行时。 除了这种统一,.NET 6 生态系统还提供:简化的开发:入门很简单。 C# 10中的新语言功能减少了需要编写的代码量。 通过 Web 堆栈和最小 API 方面的投资,可以轻松快速编写更小、速度更快的微服务。更好的性能:.NET 6 是最快原创 2021-11-09 11:00:29 · 3284 阅读 · 0 评论 -
ado.net/dapper 的多sql语句执行的疑惑
????欢迎点赞 :???? 收藏 ⭐留言 ???? 如有错误敬请指正,赐人玫瑰,手留余香!????本文作者:由webmote 原创,首发于 【掘金】????作者格言: 生活在于折腾,当你不折腾生活时,生活就开始折腾你,让我们一起加油!????????????1. Query 和Execute方法大家经常使用Dapper或者Ado.net,会很自然的区分使用Query 和Execute,一般把查询放在Query方法内执行,而把insert \ update \ delete,存储过程等语句放在E原创 2021-10-24 13:06:59 · 2781 阅读 · 0 评论 -
启动应用程序时出错了怎么办?
????欢迎点赞 :???? 收藏 ⭐留言 ???? 如有错误敬请指正,赐人玫瑰,手留余香!????本文作者:由webmote 原创,首发于 【掘金】????作者格言: 生活在于折腾,当你不折腾生活时,生活就开始折腾你,让我们一起加油!????????????1.希望糟糕的事情别发生一旦看见它,必然令人心碎,令人头疼。它通常在应用程序日志中不包含(或很少)信息,并且如果您不幸遇到导致此错误的问题,这是一个保证糟糕的一天。在这篇博文中,我将尝试包含尽可能多的解决方案,如果没有,请你随时发表评论原创 2021-09-14 22:10:35 · 2692 阅读 · 0 评论 -
.net 6 新特性,支持HTTP/3 端点发布
????欢迎点赞 :???? 收藏 ⭐留言 ???? 如有错误敬请指正,赐人玫瑰,手留余香!????本文作者:由webmote 原创,首发于 【掘金】????作者格言: 生活在于折腾,当你不折腾生活时,生活就开始折腾你,让我们一起加油!???????????????? 序言Http3 协议构建在UDP的基础上,是的,就这么神奇,以前被誉为不稳定大神的UDP,现在承担起可靠通讯协议的底层协议。为了消除UDP的不确定性,在UDP协议之上,新增了QUIC协议。使用QUIC协议代替TCP协议中关于可原创 2021-09-06 12:51:30 · 1741 阅读 · 0 评论 -
C# EVAL EXPRESSION ——表达式引擎Eval Expression
序言在某些项目中,引入公式也是一个方便用户的需求,C#公式库最有名的莫过于Eval Expression,看个例子:var compiled_3 = Eval.Compile<Func<string, string, string>>("var a= X.ToUpper() + Y; var b= X.ToUpper() + Y;var c= X.ToUpper() + Y;var d= X.ToUpper() + Y;" + "var原创 2021-07-01 17:23:32 · 13526 阅读 · 9 评论 -
一文让你掌握单元测试的Mock、Stub和Fake
单元测试中有几个神秘的概念,它们就是Mock,模拟对象;Stub,存根;Fake,伪对象,它们听起来很类似,也很容易混淆,让我们通过这篇文章揭开它们神秘的面纱,探索其幽深的小径。1.什么是伪对象(Fake)伪对象,通俗的将就是假货!是用来代替具有“智能”对象的假货实现。通常是一个快捷实现,使它在不同的单元测试中有用,但不能用作集成测试。到目前为止,我看到的最常见的例子是数据仓储层中。假设我有一个标准的 SQL Server 仓储库,如下所示:public interface IUserRep.原创 2021-06-21 01:15:34 · 5108 阅读 · 2 评论 -
真人真事,来自一位架构师的呐喊:杜绝面向监狱编程,程序员做好自身防护,时刻保持敬畏之心
1. 序言随着国家软硬实力的飞速发展,软件工程师逐渐褪去神秘的光环,成为信息化进程中千万岗位中普通的一份子,而这群幽默智慧的群体也把自己通俗的成为“程序猿”或“程序媛”。大浪淘沙,泥沙俱下,随着越来越多的人加入,也不乏有狗苟蝇生之辈混入其中,浑水摸鱼。今天这个小故事来自真人真事,希望能给你带来启发。2.背景西部古城,残阳如血。小M停下手中的游戏,拿起手机,激动的翻看到来自K公司HR的入职Offer。自从上次作为技术经理辞职后,小M就在考虑今后的发展方向,经过慎重分析自身长短处和年龄劣势,小M决原创 2021-06-18 17:20:59 · 2890 阅读 · 12 评论 -
Microsoft Edge 浏览器开发控件WebView2 尝鲜
还记得微软平台老式的WebView控件吗,它从属于IE浏览器,随着现代浏览器的升级换代,IE已经成为历史,而微软 Edge也放弃了自家的浏览器引擎,转投到 Chromium的怀抱。是的,历史车轮滚滚向前,随着老浪的消亡,新生代 webview2 也隆重登场,其寄宿在Win32和Chromium之上,势必成为windows桌面开发程序员的利器。1. 脱胎于Edge(Chromium)内核官方消息: WebView2 控件使用 Microsoft Edge (Chromium) 作为呈现引擎在应用中.原创 2021-06-11 18:08:44 · 24684 阅读 · 33 评论 -
C# 8.0的新功能三——简化的数组操作
C#8.0新功能系列中断了好久,今天又重新起航了,每天学习进步一点点~~~1.数组操作的传统做法有过数组学习经验的人,应该都知道数组的访问可以按照下标直接访问,那么最直接的数组访问方式也即如此。如果需要访问数组的后几个字母,那么我们只需要获取数组总长度,然后减去从后数的个数即可。当然c#也提供了Linq查询方式,我们可以利用 Skip,Take组合获取指定位置的字母。例子代码如下:string[] letters = { "A", "B", "C", "D", "E", "F", "G", .原创 2021-06-08 12:39:34 · 5970 阅读 · 0 评论 -
EF Core Error:Unable to cast object of type ‘System.DBNull‘ to type ‘System.String‘
[ExceptionMessage]:Unable to cast object of type ‘System.DBNull’ to type ‘System.String’.\r\n\t[ExceptionStackTrace]: at MySqlConnector.Core.Row.GetString(Int32 ordinal) in /_/src/MySqlConnector/Core/Row.cs:line 371\r\n1. EF Core错误排查EF Core框架是微软的.NET.原创 2021-06-07 17:06:31 · 13905 阅读 · 9 评论 -
解放前端工程师——手把手教你开发自己的自定义列表和自定义表单系列之二接口
前言阅读前请按照顺序参看系列文章,效果更佳!Vue中路由到一个公共组件,然后根据路径中是否存在文件动态加载组件让前端工程师躺平——后端大佬教你写通用组件的开发系列一据说系列文章很难火爆,因为知识点包袱不够多,所以大家看往后不太愿意收藏, 不过没关系了, 系列文章的好处是看着舒服,碎片化时间内很快就看完了,不是吗?1、回顾下第一篇基本属于探索阶段,经过摸索,Vue的功能还是非常强大的!作为前端重要的输出武器,可谓是小李飞刀,例无虚发,刀刀致命。既然通过验证,说明公共组件可以完成工作,并且可以很原创 2021-06-04 12:01:42 · 6086 阅读 · 55 评论 -
手把手带你恢复代码仓库到新站点
一般代码托管在私有的GitLab仓库内,如果启用了定时备份,GitLab会定期备份仓库数据到文件,但是由于某些原因,我们需要把它恢复到新的站点,怎么办呢?1.恢复仓库工作利用gitlab的备份文件,恢复仓库数据到新站点,并修改管理员账号。由此可知,我们如果想对代码仓进行备份,备份好gitlab的定期备份即可随时恢复代码仓库,也提醒运维工程师们,保护好代码仓库的备份文件至关重要。2. 准备好备份文件备份文件大都以一个自编号id为开头的文件,形如: 1523321222… tar文件。重要提示:.原创 2021-05-27 12:16:30 · 4002 阅读 · 10 评论 -
Build 2021 :正式发布.NET 6 Preview4
github发布说明微软在不断推进.NET 6的可用性,昨晚的Build 2021大会上发布了Preview4, 这是一个很大的版本更新,带来大量的功能,以及接近最终的产品交付质量,不过,这并不意味着可以在生产环境使用了,正式发布RC版本是在8月份,正式发布RTM版本是在11.9 ,到时.NET正式完成.NET Framwork和.NET Core以及Mono的功能统一。新产品功能主要包括:System.Text.Json support for IAsyncEnumerableSystem.Te转载 2021-05-28 20:45:15 · 3767 阅读 · 7 评论 -
6种方法教你更好的使用EF Core构建应用程序
大家都知道,ORM(实体关系映射模型)能帮助我们快速构建应用程序,而在使用.net 技术栈工作时,一定会首选Microsoft的数据库访问框架Entity Framework Core(EF Core)来构建应用程序,这里我们就谈谈你们中许多人都熟悉的软件原理和模式。前言、六个原理模式:关注点分离–构建正确的体系结构;服务层–将数据操作与表示操作分开;仓储–选择正确的数据库访问模式;依赖注入–将您的数据库代码转换为服务;建立业务逻辑–将领域驱动设计与EF结合使用;性能调优–如果有需要,让.原创 2021-05-28 14:43:30 · 4377 阅读 · 22 评论 -
.NET5必备工具——EF大数据批量处理----Bulk系列
之前做项目的时候,如果在大批量操作数据时,性能不好.因为在框架中使用了EntityFramework,于是就搜索到某著名插件,Z系列。1.安装然后在类里面添加引用之后,使用DbContext就可以直接点出来。2.博客园有人做过对比试验我们直接拿数据说话吧.EF传统做法: 1000条插入,6秒,10000条,117秒,100000条,> 2分钟,已经没耐心了.使用插件: 10W条,3.59秒;20W条:6秒时间快了大约20倍不止.3.快的原理一句话:整合和数据库的交互E.原创 2021-05-19 09:52:22 · 1633 阅读 · 8 评论 -
程序员都应该设置的输入法选项
就问你:“有没有遇到输入中文后,没切换到英文状态,输入了,导致编译错误?”“有没有输入了引号,结果是中文的导致编译错误?”“有没有输入注释的斜杠,却发现是中文的导致编译错误?”哎,为啥我没早知道这个选项呢?又水了一篇~~~~就问“有没有帮到你?”...原创 2021-04-24 11:21:09 · 1666 阅读 · 3 评论 -
一款基于.net core + vue 的完全开源免费的后台管理系统
最近工作需要,找遍圈圈,没有发现比较好用的后台管理代码,前端的还是蛮多的,这个如果做一款开源的有没有人需要呢?这样的后台,在.net framework的时代,好像满大街都是吧?可能是没找到,这不应该啊,毕竟.net core已经发展了好多年了,有没有能开箱即用的后台管理。或者考虑项目完结后,开源出来一套呢?先记录下来,等待后续。...原创 2021-04-14 09:21:32 · 3184 阅读 · 8 评论 -
.net core 浅克隆和深克隆/浅拷贝和深拷贝
除非语言里只有基础类型,没有引用类型,否则用任何一种编程语言克隆对象都是很棘手的事情。1、前言“老沉,什么是深克隆,什么是浅克隆?”“哈,迷茫了? 这深深浅浅的体验是不是把你搞晕了?”“嗯,这都是啥程序员黑话吗?”“这是专业术语!因为有“引用类型”这个概念,所以才引申出来深克隆和浅克隆的名词。”“我们先聊聊堆(Heap)和栈(Stack)吧。”“好啊,老沉,听你说说!”2、堆和栈堆:在.net 中准确的说是托管堆,它由 CLR 管理,当堆满了后,会自动清理垃圾,所以做.net开发,基.原创 2021-04-06 15:01:58 · 1386 阅读 · 3 评论 -
一篇文章带你搞定ASP.NET Core的 运行健康检查
ASP.NET Core 的健康检查开发于2016年秋季开始。当时它是体系结构草案。2016年11月,发布了相关的测试功能,那跟着我来学学相关知识吧。1、健康检查有啥用?想象一下,您正创建一个ASP.NET Core应用程序,该应用程序在很大程度上依赖于某些子系统,例如数据库,文件系统,API或类似的东西。这是一个很常见的情况,几乎每个应用程序都依赖于数据库。如果与数据库的连接由于各种原因而丢失,则该应用程序肯定会中断。多年来,好像并没有做什么,可以想象ASP.NET运行状况检查有什么用,.原创 2021-04-01 20:31:10 · 1460 阅读 · 0 评论 -
理解 .NET Core中的Channel篇之三——理解背压
这篇文章是.NET中有关Channel的系列文章的一部分。当然,最好从第1部分开始,但是您可以使用下面的链接跳过任何想要的地方。这系列文章均是本人翻译,翻译也是随性而至,并非直译,英文好的可以去看原文,译文可以随便转载,但请注明出处!第1部分–通道入门第2部分–高级通道第3部分–理解背压1、复习上一篇讲到无限队列,读写分离,线程安全,还有优雅的循环读取通道数据,以及获取通道关闭的信号,当然了,你应该还记得我们这样建立通道。var myChannel = Channel.CreateUnb.翻译 2021-03-31 23:12:29 · 1249 阅读 · 5 评论