1

我们计划在 Mono 中开发一个简单的基于多表单的桌面应用程序。

最初,这个应用程序将有一些表单(用于添加/编辑数据)和网格(用于查看、排序和执行基本操作)。还有一些其他的东西,比如验证、日历等。由一些适度的独立数据库(如 SQLite 等)备份。(甚至是一个简单的 xml 文件)

我们一直在研究基于 Mono 的开发,但我们需要决定是否 - 在 VS.Net C# win 表单中开发应用程序,然后使用 Mono 迁移(编译)它。或者使用 MonoDevelop、Monocross 等 Mono IDE 进行开发。显然,将这​​些 IDE 与 VS.Net 进行比较是不对的,学习曲线也可能会受到影响。我们尝试了 MonoDevelop,发现它非常基础。因此,请让我们知道哪种开发模式适合 Win & Mac 的中小型复杂获胜形式。

PS:这会是一个更好的未来解决方案吗?

4

1 回答 1

3

首先是 GUI Toolkit 的选择:

  1. 选择 WindowsForms 是一个非常糟糕的选择,因为它不再在 Mono 中得到积极维护。这表示:
  2. 在大多数情况下,您的应用程序将在非 Windows 操作系统中运行,但如果您发现错误,则必须自己修复 Mono 中的错误(除非您向 Mono 咨询公司(如 Sinenomine 或一些自由职业者)付费)。
  3. UI 只会在 Windows 中看起来是原生的。在 Mac 中,您的应用程序看起来与在 Windows 中的外观非常相似(因此,与其他 Mac 应用程序相比,它在 Macintosh 中看起来“外来”)。

因此,我建议您使用XWT 工具包(或 Xamarin.Forms/MAUI,它也适用于桌面,但它是一个移动优先工具包)而不是 System.Windows.Forms。

现在,在开发环境方面:

  1. 如今,MonoDevelop 在特性和功能上与 Visual Studio 非常相似(它甚至像 Resharper 一样具有运行 NUnit 测试的上下文方式)。顺便说一句,现在 macOS 中的 MonoDevelop 被称为“Visual Studio for Mac”。
  2. 这意味着您可以让一些开发人员使用 Mac,而其他开发人员在 Windows 中使用 VS.NET。
  3. 但是,请始终确保您团队中的一些开发人员(不仅仅是一个)使用 Mac 在该平台上定期开发和测试您的应用程序。这是确保您足够早地发现 Mono 和 .NET 之间以及 Cocoa 和 WPF(分别是 XWT 将用于 Mac 和 Windows 的后端)之间可能发生的任何潜在差异的唯一方法。如果您发现任何差异,请将其报告为http://bugzilla.xamarin.com中的错误(如果与 MS.NET 相比是 Mono 中的错误)或github中(如果 XWT 在 Macintosh 中的行为差异)与 Windows 相比)。
于 2013-11-11T13:04:57.987 回答