對於我的下一個Web應用程序,我在討論是否使用Rails 3.x或Sinatra。Rails 3 vs Sinatra
我想使用服務器提供用戶身份驗證,應用程序觸發的電子郵件,一個相當複雜的數據模型(後面的ActiveRecord),並與Web客戶端一個JSON數據接口。客戶端將使用靜態HTML,靜態CSS,Javascript/jQuery將JSON數據呈現到視圖中。呈現視圖的「策略」將由Javascript代碼和一些JSON數據驅動。我不打算使用任何動態視圖技術,如ERB,HAML或RJS。
用Sinatra或Rails 3.x會更好嗎?
在做出這個決定之前,我還有其他任何問題嗎?
鑑於我會在任何情況下使用ActiveRecord,爲什麼它有所作爲?畢竟沒有ActiveRecord讓你把商業規則放在模型層? Rails完整的MVC堆棧會爲您提供Sinatra沒有的業務規則嗎? – 2010-08-30 10:38:02
例如,您通常需要在模型圖層中使用驗證規則(不是由AR提供的)。 但是更重要的一點是:在Rails中,你將自己置於現有的結構中。您遵循的約定和模式可以確保您的應用易於維護並且可以很好地擴展。 Sinatra只能幫助您進行路由和調度。在大型應用程序中,您需要的不僅僅是這些:您需要分離關注點和構造模式。當然你可以在Sinatra上編寫一個框架來確保這一點,但是這需要時間並且會有錯誤(就像在每個程序中一樣)。 (你也可以使用Padrino) – Antoine 2010-08-30 12:36:32