model-view-controller architecture backbone.js pjax

model view controller - pjax o lado del cliente MVC?



model-view-controller architecture (1)

Tengo que comenzar un nuevo proyecto, una aplicación web con muchos formularios y pantallas, y realmente no sé qué tecnología se ajusta mejor. La aplicación es una aplicación tipo ERP, con muy pocas animaciones y muchas formas. El objetivo es reducir al mínimo las recargas y el tiempo de espera, tiene que estar lo más cerca posible de una aplicación de escritorio normal (mucho trabajo para parecer una maravillosa aplicación VB6 :-)

Por un lado tenemos MVC del lado del cliente (backbone). Es genial tener todo el código ejecutándose en el cliente, pero en mi opinión esto implica la repetición de muchos códigos (por ejemplo, todas las definiciones de modelos) del servidor (PHP + Combustible). Claro que una vez cargué toda la tarea de información, como las páginas o el trabajo de cuadrícula, sin demoras, pero también presenta algunos problemas de sincronización (otros usuarios pueden cambiar los datos y tengo que invalidar manualmente los datos en el cliente).

Por otro lado tenemos pjax. La idea es hacer todas las plantillas y demás en el servidor, simplemente implemente una lógica para devolver la página sin el marco para la solicitud del pjax o la página completa para las nuevas solicitudes. Sin duplicación de código, muy simple para el cliente.

He leído la historia de basecamp y de twitter y tanto el punto tiene sentido para mí. No puede retransmitir en la computadora del visitante (características, rendimiento ...)

Cuanto más lo pienso, el modo me gusta pjax sobre MVC, pero tal vez me falta algo. ¿Cuáles son las ventajas de MVC sobre las desventajas de pjax o pjax sobre Client Side MVC?

Muchas gracias


Backbone.js es bueno para aplicaciones web pesadas y de una sola página que nunca se publican de verdad, pero que tienen muchas cosas ajaxianas, desplegables en cascada interdependientes, etc. Tiene una API muy buena para eventos y colecciones. Si tiene un javascript abundante en el lado del cliente, puede ser una forma útil de organizarlo. Es obvio en el sentido de que espera que su arquitectura del lado del servidor sea RESTful por defecto, y debe hacer un esfuerzo para usarla para API no RESTful.

El proyecto en el que estoy trabajando es una aplicación web ERP también, con asp.net MVC en el lado del servidor. Aprendí que Backbone (con manubrios como sistema de plantillas) y .net mvc realmente no funcionan tan bien juntos. Si vas a Backbone, realmente tienes que ir por completo (los métodos de control sirven json, eso es todo). En las páginas de esta aplicación que son páginas web más o menos "normales" con algunos formularios, Backbone es la opción incorrecta.

Acabo de buscar en Google pjax por primera vez, así que básicamente acabo de leer la breve descripción en la parte superior de la página, pero sospecho que ese podría ser el camino a seguir para su escenario, de acuerdo con los principios Keep It Simple Silly.