C#、.NET 、ASP.NET Core、Visual Studio全系列快速入门

基本概念 C# ↓ 编程语⾔ .NET ↓ C#程序运⾏所依赖的平台/框架 ASP.NET Core ↓ 使⽤.NET 开发Web/API 后端的框架 Visual Studio ↓ 开发、编译、调试C#/.NET 项⽬的IDE ⽐如⼀个项⽬: MyProject │ ├── MyProject.sln │ ├── MyProject.Api │ ├── Controllers │ ├── Services │ ├── Models │ ├── Program.cs │ └── appsettings.json │ ├── MyProject.Core │ ├── MyProject. │ └── MyProject.Tests 通常: .sln :整个解决⽅案 .csproj :⼀个具体项⽬ .cs : C# 代码 Controller :接收 HTTP 请求 Service :业务逻辑 Repository :数据库操作 Model/DTO :数据对象 Program.cs :程序启动和服务配置 appsettings.json :配置⽂件 设计模式 典型的三层架构(或更多层架构)的设计模式,通常用于构建复杂的应用程序。每一层都有其特定的职责,下面是对每一层的详细解释: ...

image-20260811145738315

MediaMTX 快速入门

MediaMTX 是一个开源的实时音视频流媒体服务器(Media Server / Media Proxy),以前叫 rtsp-simple-server,后来功能扩展后改名为 MediaMTX。它的定位类似一个“视频流路由器”:负责接收、转发、转换、录制各种实时视频流。 简单理解: 摄像头、程序、浏览器之间的视频“中转站”。 1. 它解决什么问题? 例如你有一个海康摄像头: 摄像头 | | RTSP | ↓ MediaMTX | ├── 浏览器(WebRTC) ├── VLC ├── Unity ├── OpenCV ├── FFmpeg └── 录像文件 摄像头通常只提供: rtsp://192.168.1.100/Streaming/Channels/101 但是: 浏览器不能直接播放 RTSP 微信、小程序不方便播放 RTSP Unity WebGL 不支持 RTSP 多个人同时访问摄像头会增加摄像头压力 MediaMTX 就在中间转换。 2. MediaMTX主要功能 ① RTSP 转 WebRTC(最常用) 例如: 摄像头: RTSP ↓ MediaMTX ↓ WebRTC ↓ 浏览器实时播放 优点: 延迟低(通常几百毫秒) 浏览器直接播放 适合监控、AI检测 例如: 网页: https://server:8889/camera1 直接看到摄像头画面。 ② RTSP 转 HLS 例如: ...

windows server 2022 安装 Linux Docker

为什么不选择windows安装 TimescaleDB 的一些高级工具(例如 TimescaleDB Toolkit)在 Windows 上支持有限,官方建议某些场景使用 Docker/Linux。 项目 Windows原生 Ubuntu Docker 安装 ⭐⭐⭐ ⭐⭐⭐⭐⭐ 维护 ⭐⭐⭐ ⭐⭐⭐⭐ 升级 稍麻烦 方便 备份迁移 一般 方便 工业服务器长期运行 可以 更常见 一、开启 Hyper-V 1. 打开服务器管理器 进入: 服务器管理器 ↓ 添加角色和功能 ↓ 下一步 选择: 基于角色或基于功能的安装 2. 选择服务器 选择当前 Windows Server。 3. 添加角色 勾选: ☑ Hyper-V 想·弹出: 需要添加管理工具? 选择: 添加功能 继续。 然后都默认设置,只是 默认存储 点击: Hyper-V └── 默认存储 会看到两个路径: 虚拟硬盘文件位置 默认一般: C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks 建议改: 例如: D:\Hyper-V\Virtual Hard Disks 虚拟机配置文件位置 默认: C:\ProgramData\Microsoft\Windows\Hyper-V 建议改: D:\Hyper-V\Virtual Machines 最后点击安装后重启 ...

MySQL 时序数据优化

背景 项目刚开始数据库选型错了,采用了MySQL来保存时序数据,在不改动前后端源码的情况下,尽量采用“插件”的方式优化。 假设传感器表: CREATE TABLE sensor_data ( id BIGINT AUTO_INCREMENT PRIMARY KEY, device_id INT, channel INT, value DOUBLE, peak DOUBLE, create_time DATETIME(3) ); 数据: 设备1 每秒采集一次 每天约86400条 一年约3153万条 一、增加索引(优先级最高) 1.1 判断当前索引 先看: SHOW INDEX FROM sensor_data; 例如: Key_name Column_name PRIMARY id 只有主键,没有时间和设备索引。 1.2 增加组合索引 你的查询一般类似: SELECT * FROM sensor_data WHERE device_id=100 AND create_time BETWEEN '2026-08-01' AND '2026-08-02'; 增加: ALTER TABLE sensor_data ADD INDEX idx_device_time ( device_id, create_time ); 1.3 为什么顺序是 device,time? 错误: (create_time,device_id) 因为: 查询: ...

