2009-04-09 42 views

回答

7

Sinatra是一個比Rails小得多,重量更輕的框架。如果你想快速運行一些只需分發幾個URL並返回一些簡單內容的東西,就可以使用它。看看Sinatra home page;這就是所有你需要啓動並運行「Hello,World」的過程,而在Rails中,你需要生成一個完整的項目結構,設置一個控制器和一個視圖,設置路由等等(我還沒有有一段時間寫了一個Rails應用程序,所以我不知道「Hello,World」的確切步驟數,但它肯定比Sinatra多)。 Sinatra的依賴性比Rails少得多,所以它更容易安裝和運行。

我們正在使用Sinatra作爲我們現在正在編寫的一些Web客戶端庫的快速測試Web服務器。我們可以編寫單個文件並將所有邏輯包含在該文件中,並且只有很少的依賴關係,這意味着與使用Rails應用程序相比,使用和運行我們的測試要容易得多。

Merb is being merged into Rails,所以很快就不應該有任何理由相互使用一個。它最初的設計與Rails相比體重更輕,分離度更高; Rails有更多的假設,你會使用ActiveRecord。但是當他們合併這兩者時,他們以類似的方式分離Rails,所以如果你已經學習了Rails,那麼只需堅持這一點,並隨着發展而來就可能值得。

+0

@布賴恩 - 非常感謝。這正是我想要發現的。 – tundal45 2009-04-09 03:05:39

2

對於Merb我不會說太多的話,但是Sinatra對小型或輕量級解決方案非常有效。如果你沒有使用大量的代碼,或者不需要一個龐大的網站,你可以用Sinatra編寫一個非常有效的網站,速度可以快得多,或者比Rails快兩倍(以我自己的觀點)。

Sinatra也非常適合零碎的應用程序,例如統計軟件包的前端。或者像ErrCount,這只是一個非常簡單的計數器。

因此,在使用Sinatra時,請考慮輕量級,快速且高度簡單化的Web應用程序(儘管複雜性是您的選擇)。

+0

非常感謝您添加該細節。現在我可以看到Sinatra可能適用於我的編碼冒險。 – tundal45 2009-04-09 04:06:25

1

事情進行的方式,很快就會成爲一個毫無疑問的問題。

如前所述,Merb 2.0和Rails 3.0將會是同樣的事情。新組合的Merb和Rails核心團隊已經在努力實現這一目標。我不知道他們是否仍計劃在5月份發佈RailsConf(可能是測試版),但今年肯定會發布。

例如,如果您在使用除ActiveRecord之外的ORM時已經死亡,您可能現在從Merb開始,並在2.0(Rails 3.0)發佈時進行更新。目前,Merb通常被認爲是爲Rails提供了一個更好的框架,以適應不同的組件。

Sinatra看起來像一個Web應用程序的輝煌解決方案,它具有低接口複雜性和稍低於Merb/Rails常規的模型級代碼。實現簡單的RESTful API將是一個很好的用處。當涉及任何數量的HTML時,我不太確信它的價值,當涉及模板時更是如此。

同樣,Rails(現在即將推出Merb)現在坐在Rack之上,沒有理由不將孩子Sinatra應用包含到解決方案中:他們可以一起生活。有a blog post that discusses that very concept

相關問題