微软迟早要全盘切换到 dotNET MAUI 。然而,论及这次宣布放弃 Xamarin 的决定的原因,窃以为 Xamarin 的死掉恐怕与 Apple 重写 Foundation 有关。
Apple 这次彻底用 Swift 重写 Foundation ,接下来要重写的可能会是整个 Cocoa 。而 Xamarin 高度依赖 C# 与 Objective-C 的绑定,且 C# 与 Swift 有生殖隔离。到现在为止,都还没有任何一个除了 RemObjects 以外的途径可以让 C# 与 Swift 彼此直接互相利用……只是这种跨语言利用是基于 .NET Core 以及 Windows 平台的 .NET Framework 的、无法用于 Apple 生态圈。就算是 macOS 系统下可以用 RemOjbects 的工具以 C# 直接做 Cocoa 编程,那也是与 Objective-C 版的 Foundation & Cocoa 对接的,同样要面对本文一开始提到的难题。
1
timothyye 311 天前 2
微软在历史进程上有几大失败:Windows Phone 干不过安卓, .NET Framework 跨平台太晚,接下来又是 Xamarin...
|
2
felixlong 311 天前 1
这个逻辑不通啊。MAUI 不也是 C#吗? Xamarin 如果有问题 MAUI 不照样有。
|
3
ShikiSuen OP Xamarin 至少允许 Cocoa App 用上 .net ,某些任务跑起来效率比 Swift 5 快很多。
现在 Apple 重写的 Foundation 注定是不会对 Intel mac 有足够优化的、而是专注于 Apple Silicon 。 P.S.: 我没用过 MAUI ,好像 .net MAUI App 在 mac 系统下只能写成 Catalyst App ? |
4
ShikiSuen OP @felixlong Xamarin 相当于给 Objective-C Foundation & Cocoa 的所有 API 翻译出了 C# 版本(除了 InputMethodKit 等少数特种领域模组没有翻译)。
|
5
wanguorui123 311 天前 via iPhone 1
微软做啥事都想搞技术垄断,往往结果是起了个大早赶了个晚集。
|
6
x77 311 天前
拖上 .NET 感觉不太好,太沉重。
|
7
forgottencoast 311 天前
@wanguorui123
"微软做啥事都想搞技术垄断" 这个结论是怎么得出来的?有证据吗? |
10
wanguorui123 311 天前
@forgottencoast J#/C#/Silverlight/WPF/Blazor/Windows CE/SQL Server 哪个不是和 WIndows 平台绑定的
|
11
wanguorui123 311 天前
@forgottencoast WIndows 不支持真正的多用户隔离,导致无法实现容器技术
|
12
wanguorui123 311 天前
@forgottencoast 说白了想搞技术垄断就开发者和企业就很难买单和推广
|
13
forgottencoast 311 天前 2
@wanguorui123
你说的这么一堆东西里面,C#,Blazor ,SQL Server 都不是和 Windows 平台绑定得。 你的这些见识落伍了,还以为你会有什么真知灼见呢,没必要继续讨论下去了。 |
14
roundgis 311 天前 via Android
maui 也不能用 jetpack compose
除非像 flutter 自己劃 不然無解 |
15
wanguorui123 311 天前 via iPhone
@forgottencoast 你知道吃一堑长一智吗?
|
16
wanguorui123 311 天前 via iPhone
@forgottencoast 现在没多少公司陪微软玩了
|
17
wanguorui123 311 天前 via iPhone
@forgottencoast 除了必须要考虑在 Windows 上运行的软件外,现在基本上没公司不用开源和跨平台免费的技术去做开发了
|
18
Chad0000 311 天前
@wanguorui123
非要这么极端么?这么说也别再用 Office ,Windows ,GitHub ,VSCode ,ChatGPT 了吧。 |
19
HaroldFinchNYC 311 天前
@wanguorui123 我以为你说的是 google
|
20
BeautifulSoap 311 天前 via Android 3
有一说一,.NET 和 Xamarin 这名字取的是真失败
|
21
yolee599 311 天前 via Android 1
微软总是喜欢一个东西快凉了弃坑,让追随他的人不知所措,太难受了,比如 VB6.0 ,WP ,WinForms
|
22
zhongbeyond 311 天前 via Android
我认为跨平台产品只能适合那种简单项目,用户规模上来,还是需要用 native 实现
|
23
wanguorui123 311 天前 via iPhone
@Chad0000 这不是极端吧,微软的授权费很贵,很多企业不得不用免费的,就说 Office 吧,很多人选择 WPS 也就是为了省钱
|
24
lza11111 311 天前
@wanguorui123 1. .net 开源跨平台 2. WPS 企业版并不比 M365 便宜多少
|
25
agagega 311 天前
Objective-C 虽然有 Runtime 但不是托管语言,C#既然能和它桥接那肯定也能和 Swift 桥接(尽管复杂度要高太多)。而且这个问题 C#有那其他语言也会有,说白了 Apple 就没想给其他语言的桥接提供便利,和之前抛弃 OpenCL 一样,属于翅膀硬了要单飞的行为。
而且大部分跨平台 UI 框架都不是套原生 toolkit API 实现的吧? SwiftUI 自己都还没成熟,那套 API/ABI 换任何一个语言封装其他都折腾死人。 更何况 Swift 重写 Cocoa 说不定还得等个十年,SwiftUI 只是推出了新的 MVVM 范式,并不是要完全对标取代 Cocoa. 今年的 SwiftData 也不是用 Swift 重写的 CoreData ,只是额外封装了一层。Apple 先后搞出 Catalyst 和 SwiftUI ,说明 Cocoa/AppKit 在它眼里就是遗留 API ,只是因为确实还很有用所以还留着。 微软的技术还是更适合有明确开发目标的刚需型企业用户,想开发跨平台软件的个人开发者用这个,想不出有多少优势。 |
26
Jirajine 311 天前 6
@forgottencoast c#是开源跨平台的,但它的 debugger 不是。你软就喜欢整这种 it's open for everyone,but only useful for clients 的活,真当别人傻,一直吃这一套。
|
27
cocomiko 311 天前
你这头像还以为是在米游社
|
28
Chad0000 311 天前
@wanguorui123
授权贵,人工不是钱么?我这边大部分企业直接上微软全家桶了,中小企业也上,大家都用 Teams ,用 ADO ,如果你想折腾也不是不行,但人力更贵免费的也没保障。想想这些国内软件为啥发展这么慢,付费习惯一直没起来,大家都折腾,都卷,于是都没挣到钱。 |
30
nikenidage1 311 天前 1
不是,xamarin 没死掉啊,只是改名叫 maui 了而已。。。。。
xamarin 是微软收购来的,揉一揉,变成了 maui |
32
wanguorui123 311 天前
@Chad0000 不要洗,以前微软的软件是真贵,比如:VS 开发环境一个授权就要上万,Ofiice 全家桶买断也不便宜,SQL Server 更不便宜,Windows Phone 开发者的授权费也不便宜,Windows Server 2000-2008 的授权费也不便宜
|
33
wanguorui123 311 天前
@Chad0000 最近几年微软开始上云了,学会搞订阅会员制稍微让人感觉便宜了,其实也不便宜。很多开发软件公司对成本和可控性也比较敏感,自然也不带微软玩了,所以微软的很多优秀技术都半途而废了。
|
34
nikenidage1 311 天前
@wanguorui123 我看也不是人家洗啊,是你无脑黑,人家解释一下而已
|
36
Chad0000 310 天前 via iPhone
|
37
wanguorui123 310 天前 via iPhone
@nikenidage1 我怎么就无脑黑了,微软的授权费高,徒增成本还不一定有开源软件好用这是事实。
|
39
nikenidage1 310 天前
@wanguorui123 你最开始这句就是无脑黑啊
“J#/C#/Silverlight/WPF/Blazor/Windows CE/SQL Server 哪个不是和 WIndows 平台绑定的” |
40
wanguorui123 310 天前 via iPhone
@nikenidage1 本来就是 Windows 捆绑销售的,你自己了解下历史,现在微软改已经晚了
|
41
wanguorui123 310 天前 via iPhone
@nikenidage1 现在微软留了些烂摊子,让某些公司苦不堪言,比如:Sliverlight 、WPF 、WinCE
|
42
wanguorui123 310 天前 via iPhone
@nikenidage1 这个 Xamarin 不知道会不会是微软烂摊子,只能让时间证明
|
43
mmdsun 310 天前 via iPhone
@wanguorui123
Windows 也有原生的容器,只不过都是在用 hyper-v ,Win 容器用的少。微软的 Azure 云,构建在 Windows 之上,容器相关的技术从很早就开始在 Win 上有了 |
44
mmdsun 310 天前 via iPhone
@wanguorui123
Win 系统上,类似的比如 Job Objects 用来管理和限制进程组的资源使用,包括 CPU 、内存、磁盘。 Silos 提供了对进程、用户、文件系统、注册表和网络的隔离,类似于 Linux 中的 Namespaces 。 |
45
wanguorui123 310 天前
@mmdsun Windows 的容器也是残废版的容器吧限制很多,没有实用价值
|
46
wanguorui123 310 天前
@mmdsun Windows 容器自身就存在兼容性问题,现在微软都用 WSL2 了,但是还是不好用
|
47
wanguorui123 310 天前
@mmdsun 微软真是搬起石头自己脚,这么多年了多用户隔离都做不好
|
48
oxromantic 310 天前
@wanguorui123 附议,wsl2 纯粹就是自欺欺人了,集成 vm 使用再怎么便利他也是 vm
|