本文收藏我所了解的从 dotnet core 3 到 2020.11.10 发布的 dotnet 5 的 WPF 的变更

修复坑

应用资源的线程问题

App resource threading issue by SamBent · Pull Request #3577 · dotnet/wpf

DataGrid.Copy: fail silently if clipboard is locked by SamBent · Pull Request #3576 · dotnet/wpf

FixedPage SOM bugs by SamBent · Pull Request #3575 · dotnet/wpf

ClearType anti-aliasing by SamBent · Pull Request #3570 · dotnet/wpf

Reentrancy when closing ToolTip by SamBent · Pull Request #3568 · dotnet/wpf

修复多线程下的 HostVisual 多 UI 渲染问题

HostVisual threading by SamBent · Pull Request #3567 · dotnet/wpf

文本排版渲染相关问题

Avoid reflow of shaped text by SamBent · Pull Request #3566 · dotnet/wpf

Avoid null item AutomationPeers by SamBent · Pull Request #3565 · dotnet/wpf

Vsp freeze by SamBent · Pull Request #3564 · dotnet/wpf

Ask-Mode: [release/5.0-rc2] Custom intermediate output paths shouldn't break markup compilation by ryalanms · Pull Request #3542 · dotnet/wpf

移除校验程序集 Dll 功能,可以提升一点性能,而且因为升级框架之后程序集 dll 文件有一些更改

Remove VerifyWpfDllSet by agocke · Pull Request #3329 · dotnet/wpf

多绑定的判断问题

Fix range of for statement by Lelary · Pull Request #3221 · dotnet/wpf

修复 WM Pointer 消息因为使用屏幕坐标带来的兼容性问题,这个提交是对触摸应用来说十分重要的更改。偷偷说一下,这是我参加怂恿的提交

Fix raw stylus data to support per-monitor DPI by rladuca · Pull Request #2891 · dotnet/wpf

修复触摸相关问题,多窗口多线程问题

Fix PenIMC Activation Context Handling by rladuca · Pull Request #2890 · dotnet/wpf

修复触摸相关问题

Ensure PimcContexts are eagerly release when no longer needed by rladuca · Pull Request #2851 · dotnet/wpf

文本渲染相关问题

Fix CGlyphRunResource::GetDWriteRenderingMode to choose correct DWriteRenderingMode under ClearType by rladuca · Pull Request #2668 · dotnet/wpf

性能提升

在上面修复坑上就有部分是能提升性能的,以下更改为完全为了提升性能

Use faster char based overload of String.IndexOf by davidwrighton · Pull Request #3278 · dotnet/wpf

调试优化

Move StackTrace to error branch by SamBent · Pull Request #3574 · dotnet/wpf

绑定调试优化

Add BindingFailed event for diagnostics of binding failures by spadapet · Pull Request #3505 · dotnet/wpf

更新过时的 API 调用以及修复判空

Temporarily suppress obsolete API errors to get WPF master building by ryalanms · Pull Request #3659 · dotnet/wpf

可能有坑的更改 https://github.com/dotnet/wpf/pull/3659/files#diff-2a913b21f14e90b5fcc2e41824a0f5df8dafdefb28f01104605bcdb62ceeb7b2R46

可空逻辑的特性支持,但是这个支持也许会有坑

Replace null comparisons on non-nullable types that now cause compilation errors, due to the .NET SDK update. by ryalanms · Pull Request #3649 · dotnet/wpf

构建优化

尽管官方说不会去做跨平台的时候,但是依然有一部分 MR 是用来适配在其他平台进行构建,但是当前依然无法在 Linux 平台完成整个 WPF 的构建

Fix the casing of 'Shared' in WpfSharedDir by FraGag · Pull Request #3594 · dotnet/wpf

Support PackageReferences in WPF projects by ryalanms · Pull Request #3585 · dotnet/wpf

Fix RuntimeFrameworkReferences for RTM builds by mmitche · Pull Request #3406 · dotnet/wpf

Add CPD strict dependencies for dotnet/installer by mmitche · Pull Request #3372 · dotnet/wpf

adding XamlRuntime msbuild property/metadata by stevenbrix · Pull Request #3332 · dotnet/wpf

Update guardian package by wtgodbe · Pull Request #3274 · dotnet/wpf

[master] Add internal feed build steps by mmitche · Pull Request #3267 · dotnet/wpf

Remove workarounds by wli3 · Pull Request #3248 · dotnet/wpf

Add SDL vars config file by mmitche · Pull Request #3234 · dotnet/wpf

