dotnet 职业技术学院

博客

dotnet 职业技术学院

dotnet OpenXML 文本 Kerning 字间距的作用

lindexi 发布于 2020-12-03

在 PPT 和 Word 排版里面,小伙伴会接触到 Kerning 字间距这个属性,本文将告诉大家这个属性的功能,以及为什么需要在 OpenXml 里面设置这个属性

高性能笔迹原理

lindexi 发布于 2020-12-03

本文只聊原理部分

dotnet OpenXML 文本 BodyProperties 的属性作用

lindexi 发布于 2020-12-03

本文收集 a:bodyPr 文本框属性 BodyProperties 的属性的作用

dotnet OpenXML 文本 EndParagraphRunProperties 的作用

lindexi 发布于 2020-12-03

其实我想要记录的仅仅只是 a:endParaRPr 对文本布局的作用

dotnet OpenXML 元素 cNvPr NonVisual Drawing Properties 重复 id 标识处理

lindexi 发布于 2020-12-03

使用 OpenXML 的格式的 Office 文档的元素,使用 p:cNvPr Non-Visual Drawing Properties 的 Id 属性作为标识,在标准协议这个标识是唯一的,但实际很多文档都存在重复的标识。本文告诉大家在使用 Office 2016 版本测试重复 id 的行为

dotnet OpenXML 元素 cNvPr NonVisual Drawing Properties 的属性作用

lindexi 发布于 2020-12-03

本文收集元素属性 cNvPr Non-Visual Drawing Properties 的属性的作用

dotnet Open XML 如何判断一份 Office 文档是否被加密

lindexi 发布于 2020-12-03

在拿到一份 PPTX 文档,或一份 Word 的 docx 文档,如何判断这份文档是被加密的

dotnet core 应用是如何跑起来的 通过AppHost理解运行过程

lindexi 发布于 2020-12-03

在 dotnet 的输出路径里面,可以看到有一个有趣的可执行文件,这个可执行文件是如何在框架发布和独立发布的时候,找到 dotnet 程序的运行时的,这个可执行文件里面包含了哪些内容

dotnet ConcurrentDictionary 的 GetOrAdd 性能比 TryGetValue 加 TryAdd 低

lindexi 发布于 2020-12-03

我在 Office 的 Open-XML-SDK 库里面找到有代码线程不安全,代码里面使用了 TryGetValue 加 TryAdd 的方法添加对象,而线程安全的方法是通过 GetOrAdd 方法。不过在小伙伴的评论我找到了 GetOrAdd 性能其实在有闭包的时候不如使用 TryGetValue 加 TryAdd 调用这两个方法,但是 GetOrAdd 的优势在于能做到只创建一次对象

C# dotnet 高性能多线程工具 ExecuteOnceAwaiter 只执行一次的任务

lindexi 发布于 2020-12-03

本文将安利大家一个好用的工具,用来解决这样的问题,我有一个任务,要求这个任务在执行过程中不能被重入,只有在任务执行完成之后才能重置状态重新执行一次。换句话说就是在此任务正在执行过程中,不能重复进入此任务。同时在任务执行过程中,不能重置任务状态。在任务执行完成之后,可以保存任务的状态,直接返回任务结果。在任务执行完成之后,可以调用重置状态方法,让任务可以再次重新调用

C# dotnet 自己实现一个线程同步上下文

lindexi 发布于 2020-12-03

昨天鹏飞哥问了我一个问题,为什么在控制台程序的主线程等待某个线程执行完成之后回来,是在其他线程执行的。而 WPF 在等待某个线程执行完成之后,可以回到主线程执行。其实这是因为在 WPF 和 WinForms 和 ASP.NET 框架里面都自己实现了线程同步上下文,通过线程同步上下文做到调度线程执行。本文就来和小伙伴聊一下如何自己实现一个线程同步上下文

C# dotnet 带编号项目符号在 OpenXML SDK 对应的枚举值

lindexi 发布于 2020-12-03

本文告诉大家在 OpenXML SDK 里面文本框的文本带自动编号的项目符号,不同的编号在 OpenXML SDK 上的枚举值

C# dotnet 使用 AsyncEx 库的 AsyncLock 异步锁

lindexi 发布于 2020-12-03

本文来安利大家一个好用的库 AsyncEx 库。这个库有一个强大的功能是支持 AsyncLock 异步锁。小伙伴都知道,在 C# 里面的 lock 关键字,在 2020 年也就是 C# 9.0 都没有让这个关键字能支持锁内部添加异步方法。此时在一些需要做异步线程安全的业务就比较坑了,而 AsyncEx 库提供了 AsyncLock 异步锁的功能,可以支持在锁里面使用异步

C# dotnet 使用 startIndex 提升 IndexOf 的性能

lindexi 发布于 2020-12-03

在代码审查 WPF 仓库的时候,小伙伴告诉我说使用 dotnet core 版本的 WPF 开了 ReadyToRun 的提升还不够大,他准备开始一大波业务无关的优化,其中就包含了 xaml 中的字符串相关优化。我在 davidwrighton 大大的优化代码和 pentp 大大的代码审查里面学到了使用 startIndex 提升 IndexOf 的性能,本文就来和大家分享一下

asp dotnet core 基于 TestServer 做集成测试

lindexi 发布于 2020-12-03

我有一个古老的 dotnet core 3.1 的 asp dotnet core 项目,现在我准备将他升级到 dotnet 5 了。但是我不想和博客园一样翻车,因此我需要做一点集成测试的辅助,尽管依然还是翻车了,但是我要学习博客园伟大的精神,将在这个项目里面所做的所有自动化测试项目的方法写下来