MAUI还没入门就放弃

之前听说.NET终于把名字统一了,可喜可贺,我终于不用再纠结.NET Core和.NET Framework哪个新哪个旧了。之后MS在统一的路上继续狂奔,决定把UI也统一了,说是出了个叫做MAUI的框架。

论UI开发框架,MS的开发部门真是研发了好几辈子。之前有WinFrom还有WPF,古早的MFC之类的玩意儿,都是长江后浪推前浪,一代不如一代浪。现在谁不用javascript+html写UI谁就是boomer,手机呼机商务通都可以用的东西各家都在搞,MS家的东西已经不耐看了。但MS野心显然不止于此,大概是因为移动平台的地位失去了,想找回场子,就弄了这么个框架。老调重弹,还是号称一次写码到处编译(亦读作修锅),架构图也是老套路,顶层一大块MAUI包圆了,下面各种模块支撑,叠了三四层最后是各种平台。

我简单理解了下,它是把以前的Xamarin收编了,然后在各个平台上实现了.NET的这套runtime,就能把App跑在各种地方了。布局和MVVM这类东西,还是原来WPF的那套,写起来也主要靠XAML(写到这里,我的小拇指已经因为不停的按Shift书写各种全大写的缩写名称搞得开始酸痛了)。

这听起来没什么新意嘛,可能是我已经老了或者没搞懂?之前也知道Xamarin,但这个名字我一直不喜欢,主要是不知道该怎么念。.NET就已经够奇葩了,Xamarin又是怎么起出来的?无论如何,新的MAUI来了,该怎么念呢?猫艾?Whatever了……

打开tutorial,过了一遍,总之先装VS2022,再装MAUI开发工具集。不管我愿不愿意,20多个G就没了,Android和iOS的一大坨东西被塞进了c盘。要知道我本地已经装了好几个Android SDK,它就不能先别装让我选个本地的版本吗?还有iOS又是什么鬼?已经能在Win上面交叉编译iOS的程序了?我不懂,但我大受震憾。

好在装起来虽然慢但也简单,等进度条跑完,打开IDE创建一个HelloWorld项目,我也来尝尝鲜!MAUI,启动…………哎不对报错了。再启动………………哎呀说要先打开Windows10的开发者模式。什么我的PC还支持这种模式?我平时各种写代码debug爬数据跑ai注入dll原来都不算开发者,只有MAUI才让我明白自己一直用的是门外汉模式。

行吧,开了之后咱重新来过。就假装我的3900x+4090RTX是个平板电脑好了:开发者模式MAUI,启动!!!!

然后就继续报错了,这次报错连推荐解决方案都没有,出现了微软的传统艺能:0x8adsaf123DSAF123文件找不到错误,总之就是看不明白,中英文夹杂的报错信息显得异常结棍。我不服又能怎样?ChatGPT根本不懂这新玩意儿,还得Google来帮忙。

原来报错是因为我的项目放在subst虚拟出来的盘符上,可能deploy的过程需要管理员权限,管理员看不到我的个人用户subst出来的东西,就挂了。行吧可以理解(理解个屁啊!编译EXE也要用到高权限了吗?但无论如何,换到普通盘符下面打开项目,终于可以MAUI启动了。

一番折腾,出现了蓝紫色的画面,除了启动过程略长以外,中规中矩的平板App风格。我跑到build目录一看,好家伙,各个平台每种一个目录。打开Windows的目录,里三层外三层,居然生产了250多个文件将近300m的各种不明就里的dll和exe。

我的天哪!!!

我的天哪!!!

我的天哪!!!

比electron这坨abomination还要吓人呢。我真的找不出合适的中文词汇形容我的感觉了,只有abomination这个长且发音简单的词汇可以表达我内心的震撼。我第一次听到还是十多年前玩龙腾世纪的时候,每次出现一大坨肉队友就会大喊abomination。恶臭,臃肿,2023年了怎么会有这样的东西!

然后我找了下编译出来的exe,大概几百k。双击一下这个文件,居然无法启动我的程序。果然,dotnet core熟悉的感觉出来了,程序编出来不知道怎么启动!明明在visual studio里面可以启动的呀。我索性再编了个release版,文件数没少但是容量减少到了100m,算是小号的abomination吧。

还是无法双击exe启动,满头问号的我再次Google,果然许多人在Github上询问这个事情。在翻了好多微软公司人废话连篇云里雾里的兜圈子回答之后,我终于明白了,这个MAUI开发出来的应用需要publish,变成特殊的MSIX格式,然后安装到PC上才可以脱离Visual Studio启动。

什么?这套流程不是xcode开发mac程序时候的恶臭步骤吗?还得先打包成Archive,再签名,再搞来搞去,最后安装。有种“我自己写的代码不是我自己的,我自己的电脑也不是我自己的,我自己为什么要做这种自我怀疑的事情”的感觉。

试了一下果然,publish过程中问要不要签名,要不要这要不要那,最后产出一坨MSIX。等等,微软又发明新的安装包了?不是MSI是MSIX?怎么现在这些有钱公司的开发者都喜欢X啊……X来X去还是100多M,然后点击安装,然后我的程序终于可以直接跑了。

经过MAUI这么一套组合拳,我感觉自己被赋能,整个人都是MAUI的形状了。硬要我评价的话,就是主打一个“干”字。我想对开发这些东西的人说:还我的1个小时和20G硬盘空间好不好啊?MAUI你们自己留着,我滚回去随便用什么框架了,哪怕electron我也不敢再骂了。

谢谢微软,谢谢MAUI,我手头的其他框架看起来都变得美好了。

可能这就是生命的意义吧。

One thought on “MAUI还没入门就放弃”

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.