本文收藏我所了解的从 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. genymotion报错Your CPU is incompatible with virtualization technologies
  3. ArcEngine编辑功能的实现(二)
  4. python123作业答案第七周-python一周练习
  5. git remote add Mycat https://github.com/MyCATApache/Mycat-Server.git
  6. 优化Hibernate所鼓励的7大措施
  7. linux java jar war_简单介绍Java 的JAR包、EAR包、WAR包区别
  8. OpenShift 4 - DevSecOps Workshop (12) - 用CodeReady Workspace编辑提交应用代码
  9. js (jQuery) 之 取值
  10. 推荐一个业界最小的可自定义算法的加密芯片
  11. 【CCCC】L3-011 直捣黄龙 (30分),Dijkstra维护点权,节点数,路径条数等+路径打印
  12. 大数据要学javaweb吗_学习大数据需要学习javaee的内容吗?
  13. 深入解读HTTP3的原理及应用
  14. linux系统学文档pdf,Linux操作系统学习.pdf
  15. pRRophetic 通过基因表达水平预测临床化疗反应的R包
  16. 快手影音 www.kuaishou.net
  17. linux环境开启kettle Carte
  18. 亚马逊中国站获取商品列表
  19. 简要描述临界资源、临界区及互斥同步机制的原则
  20. 彻底弄清补码加减法运算,正数、负数位移运算原理

热门文章

  1. jQuery仿真翻书炫酷翻页动画插件
  2. dateframe取某列数据_DataFrame数据选取全攻略
  3. 学环境工程我后悔了_环境工程学出来能干啥
  4. 使用Opencv2+Pyqt5实现人脸识别视频马赛克
  5. BI神器Power Query(4)-- PQ导入动态名称定义的表格
  6. MFC下改变窗口或编辑框标题字体大小的方法
  7. ios 图片加载内存尺寸_iOS内存分析上-图片加载内存分析
  8. 【单片机】用定时器以间隔500ms在8位数码管上依次显示0、1、2、3、...C、D、E、F,重复
  9. 教大家如何清理C盘~
  10. 气化器中BOG和EAG分别是什么意思?