Add the property for MicrosoftWindowsDesktopSdkImported by wli3 · Pull Request #3207 · dotnet/wpf

Recategorize dependencies by mmitche · Pull Request #3188 · dotnet/wpf

这个提交看起来是默认支持到 Win7 系统,默认通过 dotnet 构建的输出可执行版本是 Win7 系统支持版本

Setting default TargetPlatformVersion by sfoslund · Pull Request #3177 · dotnet/wpf

.NET Core WPF Build error on custom BaseIntermediateOutputPath #1718 by ryalanms · Pull Request #3120 · dotnet/wpf

Shuffle property location by wli3 · Pull Request #3111 · dotnet/wpf

这个更改有利于在其他平台进行构建

Replace hardcoded backslashes with Path.DirectorySeparatorChar and fix WinFX casing (daviddenis-stx, Nirmal4G, PaulEremeeff) by ryalanms · Pull Request #3101 · dotnet/wpf

Fix RuntimeFrameworkVersion logic by vatsan-madhavan · Pull Request #2817 · dotnet/wpf

这个也是有利于在其他平台进行构建

Make ArtifactsTmpDir platform-specific by vatsan-madhavan · Pull Request #2525 · dotnet/wpf

Remove usage of Microsoft.NETCore.App.Internal package. by jkoritzinsky · Pull Request #3791 · dotnet/wpf

安全性

Fixing Microsoft Security Advisory CVE-2020-0605 : .NET Core Remote Code Execution Vulnerability- Variant (.Net Core 3.1) by arpitmathur · Pull Request #3020 · dotnet/wpf

Fixing Microsoft Security Advisory CVE-2020-0605 : .NET Core Remote Code Execution Vulnerability- Variant (.Net 5.0) by arpitmathur · Pull Request #3019 · dotnet/wpf

Fixing Microsoft Security Advisory CVE-2020-0605 : .NET Core Remote Code Execution Vulnerability (3.1 Fixed PR) by rladuca · Pull Request #2428 · dotnet/wpf

Fixing Microsoft Security Advisory CVE-2020-0606 : .NET Core Remote Code Execution Vulnerability (3.0 Merge Fix) by rladuca · Pull Request #2429 · dotnet/wpf

Microsoft Security Advisory CVE-2020-0606 : .NET Core Remote Code Execution Vulnerability (5.0 PR) by arpitmathur · Pull Request #2430 · dotnet/wpf

完全开源

这是原本的 MIL 层的代码,以及触摸 PenIMC 底层代码

Open Sourcing WpfGfx and PenImc by vatsan-madhavan · Pull Request #2553 · dotnet/wpf

在这两个代码开放之后,我就水了 WPF 触摸底层 PenImc 是如何工作的 和 WPF 从最底层源代码了解 AllowsTransparency 性能差的原因

文档和注释

理论上文档和注释不会影响行为

看起来我的提交里面水的文档和注释最多了

1228498 [ wpf ][ PoliCheck ] - Defect : Term "nuked" by ryalanms · Pull Request #3642 · dotnet/wpf

Update intellisense version by AdamYoblick · Pull Request #3640 · dotnet/wpf

update_intellisense_artifacts by AdamYoblick · Pull Request #3600 · dotnet/wpf

Remove or replace Policheck violations in code comments by ryalanms · Pull Request #3606 · dotnet/wpf

update intellisense artifacts by AdamYoblick · Pull Request #3581 · dotnet/wpf

Fix spelling errors in code comments by lindexi · Pull Request #2841 · dotnet/wpf

LOC CHECKIN dotnet/wpf 20200403 by v-chmart · Pull Request #2837 · dotnet/wpf

不知道用来干啥的更改

#include tuple to matrix_t.hpp by vatsan-madhavan · Pull Request #3056 · dotnet/wpf

Using constants for strings to keep the code consistent by lindexi · Pull Request #2907 · dotnet/wpf

官方的规划

尽管现在 WPF 所有权在 dotnet 基金会下

但是 WPF 还没全准备好接受来自社区的提交代码,只有在单元测试完成之后才敢接受。而 WPF 的单元测试部分是之前已经写好,但是没有开源。这部分单元测试的开源就是最近从 5 月开始做到现在的内容

当前进度会比原计划慢,客观原因相信大家也知道 However, the global COVID-19 pandemic has caused hiring to be slower than usual. 而在 dotnet 5 更新的时候构建部分还没完全跟上,因此暂时私有版本在 2020.11.12 还不能构建到 dotnet 5 版本

后续将会继续做的修坑和优化性能,然后接受来自社区的更改,走开源管理

更多细节请看官方仓库

我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入

