c# - Cocoa (MonoMac) & WinForms (or WPF) frontend with common c# backend

标签 c# winforms cocoa mono monomac

<分区>

我正在设计需要在 MacOSX、Windows 和 Linux 上运行的桌面应用程序(LOB 类型)。我们一直专注于 WinForms,但由于在 MacOS 上不稳定,我们不得不放弃它(Linux 到目前为止相当不错)。

我想知道是否有任何代码示例、后端/api 设计指南以及如何以良好的方式完成这些。

我发现的唯一示例是针对其中一个 UI 平台的 Mono/C# 示例 - 但不是两个。

基本上,

  • 要了解的设计模式(MVP、MVC、MVVM)
  • 以及如何在两个 UI 领域以良好的方式实现它们

谢谢, 伊夫

最佳答案

在做了一些研究后,我有两个选择

两者都是 .Net 跨平台 UI 工具包,或者您喜欢的框架,它们抽象出 UI 的具体(平台特定)实现。

在撰写本文时

  • Xwt 支持 Windows(WPF、Gtk#)、MacOS(MonoMac、Gtk#)和 Linux(Gtk#)。
  • Eto.Forms 支持 Windows(WinForms、WPF(带 GDI+ 或 Direct2D)和 Gtk#)、MacOS(MonoMac 或 Xamarin.Mac)、Linux(Gtk#2、Gtk#3)、iOS(Xamarin.iOS ).并宣布支持 Android (Xamarin.Android)、Windows 8.x 和 Windows Phone。

就我个人而言,我的选择是 Eto.Forms,因为它具有强大的理念和易用性 + 在其主要 GitHub 页面上列出了良好的演示应用程序。但我建议您同时检查两者并做出自己的选择。

关于c# - Cocoa (MonoMac) & WinForms (or WPF) frontend with common c# backend,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28461157/

相关文章:

c# - SmtpClient "direct replies to"选项?

c# - 防止在窗体标题栏上单击鼠标右键显示系统上下文菜单

c# - 使面板控制透明

cocoa - 核心动画不适用于 Leopard,适用于 Snow Leopard

c# - 如何在ASP.net网页的服务器端使用文本文件读写?

c# - C# 中纬度/经度值的 double 或小数

c# - 我怎么知道没有 Textchanged 事件的文本框的文本更改

ios - Xcode 10 无效的二进制架构?

cocoa - 如何从 Xcode 4 中的实体创建用户界面?

c# - 为什么 StreamReader 返回字符串而不是字节数组