跨平台开发、GUI 和数据库 - c#

Posted

技术标签:

【中文标题】跨平台开发、GUI 和数据库 - c#【英文标题】:Cross platform development, GUI and Database - c# 【发布时间】:2011-07-04 16:47:30 【问题描述】:

请原谅我问了一个常见问题,但我无法从目前的发现中得到我需要的东西。

第一个问题 - SQLite。我在我的 C#.NET 3.5 windows 服务中使用这个数据库,它工作得很好,我正在寻找一个可移植的解决方案,因为我想使用似乎支持它的 Mono 将我的服务移植到 linux 守护程序等。但是,我不确定如何实现这一点。我曾认为 dll 是兼容的,但似乎 Mono/.NET 有一个单独的 dll,这是我应该预料到的。这是否意味着我需要为每个平台单独编码/编译,还是有什么东西可以让我在不同平台上使用相同代码的 SQLite?我在搜索中遇到过几次this,csharp sqlite,一种“重新实现”。老实说,这对我来说很新鲜,有用吗? Mono SQlite 页面说他们 Mono.Data.Sqlite 代码是基于 System.Data.SQlite 并继续说...

“我们选择了这种方式作为 提供迁移路径 开发人员在他们的 .NET 中使用 SQLite 应用程序”

他们指的是创建一个新的、独立的二进制文件吗?或者我可以按原样运行我的代码吗?

第二个问题 - GUI。据我所知,.NET 中跨平台开发的两个主要选项是 GTK# 和 Winforms。然而,再一次,它的实现细节有点模糊。我可以在 Visual Studio 中创建一个 Win Forms GUI,因为我通常会使用 Mono 轻松迁移它吗?或者我应该用 X-Develop 或 MonoDevelop 之类的东西来开发它?

非常感谢您的建议/耐心:D

【问题讨论】:

【参考方案1】:

为了在这里提供一点帮助,我使用了提供的完整 mysql dll 文件,我能够使用 Visual Studio 在 Windows 上编译我的程序,然后将其部署到 Linux 而不进行任何更改(mysql 的情况除外dll 文件,这有点烦人,你会在某些时候明白我的意思)。

据我所知,单声道尚未完全支持 winforms,但我可能错了。我还没有做过gui跨平台,但我会先测试winforms,这样你就可以在visual studio中开发它,如果这不起作用我认为GTK应该没问题。

您只需要确保 dll 是为 .net 3.5 或更低版本编译的,您应该没问题(90% 的时间)。

在这里查看http://www.mono-project.com/MoMA 以及 chris 提供的链接。

【讨论】:

好答案;我完全同意去 GTK 可能是最好的选择。 干杯人!您能告诉我,这只是更改项目文件夹(和参考)的内容的问题吗?我以前没有建立过这么大的项目,所以我对如何将所有东西放在一起有点阴暗。 SQLite 还有另一个组件,我必须将另一个 dll 添加到我的发布文件夹中,但无法引用...这会自动与我的程序一起编译吗? 只需编译它,将其移动到 linux 计算机并键入“mono program.exe”。如果您收到一条错误消息“找不到任何.dll”,只需使用命令“mv whatever.dll What.dll”确保 dll 的大小写匹配。这应该可以帮助你。 @kelton52 - 嘿,kelton,这可能是一个奇怪的问题,但它与我已经问过的问题有关,所以也许你可以帮忙。我想知道 Mono 是否可以使用 System.Data.SQLite 开箱即用,因为它似乎可以。目前,我正在.NET 和 Mono 下的 MonoDevelop 中测试我的服务,并且两者似乎都可以使用相同的 DLL。我处于可疑的“它好得令人难以置信”模式:P 如果有什么不同,我正在使用最新的长期支持(因此稍旧)版本的 Mono,2.6.7。当我将 exe 移到 linux 时,我会得到一个令人讨厌的惊喜吗? 大多数 dll 不需要重新编译或任何东西。我使用了不是为单声道设计的完整 mysql dll 文件,它似乎工作正常。

以上是关于跨平台开发、GUI 和数据库 - c#的主要内容,如果未能解决你的问题,请参考以下文章

11 - JavaSE之GUI

C#基础篇之语言和框架介绍

使用复杂的 GUI 编写跨平台应用程序

使用 Java 是开发基于 GUI 的会计应用程序的适当语言/平台吗?

七个python gui图形界面开发框架

如何在 WPF C# GUI 中使用跨平台 C++