如有不方便在博客评论的问题,可以加我 QQ 2844808902 交流


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

WPF 从 dotnet core 3 到 dotnet 5 的变更相关推荐

  1. DOCKER上运行DOTNET CORE

    DOCKER上运行DOTNET CORE 原文:DOCKER上运行DOTNET CORE 下载microsoft/dotnet镜像 运行命令: docker pull microsoft/dotnet ...

  2. dotNET Core 3.X 请求处理管道和中间件的理解

    理解 dotNET Core 中的管道模型,对我们学习 dotNET Core 有很大的好处,能让我们知其然,也知其所以然,这样在使用第三方组件或者自己写一些扩展时,可以避免入坑,或者说避免同样的问题 ...

  3. dotnet core 通过 frp 发布自己的网站

    很多时候写出来的网站只能自己内网访问,本文告诉大家如何通过 Frp 将自己的 asp dotnet core 网站发布到外网,让小伙伴访问自己的网站 通过 frp 的方式,可以解决自己的服务器性能太差 ...

  4. dotnet core 和 dotnet Framework 启动可执行文件的差别

    在 Windows 下,使用 .NET Framework 构建出来的应用,可以只有一个可执行文件,在可执行文件里面包含了 IL 代码.使用 .NET Core 构建出来的应用,将会包含一个 Exe ...

  5. 探索 dotnet core 为何在 Windows7 系统需要补丁的原因

    在一些 Windows 7 系统上,根据 dotnet 官方文档,需要安装上 KB2533623 补丁,才能运行 dotnet core 或 .NET 5 等应用.尽管非所有的设备都需要安装此,但这也 ...

  6. 温故知新,DotNet Core SDK和.Net CLI十八般武艺

    简介 .NET命令行接口 (CLI) 工具是用于开发.生成.运行和发布.NET应用程序的跨平台工具链. https://docs.microsoft.com/zh-cn/dotnet/core/too ...

  7. win10 uwp 手把手教你使用 asp dotnet core 做 cs 程序

    本文是一个非常简单的博客,让大家知道如何使用 asp dot net core 做后台,使用 UWP 或 WPF 等做前台. 本文因为没有什么业务,也不想做管理系统,所以看到起来是很简单. Visua ...

  8. 【Step By Step】将Dotnet Core部署到Docker下

    一.使用.Net Core构建WebAPI并访问Docker中的Mysql数据库 这个的过程大概与我之前的文章<尝试.Net Core-使用.Net Core + Entity FrameWor ...

  9. dotnet core高吞吐Http api服务组件FastHttpApi

    简介 是dotNet core下基于Beetlex实现的一个高度精简化和高吞吐的HTTP API服务开源组件,它并没有完全实现HTTP SERVER的所有功能,而是只实现了在APP和WEB中提供数据服 ...

最新文章

  1. 大流量的网站如何解决访问量的问题?
  2. python装饰器原理-Python 装饰器工作原理解析
  3. 计算机的存储系统,全方面、最详细
  4. CF1019D-Large Triangle【计算几何,二分】
  5. java 监控 native 内存_JVM NativeMemoryTracking 分析堆外内存泄露
  6. 微软停止接受华为的新订单
  7. 一分钟了解阿里云产品:高速通道
  8. iframe高度自适应的实现
  9. mysql自动关闭_服务器mysql数据库老自动停止,请问怎么回事
  10. SQL50题面试题(10-15)
  11. [转]Magento2开发教程 - 如何向数据库添加新表
  12. 微信小程序制作表格代码
  13. 计算机execl必背知识点,【分享】Excel必备基础知识(1)
  14. HttpClient和RestTemplate
  15. C#命名规范(参考) (II)
  16. ps去水印(操作流程)
  17. NLP实践——基于SBERT的语义搜索,语义相似度计算,SimCSE、GenQ等无监督训练
  18. Warning maven relocated xml-apis to 1.0.b
  19. 全网最详细,宿主机ping虚拟机的主机名失败,但ping虚拟机的ip成功
  20. 量化机器人—马特炒币机器人

热门文章

  1. TcpClient 示例程序 C 语言
  2. 精品慕课资源推荐 计算机网络
  3. 做中国的Salesforce,神州云动凭的是什么?
  4. matlab 板球_如何在板球中计算所有取整等级
  5. 如何解决‘CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate’错误
  6. 天下没有不会这么回事!不会就学——北漂18年(28)
  7. python元类_Python基础:元类
  8. 数据运营-数据管理平台
  9. 半监督异常检测(Anomaly Detection)的研究线
  10. 经济基础知识(初级)【16】