我在跨平台桌面开发方面有几年的经验(Windows和MacOSX,而不是Linux(至少不适用于GUI应用程序))。通常我使用Cocoa在MacOSX上创建GUI,在Windows上我使用老式的Windows API。我没有使用过Qt,因为当我开始时它仍然是GPL许可证。
我发现本机体验非常重要,所以我会继续使用Cocoa for Mac。但是对于Windows,我正在考虑将.NET框架用于GUI代码。我没有将.NET代码与现有的跨平台C ++代码库集成的经验,似乎我可以使用C ++ / CLI或C#。
以前有人做过这样的做法吗?它运作得好吗?您是否需要将.NET框架与安装程序捆绑在一起?添加的.NET代码是否会给最终的可执行文件增加很多重量?
答案 0 :(得分:1)
你可以使用Mono,这是非常好的跨平台。
在Windows上,我建议您使用Visual Studio,同时查看Express版本(它不是跨平台版)。
以前有人做过这样的做法吗?
是
它运作得好吗?
当然!
您是否需要将.NET框架与安装程序捆绑在一起?
没有
添加的.NET代码是否会给最终的可执行文件增加很多重量?
Depends中
答案 1 :(得分:1)
我考虑过这个但放弃了因为.NET框架增长得更快,然后你可以眨眼睛。 NET 3.5是一个hundert MB下载,是的,你的用户需要它。
我目前正在为我的应用程序开发GTK / Delphi / Cocoa跨平台库。我将Delphi编译成一个DLL并使用它来自一个通用的C / C ++代码库,因为我发现Delphis VCL更好更容易使用。
我同意 - 至少对于ISV而言 - GUI的集成和质量变得越来越重要,因为这是与免费开源软件市场的重要区别。
答案 2 :(得分:1)
是的,您需要将.NET框架与安装程序捆绑在一起,或者通知用户他们需要安装它并提供一个尚未安装的链接。根据我的经验,添加的.NET代码确实为可执行文件增加了一些可观的重量,但我发现在没有它的机器上安装.NET框架会更加不方便 - 安装确实需要相当多的时间时间。
答案 3 :(得分:-3)
Qt根据GPL获得许可的相关性是什么?请记住,这并不意味着您的代码必须根据GPL许可;我们使用Qt开发了许多专有应用程序。但是,如果您修改 Qt并使用这些修改释放应用程序,则必须释放修改(但不包括任何其他代码)。我们在构建跨平台Qt应用程序方面取得了很大成功,模拟了一些出牙问题,主要是多线程。
就.NET而言,C ++ / CLI可能是与现有C ++代码库集成最不痛苦的方式。必须安装.NET框架才能运行应用程序,但它不一定必须与安装程序捆绑在一起,因此已经拥有.NET的人不必再次下载它。它肯定会给可执行文件增加一些重量,但普通的台式机PC不会注意到它;您的软件设计和算法选择将产生更大的影响。