
【ASP.NET Core】在node.js上托管Blazor WebAssembly应用
由于 BlazWebAssembly 是在浏览器中运行的,通常不需要执行服务器代码,只要有个“窝”能托管并提供相关文件的下载即可。所以,当你有一个现成的 Blaz wasm 项目,没必要用其他语言重写,或者你不想用 ASP. Ce 来托管(有些大材小用了),就可以试试用 node.js 来托管。 要实现这个不需要掌握什么新的知识,所以咱们直接开工干活。 首先,咱们做好 Blaz wasm 应用的开发。dot new blazwasmempty n Demo o .blazwasmempty 模板创建的项目
WPF学习-布局
1. Grid布局 (Table 布局) 两行两列布局 Bder 0 行 0 列默认开始 Window x:Class="WpfApp.MainWindow"xmlns="http:schemas.microsoft.comwinfx2006xamlpresentation"xmlns:x="http:schemas.microsoft.comwinfx2006xaml"xmlns:d="http:schemas.microsoft.comexpressionblend2008"xmlns:mc="
Rapid SCADA v6安装常见问题
用了很多年的Rapid SCADA v5,现在官网已经推出了v6,就简单写一下有关v6的安装指南吧。本指南面向Windows用户,不适用于linux用户步骤 从官网下载Rapid SCADA最新的RC版本的v6,然后运行压缩包内的ScadaSetup.exe程序。 FAQ提示端口占用Rapid SCADA 6.0.0~rc1 Installation Check TCP pt 10000 TCP pt 10000 already in use.Installation has completed wit
C# 动态创建类,动态创建表,支持多库的数据库维护方案
简介 本文主要介绍使用 利用 SqlSugar 来实现多数据库的维护 ,动态建类CRUD,动态建表 ,全局过滤器 ,跨库查询等功能 1、创建表 SqlSugar支持了3种模式的建表(无实体建表、实体建表,实体特性建表),非常的灵活 可以多个数据库 MYSQL MSSQL ACLE SQLITE PGSQL 等用同一语法创建数据库,不需要考虑数据库的兼容性 中间标准:string 大文本5.1.3.44preview06 推荐 [SugarColumn(ColumnDataType = Stati
MQTTnet 2.8 及 3.0.16 的使用
十年河东,十年河西,莫欺少年穷 学无止境,精益求精 ce3.1控制台应用程序,引入MQTT 2.8版本 订阅端:using RabbitMQ.Client using RabbitMQ.Client.Events using System using System.Text using MQTT using MQTT.Server using MQTT.Client using System.Threading using System.Threading.Tasks using System.Coll
面试常考:C#用两个线程交替打印1-100的五种方法
"C#用两个线程交替打印1100的五种方法"是.工程师面试多线程常考的试题之一,主要考察对C#语法和对多线程的熟悉程度。本文将用5种方法实现这个面试题。 方法1:使用Mutex或lock 这种方法涉及使用Mutex或lock对象来同步两个线程。其中一个线程负责打印偶数,另一个线程负责打印奇数。线程在执行任务之前会锁定共享的Mutex或lock对象,以确保每个线程执行任务时只有一个线程能够访问共享资源。代码如下:class Program {static Mutex mutex = new Mute
.NET Core 多线程的用法,以及用例
1.使用 Thread 类 Thread 类是 . 中最基本的多线程操作方式之一,可以使用它创建并启动新线程。以下是一个简单的例子,创建一个新的线程并运行: using System using System.Threadingclass Program {static void Main(){Thread t = new Thread(new ThreadStart(ThreadProc))t.Start() 等待线程执行结束t.Join()Console.WriteLine("Main thread
读C#代码整洁之道笔记02_类、对象和数据结构及编写整洁函数
1. 组织类 1.1. 每一个接口、类、结构体和枚举均应当拥有其自身的独立源文件 1.2. Pal命名方法命名命名空间 1.3. 测试类定义在独立的程序集1.3.1. 不同程序集的测试放在不同程序集1.3.2. 程序集名称的最后附加Tests命名空间1.4. 公司名称、产品名称和缩写词汇无须使用复数形式 2. 单一职责原则 2.1. (Single Responsibility Principle,SRP) 2.2. 一个类应当只具备一种职责 2.3. 类的职责就是类所具备的功能 3. 从注释生成文档 3
C# 探秘如何优雅的终止线程
在刚接触后台线程的时候,觉得线程神秘且高深,并且时常有先辈们千叮万嘱:能不用的时候,尽量不要用,千万不要滥用线程,否则会发生预料不到的结果。在接触线程一段时间后,感觉线程也不过如此,轻而易举的就可以创建,所以逐渐大胆起来,项目里随处可见的都是Task,Thread,async,await等内容。在大多情况下,我们只关心线程的创建与启动,运行,却并不关心线程的结束或者终止。今天这篇文章,我们就以一些简单的小例子,简述如何有效的停止线程,仅供学习分享使用,如有不足之处,还请指正。 需求说明 现在有一个需
ASP.NET做日历
一周一周来算,注,如果本月1号是星期日,则这一月共有六周,即六行,所以干脆每月都输出6周就行了,然后再算第一周里的本月一号是周几,第一周里本月又占了几天。。。呃。。。反正很乱,想了一上午,现在写出来了倒不知道如何解释了。。算了。。直接上代码。。日历界面public IActionResult RiLi(){ListModel.VM_OneDay[] ss = new ListModel.VM_OneDay[6] DateTime nowmonth01 = DateTime.Parse( DateTime.
WPF监听快捷键的几种方式
调用Win32 API(优先级最高,全局监听, 支持最小化失焦等情况) 那么,假如我要在一个WPF程序监听CTRL+5按键,首先在主窗口程序添加以下代码: summary CTRL+5事件Id summaryprivate const int Ctrl5KeyEventId = 9000[DllImpt("user32.dll")]public static extern bool RegisterHotKey(IntPtr hWnd int id uint fsModifiers uint vk)[Dl
读C#代码整洁之道笔记01_C#的编码标准和原则
1. 编码原则 1.1. SOLID原则1.1.1. 单一职责原则(Single Responsibility Principle)1.1.1.1. 类和方法应当仅具备单一职责。所有组合为单一职责的元素应当组合在一起并进行封装。1.1.2. 开闭原则(OpenClosed Principle)1.1.2.1. 类和方法应当对扩展开放,对修改封闭。1.1.3. 里氏替换原则(Liskov Substitution)1.1.3.1. 若函数接收一个基类的指针,那么该指针应当可以替换为任何从基类派生的类(的指针
.NET应用系统的国际化-多语言翻译服务
上篇文章我们介绍了 .应用系统的国际化基于Roslyn抽取词条、更新代码 系统国际化改造整体设计思路如下:提供一个工具,识别前后端代码中的中文,形成多语言词条,按语言、界面、模块统一管理多有的多语言词条 提供一个翻译服务,批量翻译多语言词条 提供一个词条服务,支持后端代码在运行时根据用户登录的语言,动态获取对应的多语言文本 提供前端多语言JS生成服务,按界面动态生成对应的多语言JS文件,方便前端VUE文件使用。 提供代码替换工具,将VUE前端代码中的中文替换为$t("词条ID"),后端代码中的中文替换为T
Web API接口返回实现类集合的姿势了解
大家好,我是沙漠尽头的狼。 一. 问题描述 如下图,定义两个子类Student和Employ,都继承自抽象类PersonBase: public abstract class PersonBase {public string Name { get set }protected PersonBase(string name){Name = name} }public class Student : PersonBase {public string Number { get set }public Stu
.NET中的winform、wpf、winui和maui你都知道吗?
前言 年初.工程师的求职者反馈不好找工作,尤其是BS开发,CS开发稍微好点。这种情况下有好多小伙伴都想转行了,于是了解了一下JAVA,比.还卷,还是走.内部转行吧,转CS桌面开发。本文介绍.几种桌面开发技术的方向,大家可以参考一下,具体如下。 一、简介WinFms (Windows Fms):WinFms是一个基于Windows API的GUI框架,是. Framewk中的一部分。它提供了一个窗体(Fm)和控件(Controls)的类库,允许开发者创建传统的Windows桌面应用程序。WinFms
学习ASP.NET Core Blazor编程系列三十——JWT登录(4)
学习ASP. Ce Blaz编程系列文章之目录 学习ASP. Ce Blaz编程系列一——综述 学习ASP. Ce Blaz编程系列二——第一个Blaz应用程序(上) 学习ASP. Ce Blaz编程系列三——实体 学习ASP. Ce Blaz编程系列五——列表页面 学习ASP. Ce Blaz编程系列七——新增图书 学习ASP. Ce Blaz编程系列八——数据校验 学习ASP. Ce Blaz编程系列十三——路由(完) 学习ASP. Ce Blaz编程系列十五——查询 学习ASP. Ce Blaz编程
能快速构建和定制网络拓扑图的WPF开源项目-NodeNetwork
大家好,我是沙漠尽头的狼,今天介绍一个WPF开源项目Nodewk,它可以帮助我们快速构建和定制网络拓扑图。 一、前言 在现代软件开发中,数据可视化和可交互性越来越受到关注。为了实现这一点,通常需要使用各种图表、表格、网络拓扑图等控件。然而,对于某些特殊的场景,这些控件可能无法满足需求,此时我们需要一种自定义的方式来展示和处理数据。Nodewk就是一种这样的自定义方式,它是一个基于C# WPF的开源项目,可以帮助我们快速构建和定制网络拓扑图。 Nodewk的代码托管在GitHub上,是由荷兰的一位开发者Wo
.NET应用系统的国际化-基于Roslyn抽取词条、更新代码
上篇文章我们介绍了 VUE+.应用系统的国际化多语言词条服务 系统国际化改造整体设计思路如下:提供一个工具,识别前后端代码中的中文,形成多语言词条,按语言、界面、模块统一管理多有的多语言词条 提供一个翻译服务,批量翻译多语言词条 提供一个词条服务,支持后端代码在运行时根据用户登录的语言,动态获取对应的多语言文本 提供前端多语言JS生成服务,按界面动态生成对应的多语言JS文件,方便前端VUE文件使用。 提供代码替换工具,将VUE前端代码中的中文替换为$t("词条ID"),后端代码中的中文替换为TermSer
.NET/C#操作Redis的简单方法
本文属于Redis初级应用,只起初步引路作用,高手们可略过。 支持. Ce(2.0及以上). Framewk(4.5及以上),可以部署在Docker Windows Linux Mac。 Redis作为一款主流的缓存工具在业内已广受欢迎。本文将会介绍操作Redis的一种最简单的方法。 本文假定你身边已有安装好的Redis应用,该应用的网络地址为(ip+pt):132.294.52.135:6379,访问密码为:Admin123 下面直接给出一个在Redis缓存中存入读取“字符串”及“对象”的示例。是
一次.net code中的placeholder导致的高cpu诊断
背景 最近一位朋友找到我,让我帮看他们的一个asp ce service无端cpu高的问题。从描述上看,这个service之前没有出现过cpu高的情况,最近也没有改过实际的什么code。很奇怪了,会有什么变化导致cpu上去了呢? 分析 由于比较容易复现 (据说一启动service,cpu就上去了),我便让那位朋友在cpu高的时候直接手动把.进程dump了一下。于是就开始用windbg分析了 先看一下案发时进程中的线程情况,毕竟它们是让进程动起来的源泉哈。大部分线程都运行到如下类似位置(下面的callsta
C# 使用throw;throw ex;和 throw new Exception();抛异常区别与建议
之前,在使用异常捕获语句try...catch...throw语句时,一直没太留意几种用法的区别,前几天调试程序时发展找不到异常根源,无意中了解到几种使用方法是有区别的。总结如下: 我们都知道,C#中使用throw和throw ex抛出异常,但二者是有区别的。 在C#中推荐使用throw;来抛出异常;throw ex;会将到现在为止的所有信息清空,认为你catch到的异常已经被处理了,只不过处理过程中又抛出新的异常,从而找不到真正的错误源。 throw new Exception()包装一个异常,把内部异
EF Code 如何应对高并发
1、高并发的情况,时常会发生数据不稳定的情况在看本节内容之前,请先看上一章SqlServer 高并发的情况下,如何利用锁保证数据的稳定性本节内容,也是具体讨论如何在EF中实现这些操作 2、场景模拟,同上一章,抢券EF 不考虑高并发的情况下,抢券代码为:string _currOwner = Console.ReadLine()当前用户 using var ctx = new MyDBContext() var cop = ctx.Coupons.Single(x = x.Id == 2) if (!str
Viual Studio添加新的工作负载
1.在自己电脑中找到Viual Studio Installer这样一个文件,我自己的是在"C:\ProgramData\Microsoft\Windows\Start Menu\Programs"路径下 若是找不到,也可以下载一个"everything"工具进行搜索,(这个比windows自带的文件搜索快多了,墙裂推荐哦!),搜索到的是一个快捷方式,双击即可。2.此时的界面和初次安装软件完成后的界面相同,单击“修改”3.此时就到了安装时的选择界面,可以重新勾选自己想要的“工作负载”,勾选完成后,点击右下
[EF Core] EF Core Code-First 移除外键 —— 重写SQL生成器
[EF Ce] EF Ce CodeFirst 移除外键 —— 重写SQL生成器 使用EF Ce时最烦的就是生成的某些 SQL 其实并不是你想要的结果,例如外键约束等等。 一个最简单的例子就是,因为EF Ce会根据导航属性生成外键约束等原因,导致很多开发者抛弃了更易维护的Code First模式,而转为Db First以获取更自由的数据库结构。 其实我们可以通过重写EF Ce的MigrationsSqlGenerat来解决: public class CustomMigrationsSqlGenerat
学习OpenTk,笔记二
1、OpenGL有多个标准,如Open ES是为了移动设备目前通常使用OpenTK.Graphics.OpenGL4对应OpenGL4.x版本,2010年是OpenGL分割领,之前是3版本,之后都是4版本,目前最新4.6,更新频率不高 2、OpenGL的着色语言GLSL,对应的文件扩展名.vert,类C体系GLSL教程参考: https:www.cnblogs.comzhxmdefjp11241537.html https:github.comwshxbqqGLSLCard
Redis-篇
开个分类慢慢更新 参考B站 黑马程序员Redis 入门到实战 目录全局唯一ID缓存穿透缓存雪崩缓存击穿互斥锁解决缓存击穿问题秒杀超卖问题悲观锁 乐观锁生成的Sql 语句一人一单秒杀分布式锁redis 分布式锁redis 分布式锁如何解决原子性高级篇数据持久化RDB模式AOF模式AOF和RDB两者区别分布式主从集群搭建主从集群修改redis.conf文件全局唯一ID在一般业务中秒杀功能,存在并发问题如果两个线程同时执行插入操作导致数据库id 自增 同时为一个数 就会导致写入数据失败 全局Id生成器点击查看
C#使用ObjectPool提高StringBuilder性能
在C#中我们知道使用StringBuilder能提高大量字符串拼接的效率,其实StringBuilder的效率也可以提升,那就是使用ObjectPool。本文将介绍怎么使用ObjectPool提高StringBuilder的性能。一、简介 C# ObjectPool类是一个内置的类库,用于实现对象池模式。它允许您通过在应用程序中创建预定义数量的对象实例,使它们可供重用,使用时不需要每次都创建一个新对象,从而减少了对象创建和销毁的开销。ObjectPool类还提供了对对象池大小和对象的生命周期的控
基于像控点三维模型几何纠正处理,三维工厂完全胜任!
基于像控点几何纠正是一种使用已知地物坐标的像控点对图像进行纠正的方法。它可以通过对图像进行旋转、平移和缩放等操作,使得图像中的物体位置和形状更加接近真实情况。 该方法的具体步骤如下:1. 采集像控点数据:测量一些已知地物的坐标,并在三维模型中标记这些点。2. 生成变换模型:使用像控点数据来估计一个变换模型,例如仿射变换或透视变换。3. 应用变换模型:将变换模型应用于整个三维模型,通过旋转、平移和缩放等操作来纠正三维模型。4. 精度评估:使用剩余像控点来评估纠正后的三维模型几何精度,如果精度不够高,需要重新
推荐几款三维模型几何纠正处理软件
PolyWks:是一款功能强大的三维测量和几何纠正软件,能够对三维模型进行高精度的几何纠正,支持多种三维数据格式,包括点云、三角网格等。 Geomagic:是一款专业的三维扫描和几何纠正软件,能够对三维模型进行高精度的几何纠正,支持多种三维数据格式,包括点云、三角网格等。 3DReshaper:是一款功能丰富的三维数据处理软件,能够对三维模型进行高精度的几何纠正,支持多种三维数据格式,包括点云、三角网格等。 3DMaker: 三维工厂是一款基于像控点对三维模型进行后纠正处理,解决三维模型几何精度不达标和高
最近写了一个demo,想看看java和go语言是怎么写的
最近写了一个demo:demo的github地址 一. 简单介绍 1. Server端 它是一个WebApi服务,把它当成一个黑盒就行了。 2. dleServer端 是重点,它是一个WebApi服务,包含一个GetValues接口和一个Query2接口。 Query2接口是一个简单的接口。 GetValues接口通过请求Server端的GetCounts接口和GetValues接口获取数据。 3. Client端 请求500次dleServer端的GetValues接口和请求500次Query2接口。