上篇《Uno 平台 一 WinUI终极跨平台方案(一)》简单介绍了Uno平台3.6版本的更新内容,大家评论里持怀疑态度的人很多,主要还是Uno平台非微软官方发布,咱们.net技术方向的已经习惯于在微软一家技术支持下,最多再熟悉几套盗版控件,就可以撸袖子开始工作了????,本来WinUI跨平台这么大工程应该由微软来完成,阴差阳错Uno平台抢占先机,当然另一个跨平台UI avalonia 更早,但avalonia不支持WebAssembly,并且Uno平台开发人员和WinUI开发组走的很近,微软也一直帮忙推广Uno平台,现在大部分C# + Xaml的论坛里都有Uno的影子。
和Uno结缘还要从2017年说起,那时公司产品主要使用wpf silverlight uwp技术,当时打算开发一款app,能运行在windows iOS 和Android上,最初选择Xamarin.Forms,大概使用近一个月,实在做不下去最后果断放弃。Xamarin.Forms自由度太低,最恨人的是Xaml和windows平台不一致,wpf silverlight uwp 虽说有区别,但基础的测量、布局、样式等差别不大,基本无学习成本。微软非常重视Xamarin.Forms,已将它升级到MAUI,但这并不是我想要的,我需要的是一脉相承的C# + Xaml,无意中发现了Uno,将原有的UWP项目稍做调整即可编译到iOS,Android,真爽啊!从那一刻起我认定了Uno平台,以前所有对C# + Xaml的技术积累终于有救了,我仰天长叹,那一年Uno平台还没多少Star。
至于说Uno平台bug多得一批,最初确实这样,光我就提了好几十个,Uno平台这几年非常活跃,估计目标是奔着微软收购去的,现在Release版还是很稳定的,而且WinUI的内部代码都共享给他们,这是有次提交代码时发现的:
以下视频是基于Uno平台开发的成果,项目地址 https://github.com/daoting/dt , 视频比较长、有背景音乐,包含Windows iOS 和 Android部分:
WebAssembly部分的运行时和Blazor相同,当前还有些慢,未AOT,如此复杂的UI运行在浏览器里,又找回Silverlight的感觉了 ,iOS 和 Android手机浏览器都能运行,请欣赏:
WebAssembly自适应UI
好了,说这么多总结一句话,对于C# + Xaml方向的,Uno平台绝对值得折腾一把!
Uno平台地址:https://github.com/unoplatform/uno