Per la mia prossima applicazione web, sto discutendo se utilizzare Rails 3.x o Sinatra.Rails 3 vs Sinatra
Vorrei utilizzare il server per fornire autenticazione utente, e-mail attivate dall'applicazione, un modello di dati abbastanza complesso (dietro ActiveRecord) e un'interfaccia dati JSON con il client web. Il lato client utilizzerà HTML statico, CSS statico, Javascript/jQuery per eseguire il rendering dei dati JSON nelle viste. La "politica" per il rendering delle viste sarà determinata dal codice Javascript e da alcuni dati JSON. Non ho intenzione di utilizzare alcuna tecnologia di visualizzazione dinamica come ERB, HAML o RJS.
Sarebbe meglio con Sinatra o Rails 3.x?
Ci sono altre domande che dovrei porre prima di prendere questa decisione?
Dato che userei ActiveRecord in entrambi i casi, perché fa la differenza? Dopotutto, ActiveRecord non ti consente di inserire regole aziendali nel livello del modello? Quale sarebbe lo stack MVC completo di Rails per le regole aziendali che Sinatra non possiede? –
Ad esempio, in genere sono necessarie regole di convalida nel livello del modello (non fornite da AR). Ma il punto è più generale: in Rails ti metti in una struttura esistente. Segui le convenzioni e i modelli che assicurano che la tua app sarà facilmente mantenibile e scalerà bene. Sinatra ti aiuta solo nel routing e nel dispacciamento. In un'app di grandi dimensioni avrai bisogno di più: avrai bisogno di separare preoccupazioni e schemi di strutturazione. Ovviamente è possibile scrivere un framework su Sinatra per garantire questo, ma ci vuole tempo e avrà bug (come in ogni programma). (Puoi anche usare Padrino) – Antoine