问题背景 在 Windows 中,开发的应用可以使用 app.manifest 资产文件配置程序启动时,使用何种角色权限启动。 效果如下: 正常情况下,在 app.manifest 加上以下配置即可: 如果项目中没有这个文件,可以在项目中新建项-清单文件。 <trustInfo xmlns='urn:schemas-microsoft-com:asm.v2'> <security> <requestedPrivileges xmlns='urn:schemas-microsoft-co…

2022年11月10日 0条评论 2841点热度 0人点赞 痴者工良 阅读全文

[TOC] 背景 其实,规划这篇文章有一段时间了,但是比较懒,所以一直拖着没写。 最近时总更新太快了,太卷了,所以借着 .NET 7 正式版发布,熬夜写完这篇文章,希望能够追上时总的一点距离。 本文主要介绍如何在 .NET 和 Go 语言中如何生成系统(Windows)动态链接库,又如何从代码中引用这些库中的函数。 在 .NET 部分,介绍如何使用 AOT、减少二进制文件大小、使用最新的 [LibraryImport] 导入库函数; 在 Go 语言部分,介绍如何使用 GCC 编译 Go 代码、如何通过 syscal…

2022年11月10日 0条评论 2020点热度 1人点赞 痴者工良 阅读全文

背景 因为本地开发时,内网的 https 是不安全的 https。 会导致 js 发不出请求。 为了让 https 安全,这里实现了本地 localhost 自动生成证书以及安装的过程。 写代码 生成证书使用的是 .NET 自带的库,不需要引入第三方包。 using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; using System.Text; 生成证书的方法参考 https://github…

2022年11月9日 0条评论 6642点热度 5人点赞 痴者工良 阅读全文

Fluentd 在 Kubernetes 下部署时,需要使用 fluentd-daemonset-elasticsearch-rbac.yaml 文件,里面配置了 RABC 权限等,但是启动起来后,查看 Fluentd 日志,发现 unread ,原因是日志位置的问题。 原版日志收集配置: volumeMounts: - name: varlog mountPath: /var/log # When actual pod logs in /var/lib/docker/containers, the followi…

2022年11月9日 0条评论 1912点热度 0人点赞 痴者工良 阅读全文

地址: https://devblogs.microsoft.com/dotnet/configuring-https-in-asp-net-core-across-different-platforms/ 创建一个 https.config 文件: [ req ] default_bits = 2048 default_md = sha256 default_keyfile = key.pem prompt = no encrypt_key = no distinguished_name = req_distin…

2022年11月7日 1条评论 2086点热度 0人点赞 痴者工良 阅读全文

默认情况下,MAUI 全屏的时候,任务栏会被屏蔽掉。 参考解决方法:https://github.com/dotnet/maui/issues/5478 获取窗口对象: IntPtr nativeWindowHandle = WinRT.Interop.WindowNative.GetWindowHandle(window); WindowId win32WindowsId = Win32Interop.GetWindowIdFromWindow(nativeWindowHandle);[......]继续阅读

2022年11月7日 0条评论 2355点热度 1人点赞 痴者工良 阅读全文

