各位很久没有和大家说端的开发了,技术发展特别快,我不知道还有多少国内的开发人员还坚守用Xamarin,但是.NET的迭代变化还是让国内.NET社区热闹起来了。去年虽然疫情,但微软还是在Build上发布了MAUI。微软这次把MAUI完全整合到了.NET 6里面,让跨平台开发在.NET下真真正正成为原生。比较遗憾的反而是名字,不过如果你看看MAUI的全名Multi-platform App UI就能理解微软的用意了。但很多人会问,这个新的演变,有多少变化,下面我解答一下,让大家有一个初步概念,希望大家也可以拥抱下MAUI。

     

MAUI来了_Xamari 

 

一 什么是MAUI

从大的概念来说,是一套跨平台,原生的客户端解决方案。这和Xamarin Forms是一致的,但改进了Xamarin Forms几个问题 

 

1. 当我们创建Xamarin时,除了创建共享的逻辑和页面外,不同平台是分开项目的,而在MAUI是整合到一个项目,以文件夹分开对应的平台。在开发上有人喜欢旧有的方式,但我个人认为这更有利于客户端界面的开发。毕竟都是做UI的事情。

 

             

MAUI来了_技术发展_02

    

 

2.对于控件的绘制上,我觉得微软在参考了flutter后,重新优化了控件

 

MAUI来了_Xamari_03

 

3.一个重新构建的页面结构以往基于ContentPage,现在新增IPage对页面进行绘制

 

注:更多变化大家可以看看https://www.youtube.com/watch?v=qbHO8J3bId0 

 

二 如何创建MAUI项目

 

MAUI现在也可以通过命令行做创建,因为现在处于preview 3的状态,所以如果你要通过命令行创建MAUI,除了要安装.NET 6 Preview 3 外,还需要安装.NET MAUI Check

 

dotnet tool install -g redth.net.maui.check

.NET MAUI Check 现在有几个作用

 

1 可以检查MAUI对相关平台SDK是否齐全通过检查执行以下命令就可以完成相关检查

 

maui-check

 

MAUI来了_Xamari_04

 

 

2 提供MAUI项目的创建模版

 

当所有支持条件都检查完后,你就可以通过命令行去完成MAUI项目的创建

 

dotnet new maui -n HelloMaui

 

MAUI来了_开发端_05

 

 

3 你可以通过MAUI Check去做一些定制工作,例如Nuget设定或者相关SDK环境设定,还有你可以获取最新的开发环境支持,因为MAUI还在preview阶段,所以相关依赖的库需要重新定向Nuget

 

maui-check config --nuget-sources

MAUI来了_技术发展_06

 

关于.NET MAUI Check的更多实用你可以参考https://github.com/redth/dotnet-maui-check

 

三 运行与调试

官方去年已经说了MAUI可以和Visual Studio Code结合使用,但现在相关插件功能还在路上,所以暂时不能完整使用,你现在可以通过脚本进行调用

 

dotnet build -t:Run -f net6.0-android

dotnet build HelloMaui -t:Run -f net6.0-ios

dotnet build HelloMaui -t:Run -f net6.0-maccatalyst

 

 MAUI来了_开发端_07

四 小结

 

MAUI在11月会和.NET 6一起正式发布,现阶段还是很初期,算是一个非常新的开始,当然你说是不是旧酒新瓶呢?但作为一个.NET 6的主推功能推出,也是非常重磅。这里大家会和同类型的产品Flutter比较,就看你的使用场景和团队的需求了,其实两者差不多。随技术发展,国内的技术生态,MAUI要怎么走还很难说,需要大家共同努力。不过很认真说,这个主动权还是微软。