MAUI ABP框架迁移总结(1)

前言

微软在二周前, 发布了MAUI-6.0.312版本, 微软将这个版本称之为正式版本, 那么既然正式版本发布, 也就意味着可以进行开发接入了, 当然这其中肯定不排除BUG。
那么这次, 我主要的工作则是把之前的Xamarin.Forms ABP框架完整的移植到MAUI当中。.

迁移工作

由于Xamarin.Forms当中使用到了好几个第三方以及社区组件, 包含UI组件、Xamarin社区工具包、Xamarin开源跨平台插件(访问图像、媒体资源等)。这些组件在MAUI当中
是处理无法使用的情况, 考虑到这些, 总结如下:

  • UI组件则暂时使用原生来代替, 因为大部分UI没有特别的需求。

  • Xamarin社区工具包中的一些功能无法使用, 暂时用别的替换, 例如自定义控件部分, SnackBar等。

  • Xamarin开源跨平台插件则考虑在 Essentials中寻找替代方案

开始迁移工作

本次主要的目标是将Xamarin当中所有的UI页面、ViewModel、本地服务、网络服务、系统资源 等迁移到MAUI项目当中, 这里则分几步进行。

  • 针对系统资源统一迁移到Resources文件夹当中,包含图像、字体库等资源。

  • UI页面以及ViewModel全部迁移到MAUI项目当中, 移除Xamarin.Forms命名空间, 以及第三方依赖。

  • 本地化服务以及网络服务移植到MAUI项目当中。例如:平台本地化实现, 通过在Platforms当中单独实现。

  • 启动资源配置以及依赖注入更新到MAUI的模式。

移植效果图

经过2天的移植工作,已经将90%的业务功能迁移到MAUI当中, 包含ABP框架当中的功能, 如: 系统授权、多语言切换、用户管理、组织、多租户等。下面是整个迁移的一些效果图。
关于细节方面, 后面将会讲解MAUI与Xamarin.Forms的差异。

  • 登录页
    MAUI ABP框架迁移总结(1)

  • 系统首页
    MAUI ABP框架迁移总结(1)

  • 用户管理
    MAUI ABP框架迁移总结(1)

  • 审计日志
    MAUI ABP框架迁移总结(1)

  • 语言列表
    MAUI ABP框架迁移总结(1)

  • 系统设置
    MAUI ABP框架迁移总结(1)

  • 关于更多, 后面持续更新....

部分移植项截图示例

图像资源统一
MAUI ABP框架迁移总结(1)
字体库依赖注入

.ConfigureFonts(fonts =>
            {
                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
                fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
                fonts.AddFont("Montserrat-Bold.ttf", "Montserrat-Bold");
                fonts.AddFont("Montserrat-Medium.ttf", "Montserrat-Medium");
                fonts.AddFont("Montserrat-Regular.ttf", "Montserrat-Regular");
                fonts.AddFont("Montserrat-SemiBold.ttf", "Montserrat-SemiBold");
                fonts.AddFont("UIFontIcons.ttf", "FontIcons");
                fonts.AddFont("iconfont.ttf", "iconfont");
            })

本地化实现
MAUI ABP框架迁移总结(1)

总结

MAUI项目的迁移工作, 大体上比较顺利, 尤其是在一些新的特性上, 会大幅度提升开发效率。例如目前已知的

  • 单项目结构

  • 统一的资源管理

  • 启动项配置及依赖注入

  • 统一 Essentials类库至MAUI当中

  • GlobalUsing

  • 简化SDK声明及调用

  • WinUI的原生支持

在后面的文章中, 则会持续更新Xamarin.Forms迁移MAUI的一些相关问题。