由于新版本的 docker 跟 kubernetes 对系统有要求,因此首先要做以下操作,确保 docker、kubelet 可以正常工作。 首先修改或添加 /etc/docker/daemon.json,内容替换如下: { "registry-mirrors": ["https://94zlnekp1.mirror.aliyuncs.com"], "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "1" }, "exec…

2022年11月6日 0条评论 2804点热度 0人点赞 痴者工良 阅读全文

有以下 N 个因子: new List<string>{"A","B","C"}, // 位置 0 new List<string>{"1","2","3"}, // 位置 1 new List<string>{"①","②","③"}, new List<string>{"Ⅰ","Ⅱ","Ⅲ"}, new List<string>{"一","二","三"}, 可以组成多个 n 长度的数组,如: A 1 ① Ⅰ 一 M[......]继续阅读

2022年11月2日 0条评论 2630点热度 0人点赞 痴者工良 阅读全文

在 Microsoft.Maui 的 Microsoft.Maui.LifecycleEvents 中,有个管理 MAUI 窗口生命周期的扩展。 public static MauiAppBuilder ConfigureLifecycleEvents( this MauiAppBuilder builder, Action<ILifecycleBuilder>? configureDelegate); 本文目的是在 Windows 下,使用 WinUI 的方式将窗口控制的接口。 参考资料: https…

2022年10月31日 0条评论 2373点热度 0人点赞 痴者工良 阅读全文

说明 RulesEngine 是 C# 写的一个规则引擎类库,读者可以从这些地方了解它: 仓库地址: https://github.com/microsoft/RulesEngine 使用方法: https://microsoft.github.io/RulesEngine 文档地址: https://github.com/microsoft/RulesEngine/wiki 什么是规则引擎? 照搬 https://github.com/microsoft/RulesEngine/wiki/Introduction…

2022年10月26日 1条评论 2288点热度 3人点赞 痴者工良 阅读全文

因为结构体或者值类型在传递时,是值复制,导致传递后修改其值,原先的值不会发生改变。 即使使用 ref 做参数,也没法改变传递数组是值复制的问题。 阅读 .NET 源码是发现了 .NET 6 的一个 API,可以很方便完成这个任务,让结构体像引用类型一样。 using System.Runtime.InteropServices; public class Progarm { static void Main() { var a = new A[100]; var span = a.AsSpan(); ref A c…

2022年10月25日 0条评论 2374点热度 1人点赞 痴者工良 阅读全文

使用的类型是 结构体,如果是对象,则在创建内存块的时候,需要使用别的方式。 子所以使用块的形式而不是直接管理一个对象,是基于多个方面考虑的。 1,使用块的形式,可以一次性分配连续的内存;如果逐个分配,会导致碎片太多、每次分配都需要时间; 缺点: 1,不能扩增或减少对象数量、块大小; 2,以块的形式存在,用户用完一个块后,需要切换到下一个块; 这两个缺点都是很容易解决的。 然后笔者后面发现了几个不得了的 API,因此改进了对象池算法,对结构体做了优化。 可以看:https://www.whuanle.cn/archi…

2022年10月24日 0条评论 2492点热度 3人点赞 痴者工良 阅读全文

后面改进了对象池算法,使用结构体来存储,其性能变得非常强。 参考对象池算法:https://www.whuanle.cn/archives/20888 新版本 定义结构体存储每个字段: public struct JsonField { public string? Name { get; set; } public JsonValueKind ValueKind { get; set; } public object? Value { get; set; } pu[......]继续阅读

2022年10月24日 0条评论 2525点热度 1人点赞 痴者工良 阅读全文

我的 Elasticsearch 是单机部署的,因此要将 kubernetes Fluentd 接入 Elasticsearch,需要改点配置项。 首先是在 kubernetes 上安装 Fluentd。 下载 yaml 模板仓库: git clone https://github.com/fluent/fluentd-kubernetes-daemonset 修改 fluentd-daemonset-elasticsearch-rbac.yaml 文件,替换 env: - name: FLUENT_ELASTIC…

2022年10月20日 0条评论 2402点热度 0人点赞 痴者工良 阅读全文

参考文章: https://blog.csdn.net/UbuntuTouch/article/details/120524770 创建网络、存储卷: docker network create elastic docker volume create elasticsearch 创建容器: docker run -itd --name elasticsearch \ --publish 9200:9200 --net elastic \ --env discovery.type=single-node \ --e…

2022年10月20日 0条评论 2696点热度 1人点赞 痴者工良 阅读全文

数据: 格式: { "a_tttttttttttt": 1001, "b_tttttttttttt": "邱平", "c_tttttttttttt": "Nancy Lee", "d_tttttttttttt": "buqdu", "e_tttttttttttt": 81.26, "f_tttttttttttt": 60, "g_tttttttttttt": "1990-04-18 10:52:59", "h_tttttttttttt": "35812178", "i_tttttttttttt": "1893533…

2022年10月20日 0条评论 1874点热度 0人点赞 痴者工良 阅读全文

DDNS 这是一个根据当前公网 IP 动态修改腾讯云域名记录的工具,如果宽带不是专线,那么 IP 会隔几天变化一次,这样给域名绑定带来麻烦。 此工具通过动态识别当前网络的公网 IP 地址,将变化的 IP 推送到腾讯云已有的域名解析中,实现域名动态绑定 IP。 注意:国内未经备案的机器,不能对外提供服务! http://www.gov.cn/gongbao/content/2005/content_93018.htm 非经营性互联网信息服务备案管理办法 在中华人民共和国境内提供非经营性互联网信息服务,应当依法履行备案…

2022年10月18日 6条评论 7774点热度 1人点赞 痴者工良 阅读全文

可复用Stream 需要安装 Microsoft.IO.RecyclableMemoryStream。 internal class StreamHandler { // Stream pool private static readonly RecyclableMemoryStreamManager Manager = new(); private readonly RecyclableMemoryStream _stream; private volatile bool _disposed;[......]继续…

2022年10月18日 0条评论 2604点热度 0人点赞 痴者工良 阅读全文

背景 最近要将域名跟家庭宽带的公网 IP 打通,出现了一系列的问题。 注意:国内未经备案的机器,不能对外提供服务! http://www.gov.cn/gongbao/content/2005/content_93018.htm 非经营性互联网信息服务备案管理办法 在中华人民共和国境内提供非经营性互联网信息服务,应当依法履行备案手续。 未经备案,不得在中华人民共和国境内从事非经营性互联网信息服务。 在国内的家庭宽带中,80/443 端口是不开放的,但是 caddy 需要使用这两个端口才能访问,如果设置其他端口,会导…

2022年10月18日 0条评论 10824点热度 4人点赞 痴者工良 阅读全文

背景 最先采用的是 Maui + Blazor 开发,使用社区热度比较高的 Blazor UI 框架。 可是开发进行过程中, Maui 巨多坑,Blazor UI 框架也是巨多坑,使用 Blazor UI 写的页面和样式,过不了设计师和产品经理的是法眼。 最终决定使用原生前端结合,生成静态内容放到 Maui 中,然后将两者结合起来打包发布。 先搞前端 对于前端来说,按照正常的开发模式就行,不对对前端的代码产生污染。 可以使用 VS 创建前端项目,将其放到解决方案中,也可以单独创建一个目录,将前端代码放到里面。 创建…

2022年10月17日 0条评论 2314点热度 2人点赞 痴者工良 阅读全文
15678927