image-20260804173825755

InfluxDB 3 快速入门

influxdb 一、windows安装 influxdb 3.10.5版本 https://dl.influxdata.com/influxdb/releases/influxdb3-core-3.10.5-windows_amd64.zip 二、测试运行 在当前文件夹下打开cmd .\influxdb3.exe --version 应该显示: influxdb3 3.10.5 三、创建数据目录 InfluxDB 3 使用新的存储方式,不再是 v2 的: bolt engine 而是类似: Parquet Object Storage 本地文件也可以存储。 例如: D:\influxdb3 ├── data └── wal 四、启动 InfluxDB 示例: (取消认证token) .\influxdb3.exe serve --node-id node01 --object-store file --data-dir D:\influxdb3\data --without-auth 启动后默认监听: 8181 检查: curl http://127.0.0.1:8181/ping 正常会返回版本信息,例如: {"product_name":"InfluxDB 3 Core","version":"3.10.5","revision":"df21654049","process_id":"c8ef660e-ae38-41d1-835f-81ac14376d24"} 五、创建数据库 InfluxDB 3 不叫 bucket,而叫: database 例如: influxdb3 create database sensor 查看: influxdb3 show databases 六、写入测试数据 例如: influxdb3 write --database sensor "temperature,device=001 value=25.6" 各部分含义 部分 含义 influxdb3 write InfluxDB 3.0 的写入子命令 --database sensor 指定要写入的数据库名为 sensor "temperature,device=001 value=25.6" Line Protocol 格式的数据行 Line Protocol 数据解析 text ...

modbus快速入门

1. Modbus 是什么? Modbus 是一种工业通信协议,用于 PLC、传感器、变频器、仪表、智能电表等设备之间交换数据。 它的特点: 简单 开放标准 工业应用非常广 主从结构(传统 Modbus RTU/TCP) 在 Modbus 里面,主站(Master) 可以简单理解为: 主动发起通信、提出读写请求的一方。 而: 从站(Slave) 是被询问、返回数据或执行命令的一方。 现在新的 Modbus 标准里更常叫: Master → Client(客户端) Slave → Server(服务器) 但工业现场仍然习惯叫主站/从站。 典型场景: 上位机/PLC | | Modbus | +---+----+----+ | | | 温度计 电表 变频器 2. Modbus 有哪些类型? 主要有三个: 类型 物理层 常用场景 Modbus RTU RS485 工业现场最多 Modbus ASCII RS232/485 老设备 Modbus TCP Ethernet 现在越来越多 现在最常用: RS485 + Modbus RTU 网口 + Modbus TCP 3. Modbus TCP 快速理解 例如: ...

image-20260721092636109

SVN版本控制快速入门

现在大多数互联网、开源项目已经转向 Git + GitHub/GitLab/Gitea,不过 SVN 在一些企业、传统行业、内部项目里仍然非常常见。Apache Subversion 目前仍在维护,并且官方定位仍是企业级集中式版本控制系统。 简单来说: SVN Git 类型 集中式版本控制 分布式版本控制 流行年代 2000~2015 2010年至今 服务器依赖 强依赖服务器 本地仓库即可 分支 较弱 非常强 大文件 较友好 需要 Git LFS 学习难度 简单 稍复杂 企业老项目 很多 逐渐替代 开源项目 少 主流 使用场景 1. 传统企业软件开发 例如: 银行 工厂自动化 嵌入式设备公司 汽车行业 电力行业 政府项目 原因: 项目生命周期很长(10年以上) 不希望频繁迁移 权限管理简单 比如: SVN服务器 /project ├── trunk ├── branches └── tags 管理员可以精确控制: 张三: /project/A 读写 李四: /project/B 只读 SVN 的路径权限控制一直是它的优势。 2. 大量二进制文件 例如: ...

image-20260630131410772

HK1 BOX 晶晨S905X3芯片刷home assistant智能家居系统

