Para mi próxima aplicación web, estoy debatiendo si utilizar Rails 3.x o Sinatra.Rails 3 vs Sinatra
me gustaría utilizar el servidor para proporcionar autenticación de usuario, mensajes de correo electrónico de solicitud disparado, un modelo de datos bastante complejo (detrás de ActiveRecord), y una interfaz de datos JSON con el cliente web. El lado del cliente usará HTML estático, CSS estático, Javascript/jQuery para representar los datos JSON en las vistas. La "política" para la visualización de vistas estará impulsada por el código Javascript y algunos de los datos JSON. No planeo usar ninguna tecnología de vista dinámica como ERB, HAML o RJS.
¿Sería mejor con Sinatra o Rails 3.x?
¿Hay alguna otra pregunta que deba hacer antes de tomar esa decisión?
Dado que usaría ActiveRecord en cualquier caso, ¿por qué marca la diferencia? Después de todo, ¿no ActiveRecord le permite poner reglas comerciales en la capa del modelo? ¿Qué le daría la pila MVC completa de Rails para reglas comerciales que Sinatra no tiene? –
Por ejemplo, generalmente necesita reglas de validación en su capa de modelo (no proporcionada por AR). Pero el punto es más general: en Rails te colocas en una estructura existente. Usted sigue las convenciones y los patrones que aseguran que su aplicación será fácil de mantener y se escalará bien. Sinatra solo lo ayuda a enrutar y despachar. En una aplicación de gran tamaño, necesitará más que esto: necesitará separar las preocupaciones y los patrones de estructuración. Por supuesto, puede escribir un marco sobre Sinatra para garantizar esto, pero lleva tiempo y tendrá errores (como en todos los programas). (También puedes usar Padrino) – Antoine