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的一些相关问题。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)