HK1 Box (S905X3) 刷冬瓜HAOS完整教程 参考冬瓜HAOS通刷S905X3方案教程 os17.3.1 - 冬瓜HAOS刷机区 - 『瀚思彼岸』» 智能家居技术论坛 - Powered by Discuz!,安装包也在里面 最近在玩home assistant,发现一个中国大佬优化后的整合包——冬瓜haos,直接上 一、准备工作 项目 说明 硬件 HK1 Box盒子、电源适配器、网线、USB 2.0 U盘(兼容性最好)、电脑 下载文件 冬瓜HAOS S905X3 16.3.1镜像 烧录工具 balenaEtcher或者Rufus 二、制作引导U盘 打开balenaEtcher(balenaEtcher如果烧录失败可以选择Rufus) 选择下载好的 .xz 文件(无需解压,直接选) 选择你的U盘 直接开始 烧录完成后,电脑会出现一个名为 BOOT 的U盘分区 打开 BOOT 分区,找到并双击运行 dtb_select.exe 选择meson-sm1-hk1box-vontar-x3.dtb`后确认,然后安全弹出U盘 三、U盘引导启动 将U盘插入HK1 Box 靠近网口的USB接口 插上网线(必须插,全程依赖网络操作) 最后接通电源 等待约 2-3分钟,让盒子从U盘启动 上面的方法适用于安卓系统 如果是armbian系统,所以插上U盘后需要通过ssh输入reboot "update"后从U盘引导重启 因为支持TF卡,如果U盘不行可以考虑,多折腾一下 四、连接并刷入系统 在电脑浏览器中输入: http://wghatools.local:7681 如果打不开,去路由器后台找到名为 wghatools 的设备IP,用 http://<该IP>:7681 访问 登录终端: 用户名:root 密码:1234 执行刷机命令(输入 ./zwgu 后按 TAB 键自动补全): ...

image-20260630162026650

HK1 BOX 晶晨S905X3芯片线刷slimBOXtv-9.17.2-ATV系统包

折腾来折腾去,弄成砖了,刷一个安卓TV系统试试 准备 从【HK1 BOX】1000M_晶晨S905X3芯片_Slimbox 9.20-Mod ATV_中文线刷包 - 机顶盒/智能电视 数码之家这里选了一个链接: https://pan.baidu.com/s/5cs6Je-U_6Uk2cJj7HOoarQ,在里面的路径:A《当贝纯净桌面–固件大全》(固件更全)»>【《通刷固件包》】一包通刷多种型号»>16《【S905X3通刷】【HK1 BOX】【适配slimBOXtv所有机型】slimBOXtv-9.17.2-通刷固件包》。 同时在《晶晨线刷刷机工具》中下载Amlogic_USB_Burning_Tool_v2.2.4,以及license。最后需要把放license在USB_Burning_Tool安装文件夹的根目录。 开始 参考:教你如何使用Amlogic晶晨工具线刷附晶晨烧录工具下载_综合交流大区_ZNDS 上面文章里面说的就比较详细 但是因为我顶住盒子AV孔里的复位键(Reset)没有效果。所以我才拆机短接强刷。拆机视频参考【HK1BOX 刷机变砖刷原厂固件外贸盒子刷机】 https://www.bilibili.com/video/BV1u44y1G7us/?share_source=copy_web&vd_source=4bce4b7f47af796806ae295e8e08b3a6 先短接,再连线,就会出现连接成功(可以不插电源线,usb线可以供电),然后这时点击开始刷机。 刷机成功后拔线上电重启 大功告成!

image-20260618112200644

电脑(服务器)的初始设置

根据自己最近的项目,总结了一些对自己适用的流程以及套路模板 windows 更改默认密码 桌面远程 远程时出现下面的问题 开启该功能 按 Win + I 打开“设置” -> “系统” -> “远程桌面”,确保“启用远程桌面”的开关处于开启状态。 注意 如果发生卡顿,是因为当 Windows 服务器检测不到物理显示器时,为了省电,它会停止渲染图形界面(GUI),把帧率锁死在极低状态(比如 1-2 FPS)。此时你用远程桌面连上去,操作会感觉像“幻灯片”一样,拖动窗口都有拖影。 方法一:购买 HDMI 虚拟显示器诱骗器(推荐,效果最好) 这是一个像 U 盘一样的小东西,插在服务器的 HDMI 或 DP 接口上。 原理:它向系统发送一个“4K/1080P 显示器已连接”的硬件信号。 效果:显卡会满血工作,远程桌面瞬间丝滑,甚至能开启 60Hz 刷新率。 价格:淘宝或京东上大概 20-30 元,性价比极高。 方法二:修改组策略(强制启用硬件加速,软件方案) 如果暂时买不到诱骗器,可以尝试在服务器上修改策略,强制让系统不关闭图形渲染。 按 Win + R,输入 gpedit.msc 并回车(家庭版可能没有此功能)。 依次找到:计算机配置 -> 管理模板 -> Windows 组件 -> 远程桌面服务 -> 远程桌面会话主机 -> 远程会话环境。 在右侧找到:使用硬件图形适配器进行所有远程桌面会话。 双击,设置为 “已启用”。 重启服务器生效。 关闭解锁组合键 在远程的时候,Ctrl + Alt + Delete解锁时会和本机冲突,所以关闭掉。 ...