C# 跨*台技术
1、现代运行时:Mono
/Xamarin
,.NET Core
,WebAssembly
- Xamarin:该*台允许C#代码在iOS,Android和其他*台上运,底层是Mono支撑。
- .NET Core:是类似于.NET Framework的现代桌面运行时环境。它可以在OSX,Linux和Windows等操作系统上运行。
- Web Assembly(Wasm):是浏览器内置的一项新兴技术,并得到W3C的支持。从本质上讲,这项技术使开发人员能够以与JavaScript一样安全的方式编译可以在浏览器中运行的代码。
2、UI技术如下
以下是基于这些运行时的UI
技术
Uno Platform:
是基于XAML
的开源UI
库和*台,可在iOS
,Android
和Web Assembly
上运行。它呈现本机原生控件,但尝试在非Windows 10
*台上模拟Windows UWP
图形库。Xamarin.Forms:
是基于XAML
的开源工具包,支持Android
,iOS
,Windows UWP
,开箱即用的预览OSX
,并且将来可能会支持Linux
。Avalonia:
是基于XAML
的开源UI
库和*台,可在Windows
,Linux
和OSX
上运行。社区基于Windows WPF UI
框架。因此,它主要针对台式机使用,可能不太适合移动应用程序。
3、怎么选择
- 你是否需要浏览器支持?
如果是这样,Uno Platform
显然是这里的做好的选择。这是唯一一个完全支持Wasm
的*台。从头开始构建具有浏览器支持的应用程序是一个明智的选择,因为它可以确保最大程度的渗透。用户不必从应用商店下载应用程序即可使用您的应用程序,但可以免受恶意软件的侵害。注意:Xamarin.Forms和Uno Platform可以一起使用。
- 您需要原生的外观和感觉吗?
如果是这样,Xamarin.Forms
可能是正确的选择。像Uno
*台一样,Xamarin.Forms
允许在各个*台之间以声明方式定义UI
,但基于本机*台呈现UI
。默认情况下,样式*似于*台的本机外观,
而Uno Platform
则更像Windows 10
。但是,Xamarin.Forms
和Uno Platform
都允许为其本机*台设置样式。
- 用户是否可以在应用商店以外下载应用程序,目标机器为台式机?
若需要在Linux
,Windows
和OSX
上都是像素完美的自定义适合桌面的体验。在这种情况下,Avalonia是您最好的选择。
Electron
如果你可以建一个网站,你就可以建一个桌面应用程序。 Electron 是一个使用 JavaScript, HTML 和 CSS 等 Web 技术创建原生程序的框架,它负责比较难搞的部分,你只需把精力放在你的应用的核心上即可。
Web 技术
Electron 基于 Chromium 和 Node.js, 让你可以使用 HTML, CSS 和 JavaScript 构建应用。
开源
Electron 是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目。
跨*台
Electron 兼容 Mac、Windows 和 Linux,可以构建出三个*台的应用程序。
什么时候用Electron?
(用于开发一些 效率应用或者开发者工具),eg:VS Code、美图大象(办公OA)