【发布时间】:2015-09-27 21:42:02
【问题描述】:
我正在使用 Windows 10、Visual Studio 2015 和 C# 编写一个通用应用程序。我想在 Windows、Linux 和 mac 上运行这个应用程序。我知道 mono 没有实现 windows 演示框架,所以,如果我编写一个 WPF 应用程序,它只能在 windows 上运行。现在,如果我编写一个通用应用程序,mono 可以运行它吗?如果是,怎么做?
【问题讨论】:
我正在使用 Windows 10、Visual Studio 2015 和 C# 编写一个通用应用程序。我想在 Windows、Linux 和 mac 上运行这个应用程序。我知道 mono 没有实现 windows 演示框架,所以,如果我编写一个 WPF 应用程序,它只能在 windows 上运行。现在,如果我编写一个通用应用程序,mono 可以运行它吗?如果是,怎么做?
【问题讨论】:
圣杯 .Net UI 问题 :-)
TL;DR 答案 = 否。
通用 Windows 平台 (UWP) 核心 API(也称为 Windows 运行时/WinRT)和由此产生的基于 APPX 的应用程序仅针对 Windows 10 平台(手机、PC、平板电脑...)作为这些 API 和运行时在其他桌面上不存在。
使用 Xamarin/Mono,您可以重用 C# 应用程序的“业务”级逻辑的一部分,但表示层和 GUI 逻辑必须使用不同的 GUI(Native Widgets、GTK#、QTSharp、HTML/ CSS/NodeJs 等...)。人们一直在使用 Xamarin 进行基于 C# 的移动开发的相同模型适用,跨平台共享 C# 应用程序逻辑并使用 Xamarin.Mac 构建本机 OS-X UI,和/或使用 GTK# 构建 UI,嵌入应用程序的运行时逻辑到电子/闪烁外壳等。
目前 Windows 10 for Apache Cordova 项目是 HTML、JavaScript 和 CSS,仅针对移动(WinPhone、iOS、Android)和 Windows 10 PC/平板电脑平台。这并不是说有人不能开发一个新的 Cordova 目标来包括 OS-X 和 Linux 桌面管理器支持(但我不知道有哪些尚未停止):-/
甚至微软基于 xplat 的 Linux 和 OS-X 的 Visual Studio Code 也使用 Electron(基于 Chromium)来部署基于 io.js 的应用程序以及 Blink 布局引擎来呈现 UI,所有这些都在 HTML/CSS/JS 中完成.
【讨论】: