.NET 5学习笔记(12)——WinUI 3 Project Reunion 0.5
2021年3月的时候,Win UI 3终于来到了第一个稳定的支持版本,可用于创建发布到Micosoft Store的应用。据某软的说法,这个叫WinUI 3 Project Reunion 0.5的版本,是可以被用于生产了,但按某软的尿性,一般1.1版本会比较靠谱……
首先我们要梳理一下Win UI 3和Project Reunion之间的关系,某软的改名部真是让人糟心啊,该出手的时候却和被裁员了一样……

WinUI 3是WinUI 2的后续版本,核心的不同之处,除了版本号大上一位以外,就是WinUI 3支持desktop/Win32程序,而WinUI 2仅支持UWP。但也别想太多,想要用上WinUI 3,得先升级到.NET 5,以及最低版本号为1809的Windows 10。

Project Reunion就更让人迷惑了,相信我这货1.0的时候绝对会改名。简单理解Project Reunion定义了面向次世代的Windows App Development的工具集,只有钦定的API和Library才能被归属到Project Reunion之下。和同一套代码跑遍所有Win10的UWP不同,这次的目标是,只要是属于Project Reunion的Library,就能被以往的WinForms,WPF和C++/Win32的技术所使用。可以想象,被迫使用了新API的旧框架们,不得不迁移到最新的Win10,甚至Microsoft Store,简直机智啊!
下面一张图是Project Reunion对以MSIX格式打包,通过Store发布的应用程序,对应的Roadmap。
可以看到在今年底就会有正式版了。但是以MSIX打包的形式,在使用体验上我个人推测和现在的DesktopBridge的使用并无太大出入,无非就是API的更新。(个人不负责任的推测)

第二张图就有点意思了,这是对非打包格式的应用程序的支持情况。商店这种东西,个人消费者可能喜欢,但是对软件开发商来说,等于是脖子上的枷锁,对于公司IT而言更是法外之地。所以这一块的内容在未来确实很有看点,某软从Win8开始做商店,结果连游戏都卖不过Steam,何其悲剧!这次以何种形式来支持非打包的桌面应用,让我们拭目以待。

扯得太远让我们回到WinUI 3 Project Reunion 0.5。当前这个版本可用于创建发布到商店的应用,但他只支持desktop,UWP的支持仍然是preview。同时虽然支持在VS2019 16.9以上版本中使用,但是全部特性比如热重载和实时可视化树还要等16.10版本。可以理解为库本身已经准备好了,但是配套还没有完善。
在安装Project Reunion 0.5 VSIX包之后,我们就可以在VS2019中使用WinUI项目模板创建WinUI3应用。

同时在WinUI3的Item Template中,我们可以看到下面这些项目,一股熟悉的气息扑面而来。其实某软在这些年,至少桌面端XAML的技术延续是非常顺滑的。根本不存在抛弃老人,让他们35岁去送外卖这种事情。有兴趣的小伙伴来入坑Windows开发啊,三十年河东河西,万一哪天再次雄起了呢?这里推荐两篇Docs & Learn上HelloWorld级别的课程,包教包会那种。
编写首个 Windows 10 应用 - Learn | Microsoft Docs
Windows 10 开发简介 - Learn | Microsoft Docs

