2009-10-31 120 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

相關問題