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的更多相关文章

  1. 春风十里不如你,全新Windows UI 3(WinUI 3) 的第一个实现Project Reunion 0.5

    什么是WinUI Windows UI库 (WinUI) 是适用于 Windows 桌面应用程序和 UWP 应用程序的本机用户体验 (UX) 框架. WinUI is a user interface ...

  2. Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建

    Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...

  3. Ext.Net学习笔记12:Ext.Net GridPanel Filter用法

    Ext.Net学习笔记12:Ext.Net GridPanel Filter用法 Ext.Net GridPanel的用法在上一篇中已经介绍过,这篇笔记讲介绍Filter的用法. Filter是用来过 ...

  4. SQL反模式学习笔记12 存储图片或其他多媒体大文件

    目标:存储图片或其他多媒体大文件 反模式:图片存储在数据库外的文件系统中,数据库表中存储文件的对应的路径和名称. 缺点:     1.文件不支持Delete操作.使用SQL语句删除一条记录时,对应的文 ...

  5. golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题

    golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题 今天测试了重新建一个项目生成新的表,然后复制到旧的项目 ...

  6. Python3+Selenium3+webdriver学习笔记12(js操作应用:滚动条 日历 内嵌div)

    #!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记12(js操作应用:滚动条 日历 内嵌div)'''from ...

  7. springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定

    springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定 标签: springmvc springmvc学习笔记12-springmvc注解开发之包装类型參数绑定 需求 实现方 ...

  8. 并发编程学习笔记(12)----Fork/Join框架

    1. Fork/Join 的概念 Fork指的是将系统进程分成多个执行分支(线程),Join即是等待,当fork()方法创建了多个线程之后,需要等待这些分支执行完毕之后,才能得到最终的结果,因此joi ...

  9. 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 ...

随机推荐

  1. Visual Studio Code运行Python代码

    目录 步骤 参考 用Pycharm开发Python程序是最好的选择,就是有点贵.基于这个背景,我就尝试一下别的IDE,看到很多人在用免费.开源的Visual Studio Code,下面是配置并运行P ...

  2. 《Asp.Net Core3 + Vue3入坑教程》 - 6.异常处理与UserFriendlyException

    简介 <Asp.Net Core3 + Vue3入坑教程> 此教程适合新手入门或者前后端分离尝试者.可以根据图文一步一步进操作编码也可以选择直接查看源码.每一篇文章都有对应的源码 目录 & ...

  3. Mark一个代码量统计工具-Statistic

    安装方式 IDEA.Goland系列插件市场搜索Statistic 简单说明 统计纬度比较丰富 基本覆盖常见纬度,如代码行数,文件大小等,各指标取最大最小及平均值. 统计目录为当前项目目录 只有在当前 ...

  4. 【odoo14】第四章、应用模型

    由于本章有包含很多基础知识,个人不会全部转化为自己的语言.直接机器翻译了(用斜体标注,机器翻译反而一字不落,我会过滤掉冗余的内容),虽然机翻,但会保证意思不会偏. 本章主要章节如下: 定义模型展示及顺 ...

  5. 运用arcgis将标签图片(栅格图)转换为shp矢量文件

    最近在做图像分割校正,需要将ecognition分割好的shp文件做优化,但是如果直接对shp文件修改非常不友好,可以先对导出的tif标签图进行修改,然后将修改后的标签图转换为新的shp文件进行输出. ...

  6. 「视频小课堂」Logstash如何成为镇得住场面的数据管道(文字版)

    视频地址 B站视频地址:Logstash如何成为镇得住场面的数据管道 公众号视频地址:Logstash如何成为镇得住场面的数据管道 知乎视频地址:Logstash如何成为镇得住场面的数据管道 内容 首 ...

  7. [Azure Devops] 使用 Azure Boards 管理工作

    1. 什么是 Azure Boards 通过 Azure Boards 网络服务,团队可以管理其软件项目.它提供了丰富的功能,包括 Scrum 和看板的本地支持.可定制的仪表板和集成报告.这些工具可以 ...

  8. 上万字详解Spark Core(建议收藏)

    先来一个问题,也是面试中常问的: Spark为什么会流行? 原因1:优秀的数据模型和丰富计算抽象 Spark 产生之前,已经有MapReduce这类非常成熟的计算系统存在了,并提供了高层次的API(m ...

  9. python3 输出字符

    import string'''whitespace -- a string containing all ASCII whitespaceascii_lowercase -- a string co ...

  10. 一种3位sar adc仿真验证

    3位sar adc采用下图的电容阵列,电路如下图:所有电容的正端(也称为上极板)与比较器的同相端连接,比较器反相端接gnd,其工作过程进行大致分析见之前的文章<一种3位sar adc工作过程推导 ...