2009-10-31 159 views
3

我一直在开发基于Windows的应用程序很长一段时间,我现在的大多数客户仍然希望桌面或客户端/服务器Windows应用程序。是否有可能将Ruby用于此类应用程序,而不是其作为Web编程语言的主要目的?Ruby可以用来开发简单的Windows应用程序吗?

回答

11

即使Ruby on Rails确实适合web开发,但Ruby并不是主要的Web编程语言。 Ruby是一种通用的脚本语言。

FXRubyWxRuby框架是Ruby功能最全面的GUI框架。您可以使用Ruby编写应用程序,然后生成Windows可执行文件。这些框架是跨平台的,所以你也可以在其他平台上运行这些应用程序,例如Linux或Mac OS X.

还有一些其他不太受欢迎的方法,比如QtRuby和Shoes,你甚至可以使用IronRuby(CLR Ruby实现)编写.Net应用程序。

+0

你是如何生成可执行文件的? – Geo 2009-10-31 17:02:31

+0

ruby​​script2exe将做到这一点。 – 2009-11-01 02:01:55

+0

我可以在Ruby中开发Windows Phone应用程序,就像RubyMotion有助于开发Android,iPhone应用程序。 – AbhimanyuAryan 2015-10-20 17:00:52

2

是的,你可以。 Ruby是一种完整的脚本语言。您可能想从Ruby language homepage开始查看可用的功能和库。

但是,仅仅因为你可以不意味着你应该。在介绍和使用Ruby作为项目之前,看看Ruby是否可以为您提供其他语言无法使用的东西,或者使用Ruby有什么缺点。

1

在mac上,您可以使用Ruby Cocoa lib来创建(似乎是)本机应用程序。如果你想要更多跨平台的东西,那么你可能会考虑像鞋或QT的包装。

Qt工具包似乎是最流行的方式来做到这一点。该网站是http://www.darshancomputing.com/qt4-qtruby-tutorial/

我目前正在写一个叫做包装的小应用程序。这似乎使它像馅饼一样简单,以在Ruby中创建窗口应用程序。 http://shoes.heroku.com/是该网站。

目前鞋子只适合小型个人应用。我之所以这样说,是因为它最近的作者是AWOL,目前还不清楚它是否会进一步发展。我使用它来编写游戏日志解析器以从飞行模拟生成统计数据。它很好地滴答作响。

4

Ruby是一种通用的面向对象的脚本语言。 Ruby on Rails是一个Web应用程序框架。 Ruby比Rails早了大约十年。不要混淆两者。

1

Ruby可用于开发GUI应用程序,无论是Windows特定的还是跨平台的。

对于针对Windows的应用程序,您应该看看IronRuby正在进行的工作,因为它们与.NET框架以及Silverlight进行了良好集成,如果您想要制作可桥接Web和桌面的应用程序。此时IronRuby可用于开发Windows Presentation Foundation (WPF)WinForms

对于跨平台,您有Ruby绑定为QT,FOX和其他。

1

我知道这个主题很旧,但是为了将来可以参考任何正在研究使用Ruby作为GUI应用的选项的人,请不要使用QtRuby。我在一周内为学校开发了一个项目,功能齐全,漂亮,只是发现我无法释放它。没有用户模拟您的确切环境(安装所有gem依赖项,构建Qt开发库等),没有办法打包和分发应用程序。我试着使用:

  • 木箱:所谓跨平台的,但我发现,是写在2008年出约2小时使用Google的只有1个使用例子,例如,基本上涵盖了应用的非常具体的子集(一些SSL/HTTPS认证宝石或W/E ...)
  • 奥克拉:这看起来像一个候选人,但它只是窗户,并没有达到我的要求,因为我不得不瞄准三个主要平台
  • tar2rubyscript + ruby​​script2exe:我花了大部分时间试图让它起作用,因为我遇到过很多人声称这是分发使用ruby构建GUI应用程序的方式(尽管使用其他工具包,Tk/GTK/wxRuby)但它也不起作用;我无休止地面对,基本上打破了Qt的:: UILoader的功能,换句话说,一个神秘的错误,无法加载的.ui你QtDesigner所以创建表...

是的,我很生气和沮丧说实话,因为我没有看到创建软件的意义,你只是不能发布供任何人使用。现在我只剩一个星期的截止日期了,我只希望我能及时将应用程序移植到C++。

所以我的回答是,不要使用QtRuby。最起码到现在。

+0

谢谢。我认为Ruby仅适用于Web,我猜你正在编写Windows版本。 – RKh 2010-10-28 06:27:55

+1

@RPK,不,Ruby绝对不适用于web。你可以用它做很多其他的事情。 Amireh的问题是,他所做的非网络程序无法用他可用的工具轻松分发。 – paradoja 2011-03-02 11:36:36

相关问题