如何評價 .NET 官方跨平台 UI 框架 MAUI?
反正,要是弄得好就是Mono到.Net Core的那種飛躍,
要是沒弄好,看看隔壁Windows Phone和UWP……
當然,一開始就潑冷水是不好的,這次的MAUI至少目前官方還是很積極的,而且有理有據的,值得期待一下。
說回MAUI本身,倒是有個東西我挺在意的:
Blazor,是微軟最近搞出來的Web框架,對標的是Angular, Vue的那個Blazor,說不定有一定可能,這玩意會正面剛上Electron , 真這樣的話,那就有趣了
(當然也不排除是類似https://github.com/xamarin/MobileBlazorBindings 這樣的東西)
總的來說,會是個很有意思的功能
然後,官方repo里有句「Implement MVU」,我見識短,第一次聽說MVU這個詞,然後一看案例:
emm,好像隔壁某個Flutter欸,
之前一看Dart,看了兩眼不想看了。這次有個「C#的Flutter」了,勾起了興趣,到時候得玩玩看。
(Unity你看看人家)
不喜歡MVU的還是依然有挺棒的MVVM,強迫症福音。
同時有MVU,MVVM,Blazor這麼多東西,講真看起來好像是很容易有坑的設定,但玩意要是搞得能用了,大概會非常有趣。
另外說起來,MonoGame好像現在是基於Xamarin的,不知道MAUI的出現,會對MonoGame有啥影響沒
落魄的UWP開發.gif
特意的把linux排除在外了。。。
xaml應該類似xamarin.forms
搞了個mvu模式,方便c# new控制項
x.f繼續維護一段時間,然後徹底往maui遷移
單個project,不像x.f那樣一大堆project
xamarin本來也就ios,安卓,uwp能用,其他的什麼wpf,gtk,wasm都處於呵呵的狀態,這次微軟加個macos,也就這點主要進步了,所以linux就別多想了
總的來說他還是x.f演化出來的進化版,目標也沒有太大的不同,代碼和平台都是從xamarin過來的,x.f我最討厭的事情是wpf里那些shapes都沒有,也沒有viewbox,感覺是個殘疾xaml,不知道趁此會不會改善。 x.f經常搞出些bug,maui又來搞事情,而且也不是往大一統的方向去的,還真就是個進化版的x.f,感覺很一般啊。。。。
我還是更期待.net5 .net6的改進
乍一看,是不是感覺微軟又出新東西玩弄我,以前的 Xamarin 要砍了嗎?
莫急,讓我們來看看簡介。
哎喲,Xamarin.Forms 進化,這就有點意思了,莫非是超級威力加強版?
莫急,我們再來看看 Roadmap,看看它究竟想怎麼做。
emmmmmmm
微軟改名部誠不我欺!
----------手動分割線------------
認真來講,MAUI本質上應該算是 Xamarin.Forms 的一次回爐重構,順便改了個名。
其實從去年 .NET 5 的戰略就可以看出端倪,5 之後的目標既然是實現 .NET 的大一統,那麼遲早也會實現自己的一套跨平台 UI 方案,畢竟這是對應用開發人員來講最大的價值,也是萬眾所望。
那麼剩下的路線無非是另起爐灶重新實現一套,還是吸收 Xamarin 做一套威力加強版。
現在看來微軟選了後者,這可能也是對 Xamarin 這個遺產比較好的一個結果了。
按照 Roadmap,Xamarin 未來一段時間發布最後一個版本之後,後續就會全部遷移到新的 MAUI 。
只要微軟在遷移方面提供足夠便利的方案,對於原來的 Xamarin 開發人員(國內真的少,我是其一)來說就不是特別大的問題。帶來的優勢(單項目結構、MVU、官方桌面端方案等)都是不錯的餅,改善了以前 Forms 一些詬病問題。
這一次改頭換面之後,架構方面就更簡單清晰了,希望能吸引更多跨平台開發者來關注它吧。
如果未來能用 Feel 語言來寫的話就更爽了。
MAUI-Preview 2[1]:
我現在連Windows都不支持呢[2]。你想支持也行,你問WinUI 3什麼時候能做好,我就什麼時候做好[3]!
評論區想撕的老哥被官方堵上了嘴(XD):
至於Linux,啥時候Linux社區將用啥窗口管理器整明白了,MAUI估計就有了。
總不能每種都單獨適配吧?又不能是社區發工資233333
參考
- ^https://github.com/dotnet/maui/releases/tag/6.0.100-preview.2
- ^.NET Multi-platform App UI https://devblogs.microsoft.com/dotnet/announcing-net-6-preview-2/#net-multi-platform-app-ui
- ^.NET MAUI in .NET 6 Preview 4 (Mid 2021) https://github.com/dotnet/maui/wiki/Roadmap#net-maui-in-net-6-preview-4-mid-2021
推薦閱讀: