码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • WinUI迁移到即将"过时"的.NET MAUI个人体验


    迁移的初衷

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

    迁移过程

    1. VS启动MAUI开发模块

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

    vs-maui

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

    2. 创建一个项目

    选择如图的项目模板。

    create-proj

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

    img

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

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

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

    MAUI和WinUI的效果对比

    img

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

    迁移貌似没什么阻碍。

    遇到的一些问题

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

    效果如下图

    列表页

    img

    详情页

    img

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

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

    img

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

    最后的感受

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

    参考文档和代码地址如下

    文档的代码地址

    什么是 .NET MAUI?

    dotnet-maui-workshop

    dotnet-podcasts

  • 相关阅读:
    Halo 开源项目学习(四):发布文章与页面
    《HTML+CSS+JavaScript》之第21章 盒子模型
    解决Vue中ecahrts组件不能自适应问题
    【表达式求值问题】算符优先算法解决表达式求值问题
    Spring Boot3自定义异常及全局异常捕获
    如何在 Nginx 中隐藏版本号
    提升市场调研和竞品分析效率:利用Appium实现App数据爬取
    Android 11 修改Makefile去掉编译时禁止拷贝APK限制
    【ccf-csp题解】第1次csp认证-第四题-无线网络-题解
    软件测试工程师是做什么的?这是我的理解...
  • 原文地址:https://www.cnblogs.com/GreenShade/p/16270867.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号