WinUI迁移到.NET MAUI个人体验

迁移的初衷

本人平时是做.net相关的工作,对于.net技术栈也有一些了解,自从新的.net能够跨平台之后,之前也有跨平台的ui框架Xamarin,现在微软推出了.NET MAUI这个说是 统一了开发体验,而且都RC版本了,所以本人也就想着试试看了,于是就想着把前几天的WinUI的demo迁移到MAUI上试试看了。

迁移过程

1. VS启动MAUI开发模块

如图,下载最新的vs2022预览版,然后勾选.NET MAUI。

7a10f44e6f8c6d66a2a80b14bfb40183.png

通过安装这些模块我们就能创建了MAUI的项目了。

2. 创建一个项目

选择如图的项目模板。

7e03debce4a932d5bb99bf3a4ebb0684.png

创建完成之后项目结构如下图。

77016a007a7a0d655355cb7eb7cdb746.png

乍一看和普通的wpf或者uwp再或者winui项目差别不大,主要的区别可能就是多一些依赖项为不同的平台。

3. 确认迁移需要的一些依赖

我之前的WinUI demo用数据存储是LiteDB,这个支持,那基本上就没什么阻碍了,ui显示的话,需要用MAUI提供的一些控件替换掉WinUI里的控件。

MAUI和WinUI的效果对比

530a8ddfe52c412042de834000f5a637.png

左边为MAUI效果,UI其实我是抄了一个dotnet-maui-workshop项目的样式。右边就是一个简单的WinUI控件展示。

迁移貌似没什么阻碍。

遇到的一些问题

目前在写这篇文章的时候.NET MAUI已经是RC3了,之前在RC2的时候有个奇怪的问题,就是从LiteDB读出的流放到图片展示,windows下是正常,在安卓设备上就不正常了。所以当时就没搞了,看了github上的问题区好像是bug,在这个RC3版本修复了,所以在安卓上也能正常显示了。

效果如下图

列表页

935eaa5f2eed53a2affcd1a747e27df6.png

详情页

8d587d5b1d9f90362c43fa29aeb377d8.png

不过好像不推荐用流进行显示,感觉有的列表如果滚动之后好像流不存在了就会展示异常。估计是我的用法不对了。

还有个比较奇怪的地方就是如下图的代码,在windows上能够正常生效,但是在安卓上就会失效。

dad5d04973734bce7d7ea9021adefc57.png

整体感觉开发体验和wpf体验很像,不过对于一些依赖特定平台的功能需要大家根据具体的平台进行实现了。需要大家了解一些各平台的api。

最后的感受

整体的开发方式确实很舒服,从开始的不太适应,到后面觉得还不错,感觉持续的演进下去会有一个不错的未来吧。希望更多的人参与进来,然后共同完善这个框架。

参考文档和代码地址如下

文档的代码地址:https://github.com/GreenShadeZhang/dotnet-maui-tutorial-code

什么是 .NET MAUI?:https://docs.microsoft.com/zh-cn/dotnet/maui/what-is-maui

dotnet-maui-workshop:https://github.com/dotnet-presentations/dotnet-maui-workshop

dotnet-podcasts:https://github.com/microsoft/dotnet-podcasts

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值