Cocoa (MonoMac) & WinForms (or WPF) frontend with common c# backend
Cocoa (MonoMac) & WinForms (or WPF) frontend with common c# backend
我正在设计一个桌面应用程序(LOB 类型),需要在 MacOSX 上 运行、Windows 和 Linux。我们一直专注于 WinForms,但由于在 MacOS 上不稳定,我们不得不放弃它(Linux 到目前为止还不错)。
我想知道是否有任何代码示例、back-end/api 设计指南以及如何以良好的方式完成此操作。
我发现的唯一示例是 Mono/C# 个针对 UI 平台之一的示例 - 但不是两个。
基本上,
- 要查看的设计模式(MVP、MVC、MVVM)
- 以及如何在两个 UI 域上以良好的方式实施它们
谢谢,
伊夫
经过一番研究后,我得出了两个选择
- Xwt [https://github.com/mono/xwt];
- Eto.Forms [https://github.com/picoe/Eto].
两者都是 .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 上列出了很好的演示应用程序。但我建议两者都检查一下并做出自己的选择。
- Xwt [https://github.com/mono/xwt]
- Eto.Forms[https://github.com/picoe/Eto]
- 阿瓦隆尼亚 [https://github.com/AvaloniaUI/Avalonia]
我不确定是否还有其他选择
和 Eto.Forms 具有数据绑定,您可以使用 MVVM:
https://github.com/picoe/Eto/wiki/Data-Binding
我不确定其他人是否有数据绑定。
这是 ETO 如何使用 MVVMLight 和数据绑定的示例:
- 这是包含用户集合的 ViewModel,此 ViewModel 存在于 Windows 和 Mac 项目之间共享的可移植项目中:
ViewModel
- 这是一个 ListViw 绑定到用户集合的视图,这个视图也存在于 Windows 和 Mac 项目之间共享的可移植项目中:
View
这意味着 View 和 ViewModel 在 Mac 和 Windows 项目之间共享。
我正在设计一个桌面应用程序(LOB 类型),需要在 MacOSX 上 运行、Windows 和 Linux。我们一直专注于 WinForms,但由于在 MacOS 上不稳定,我们不得不放弃它(Linux 到目前为止还不错)。
我想知道是否有任何代码示例、back-end/api 设计指南以及如何以良好的方式完成此操作。
我发现的唯一示例是 Mono/C# 个针对 UI 平台之一的示例 - 但不是两个。
基本上,
- 要查看的设计模式(MVP、MVC、MVVM)
- 以及如何在两个 UI 域上以良好的方式实施它们
谢谢, 伊夫
经过一番研究后,我得出了两个选择
- Xwt [https://github.com/mono/xwt];
- Eto.Forms [https://github.com/picoe/Eto].
两者都是 .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 上列出了很好的演示应用程序。但我建议两者都检查一下并做出自己的选择。
- Xwt [https://github.com/mono/xwt]
- Eto.Forms[https://github.com/picoe/Eto]
- 阿瓦隆尼亚 [https://github.com/AvaloniaUI/Avalonia]
我不确定是否还有其他选择
和 Eto.Forms 具有数据绑定,您可以使用 MVVM:
https://github.com/picoe/Eto/wiki/Data-Binding
我不确定其他人是否有数据绑定。
这是 ETO 如何使用 MVVMLight 和数据绑定的示例:
- 这是包含用户集合的 ViewModel,此 ViewModel 存在于 Windows 和 Mac 项目之间共享的可移植项目中: ViewModel
- 这是一个 ListViw 绑定到用户集合的视图,这个视图也存在于 Windows 和 Mac 项目之间共享的可移植项目中: View
这意味着 View 和 ViewModel 在 Mac 和 Windows 项目之间共享。