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

时间:2011-07-04 16:47:31

标签: c# .net sqlite mono cross-platform

请原谅我提出一个常见问题,但到目前为止我找不到我所需要的东西。

第一个问题 - SQLite 。我在我的C#.NET 3.5 Windows服务中使用这个数据库并且它工作得很好,我正在寻找一个可移植的解决方案,因为我想将我的服务移植到Linux守护进程等,使用Mono,它似乎支持它。但是,我不知道如何实现这一点。我原以为这个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 form GUI,因为我通常可以使用mono轻松迁移它吗?或者我应该像X-Develop或MonoDevelop那样开发它?

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

1 个答案:

答案 0 :(得分:2)

为了帮助我一点点,我使用了提供的完整mysql dll文件,我能够使用visual studio在Windows上编译我的程序,然后将其部署到Linux而不更改任何内容(除了mysql的情况) dll文件,这有点烦人,你会看到我在某些方面的意思)。

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

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

在此处查看此内容,http://www.mono-project.com/MoMA以及克里斯提供的链接。