.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 ...
随机推荐
- uniapp封装uni.request请求
封装一个uniapp请求 新建一个http.js文件封装uni.request const BASE_URL = process.env.NODE_ENV === 'development' ? '' ...
- 网络地址转换NAT的两种模式(概念浅析)& IP溯源
由于全球IPv4地址越来越少.越来越贵,因此大到一个组织,小到一个家庭一个人都很难获得公网IP地址,所以只能使用内网地址,从而和别人共享一个公网IP地址.在这种情况下,NAT技术诞生. 翻译 NAT( ...
- POJ-1751(kruskal算法)
Highways POJ-1751 注意这里的样例答案也是对的,只是输出顺序改变,但是这也没关系,因为题目加了特殊判断. #include<iostream> #include<cs ...
- dom_bom学习
1. bom是什么? browser object model(浏览器对象模型) 在浏览器中 window指的就是bom对象 //网页重定向 // window.location.href=" ...
- vue+vuex 修复数据更新页面没有渲染问题
不解: 为什么在关闭开关后,已经将data里的属性和vuex属性初始化后,页面就是不响应??? 问题: 由于切换路由后,获取到vuex的数据在created中赋值到data相对应的属性中,在关闭开关后 ...
- Codeforces Round #538 D. Lunar New Year and a Wander
题面: 传送门 题目描述: Bob想在公园散步.公园由n个点和m条无向边组成.当Bob到一个未经过的点时,他就会把这个点的编号记录在笔记本上.当且仅当Bob走完所有的点,他才会停下来.这时,Bob的笔 ...
- 二叉树的建立与遍历(c语言)入门
树其实在本质上就是一对多,链表就是一对一. 二叉树的建立: 这里的代码采用的是最粗暴的创建方法,无实际用处.但初次学习二叉树可以通过这个创建方法更好的理解二叉树. 二叉树的遍历: 遍历在大体上分为递归 ...
- 如何动态生成EasyUI的表头
需求 前几天遇到了这样一个需求,在页面上展示一组数据,但是表头不固定,需要动态加载出来.比如这次查询表头有[姓名][年龄],可能下次查询表头就变成了[姓名][年龄][性别]. 思路简介 我刚刚接手这个 ...
- DevExpress主要常用控件
DevExpress主要常用控件说明:1. TestEdit: 一个单行文本编辑器. 常用属性:Name:该控件的名称.Text:该控件中的内容.Enabled:该控件是否激活. Visible:控件 ...
- Joomla框架搭建&远程代码执行(RCE)漏洞复现
一.漏洞描述 Joomla是一套内容管理系统,是使用PHP语言加上MYSQL数据库所开发的软件系统,最新版本为3.9.8,官网: https://downloads.joomla.org/,漏洞位于根 ...