总体来说,WinUI3是一个巨大的升级,从WinUI2的通过NuGet包来使用的形式,升级为整个全新的项目模板。成为了和UWP,WPF项目模板对等的存在。本篇我们仅仅从概念上介绍了WinUI 3和Project Reunion,下一篇或许我们可以尝试去创建WinUI 3的项目来体验如何进行次世代Windows应用程序的开发。
参考链接:
Windows UI 库 3 - Project Reunion 0.5(2021 年 3 月)
使用 Project Reunion 0.5 构建桌面 Windows 应用
.NET 5学习笔记(12)——WinUI 3 Project Reunion 0.5的更多相关文章
- 春风十里不如你,全新Windows UI 3(WinUI 3) 的第一个实现Project Reunion 0.5
什么是WinUI Windows UI库 (WinUI) 是适用于 Windows 桌面应用程序和 UWP 应用程序的本机用户体验 (UX) 框架. WinUI is a user interface ...
- Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建
Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...
- Ext.Net学习笔记12:Ext.Net GridPanel Filter用法
Ext.Net学习笔记12:Ext.Net GridPanel Filter用法 Ext.Net GridPanel的用法在上一篇中已经介绍过,这篇笔记讲介绍Filter的用法. Filter是用来过 ...
- SQL反模式学习笔记12 存储图片或其他多媒体大文件
目标:存储图片或其他多媒体大文件 反模式:图片存储在数据库外的文件系统中,数据库表中存储文件的对应的路径和名称. 缺点: 1.文件不支持Delete操作.使用SQL语句删除一条记录时,对应的文 ...
- golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题
golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题 今天测试了重新建一个项目生成新的表,然后复制到旧的项目 ...
- Python3+Selenium3+webdriver学习笔记12(js操作应用:滚动条 日历 内嵌div)
#!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记12(js操作应用:滚动条 日历 内嵌div)'''from ...
- springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定
springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定 标签: springmvc springmvc学习笔记12-springmvc注解开发之包装类型參数绑定 需求 实现方 ...
- 并发编程学习笔记(12)----Fork/Join框架
1. Fork/Join 的概念 Fork指的是将系统进程分成多个执行分支(线程),Join即是等待,当fork()方法创建了多个线程之后,需要等待这些分支执行完毕之后,才能得到最终的结果,因此joi ...
- matlab学习笔记12单元数组和元胞数组 cell,celldisp,iscell,isa,deal,cellfun,num2cell,size
一起来学matlab-matlab学习笔记12 12_1 单元数组和元胞数组 cell array --cell,celldisp,iscell,isa,deal,cellfun,num2cell,s ...
随机推荐
- Mac创建Root用户
1.打开Mac终端管理工具 前往-实用工具-终端 2.用命令的形式创建账户 sudo passwd root 3.输入当前登录用户密码 4.输入root用户密码并验证
- 面试题-python 如何读取一个大于 10G 的txt文件?
前言 用python 读取一个大于10G 的文件,自己电脑只有8G内存,一运行就报内存溢出:MemoryError python 如何用open函数读取大文件呢? 读取大文件 首先可以自己先制作一个大 ...
- 剑指 Offer 46. 把数字翻译成字符串 + 动态规划
剑指 Offer 46. 把数字翻译成字符串 Offer_46 题目描述 题解分析 本题的解题思路是使用动态规划,首先得出递推公式如下 dp[i] = dp[i-1]+dp[i-2](如果s[i-1] ...
- Mybatis系列全解(六):Mybatis最硬核的API你知道几个?
封面:洛小汐 作者:潘潘 2020 年的大疫情,把世界撕成几片. 时至今日,依旧人心惶惶. 很庆幸,身处这安稳国, 兼得一份安稳工. · 东家常讲的一个词:深秋心态 . 大势时,不跟风.起哄, 萧条时 ...
- three.js cannon.js物理引擎之齿轮动画
郭先生今天继续说一说cannon.js物理引擎,并用之前已经学习过的知识实现一个小动画,知识点包括ConvexPolyhedron多边形.Shape几何体.Body刚体.HingeConstraint ...
- React函数式组件和类组件[Dan]
一篇对Dan的 How Are Function Components Different from Classes? 一文的个人阅读总结,内容来自于此.强烈推荐阅读 Dan Abramov.的博客. ...
- burpsuite 隐藏 detectportal.firefox.com
0x00原由 抓包时经常出现detectportal.firefox.com,不利于我们的渗透工作 0x01解决方法 在输入框输入:about:config 然后设置以下选项:network. ...
- FreeBSD pkg基础教程1
pkg 基础教程1装上系统默认没有pkg,先获取pkg:#pkg 回车即可输入y 确认下载------------------------------------pkg使用https,先安装ssl 证 ...
- FreeBSD 12.2 已经发布 从现有版本更新到12
#freebsd-update -r 12.2-RELEASE upgrade 如果提示更新第三方软件后,再执行freebsd-update install , 请输入 #pkg update &am ...
- 前端学习 node 快速入门 系列 —— npm
其他章节请看: 前端学习 node 快速入门 系列 npm npm 是什么 npm 是 node 的包管理器,绝大多数 javascript 相关的包都放在 npm 上. 所谓包,就是别人提供出来供他 ...