Loading

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的差异。

  • 登录页
  • 系统首页
  • 用户管理
  • 审计日志
  • 语言列表
  • 系统设置
  • 关于更多, 后面持续更新....

部分移植项截图示例

图像资源统一

字体库依赖注入

.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项目的迁移工作, 大体上比较顺利, 尤其是在一些新的特性上, 会大幅度提升开发效率。例如目前已知的

  • 单项目结构
  • 统一的资源管理
  • 启动项配置及依赖注入
  • 统一 Essentials类库至MAUI当中
  • GlobalUsing
  • 简化SDK声明及调用
  • WinUI的原生支持

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

posted @ 2022-06-06 21:33  痕迹g  阅读(1311)  评论(4编辑  收藏  举报