暂停用 Maui 原生开发了, 改成 Blazor 了

2023-12-11 19:12:56 +08:00
 rwecho

挫败

https://www.v2ex.com/t/958400 具体上次发帖已经接近 150 天了, 本来想跟着 dotnet 8 一起发布一个版本, 但是我放弃了, 当时看着大家的回复, 当时觉得时间还早, 每个坑踩一踩还是可以出成果的. 但是当 dotnet 把功能冻结的时候, 我看着 issues 提到的很多和我一样的问题一直在那里, 也没有人去解决. 好在和群里的小伙伴讨论着,也给我各种鼓励, 也让我坚持了下来. 多谢 unkxxx, 多谢群里的小伙伴们.

项目进展

后来这个项目切换到了 Maui Hybrid 也就是 Blazor, 最终还是让这个项目有了一个可以看到的成果. 但是这个项目还是有很多的问题, 也有很多的坑, 但是我还是想把这个项目做完, 也算是对自己的一个交代吧. 尤其是我还配置了 mac mini 和 iphone 12 的开发环境... 起码得用起来不是吗?

目前项目已经上架了 Google Play, 但是还没有上架 App Store, 因为我不知道怎么上架 iOS, 有经验的小伙伴可以帮忙一下, 谢谢. Google Play 地址: https://play.google.com/store/apps/details?id=top.rwecho.v2ex.maui

Github 地址: https://github.com/rwecho/V2ex.Maui

项目截图

项目计划

现在还是有很多需要做的功能, 我和 unkxxx 也讨论了一些有趣的功能希望能慢慢加入, 但是我还是希望能有更多的小伙伴加入进来, 一起完善这个项目. 微信: cndlY2hvMDA4

在这里面我看了之前大家得回复:

@YsHaNg 网页好好的, 为什么要用 app? 哈哈确实, 但是还是想做, 积累经验

@Jirajine 别吹 Maui 了 ? 确实很烂, 我该早听的

@forgottencoast Abp 太重了? 我去掉了

@Al0rid4l Maui 社区反应很多坑? 确实, 我确实踩了很多坑

@tsanie maui 和 avalonia 走的不是一个路子, 是的, maui 走的路子好多人质疑,会序可以把那个帖子发出来,大家观摩下

@keymao 谢谢浇的凉水.

@kqz901002 最后就是换成了 blazor + flowbite (tailwindcss)

这里面也有很多乐趣,关于 C# Maui Blazor 的, 大家感兴趣的可以进群聊天, 上面的二维码要是过期了, 可以加上面的微信. 总体来说:

_ Blazor 还是不错的, 我甚至觉得如果 C# 有华丽转身的话, 那就是 Blazor 了. _

3296 次点击
所在节点    程序员
16 条回复
ragnaroks
2023-12-11 19:56:42 +08:00
blazor 再不更新就要被 RSC 超过了
rwecho
2023-12-11 20:31:44 +08:00
@ragnaroks RSC 是啥, 让我学一下
wnbot
2023-12-11 20:50:45 +08:00
性能咋样,另外,现在 blazor 支持微软的 Fluent UI 了
rwecho
2023-12-11 21:02:51 +08:00
@wnbot 直接用的 tailwindcss , 性能我目前在 小米 9 上面还可以, 挺流畅的
hez2010
2023-12-11 21:56:53 +08:00
MAUI 现在离成熟还太早了,跨平台 GUI 框架哪个不是发展了三、五年之后才开始逐渐变得可用的了,早期都是 bug 一大堆。flutter 、qt 、avalonia 放到 flutter 1.x 、qt 3.x 、avalonia 0.8 的那个时代照样也是非常灾难,到处都是修不完问题,现在 MAUI 大概就处于发展的这个阶段。
只能说如果微软真能持续做下去,不中间把 MAUI 砍了的话,随着时间肯定会越来越好用甚至成为跨平台 GUI 的首选框架之一也不是没有可能,但就是看能不能坚持下去了。
ragnaroks
2023-12-11 22:01:48 +08:00
@rwecho react server component
roundgis
2023-12-11 22:03:36 +08:00
裝了 感覺還行

我正在把公司一個 app 從 xf 搬到 maui 上去

之前搬了一個小的 感覺還行
ashuai
2023-12-11 23:00:16 +08:00
.net8 的?这个 ui 方案可以跑在 linux 上吗?搜了下好像都没提 linux
roundgis
2023-12-11 23:16:15 +08:00
@ashuai blazor hybrid 沒有正式支持 linux
rwecho
2023-12-12 09:41:54 +08:00
@hez2010 #5 这个确实很有道理.
rwecho
2023-12-12 11:16:54 +08:00
@ashuai #8 不行, 不过可以考虑 avalonia blazor
Al0rid4l
2023-12-12 13:04:58 +08:00
之前了解到 MAUI 人手就比较少, 而本身这个东西铺子摊得又很大, 几乎要跨全平台, 就感觉不太现实

个人觉得跨平台吧, 要么跨 PC 三端, 要么跨移动两端, 就差不多了, 即便是 Flutter, 主要也是在移动端, 而且 Flutter 那么大的团队, issue 也是堆满了... 真要全端跨平台, 那目前大概只有 Web 表现比较一致 Bug 较少了. 其他铺子摊太大的, 不是我不信, 就是想开开眼..
forgottencoast
2023-12-12 14:22:37 +08:00
看起来不错呀。
rwecho
2023-12-12 14:56:51 +08:00
@forgottencoast #13 接收你们建议了呗, 一个坑接一个坑,最后跳出来, 转 blazor 了
rwecho
2023-12-12 15:07:16 +08:00
@Al0rid4l #12 可不是, 我钉的几个 issues, 一直没有处理, 到最后正式版发布了也就那样了

后来想想 blazor 可能真是一个跨平台的方案, 如果以后 webassembly 性能有提升的话,那真的有无限遐想.

现在通过 maui +hybrid 的方式, 设计还是非常好的:


1. Blazor 调用 native 方法, 例如 Toast, Preference 还有相机等其他本地模块都很简单, 代码分离也清晰. 甚至可以魔改 webview, label 这些本地组件
2. Blazor 调用 javascript interop, 理解 Blazor 的生命周期, C# 调用 js 非常直观
3. Javascript 调用 C# , 直接生命一个 JsInvokeable 方法就好

但是我并没有测试过 相互调用的额外开销.


所有链路都是通的, 最后 native 虽然没有办法调用 c# 但是可以传参 给 RootComponent.


native -> RootComponent -> C# <-> javascript
yb2313
120 天前
@hez2010 微软: 知道我最喜欢做什么吗, 砍项目

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/999477

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX