2011-10-06 17 views
21

Estoy pensando en instalar mi caja de herramientas JS. Por algunas razones de producto, dojo estará allí. Ahora me pregunto si la adición de backbone.js tiene sentido. Do Dojo (que hace algunas otras cosas, estoy enterado de eso) y backbone.js se superponen o se complementan? ¿Cuáles serían las diferencias conceptuales en las partes superpuestas? ¿Hay ejemplos que utilicen ambos juntos? (Sé que es una pregunta bastante amplia y podría mostrar mi segundo nivel de ignorancia)Comparando backbone.js y Dojo

Respuesta

30

Dojo tiene un alcance mucho más amplio que Backbone.js. Si ya eres hábil con Dojo, entonces la única razón por la que querrías considerar Backbone.js en tu caja de herramientas es porque es liviana. Puede que le guste o no la diferencia API, es puramente una cuestión de elección. Si ya está utilizando Dojo en un proyecto, realmente no tiene sentido usar Backbone.js en el mismo proyecto porque Dojo tiene todo lo que necesita para construir una arquitectura MVC, aunque a nivel de la superficie puede que no sea tan obvio. Los almacenes de datos Dojo son potentes y los widgets Dijit están diseñados para ser utilizados con las áreas de almacenamiento de datos Dojo. El uso de modelos Backbone para proporcionar backend de datos para widgets Dijit sería muy engorroso. Eso es realmente innecesario porque en Dojo, la capa de datos y la capa de presentación están muy bien desacopladas y funcionan de manera excelente desde el primer momento. Sin embargo, si solo requiere una estructura MVC liviana para su aplicación, Backbone.js podría proporcionarle una alternativa más ligera que usar Dojo. Pero nuevamente, dependiendo de su aplicación y sus requisitos, uno puede ser más apropiado que otros ...

13

Tengo experiencia previa en Backbonejs, pero estoy a punto de trabajar en un proyecto que depende de Dojo y estoy empezando a elegirlo. Sin embargo, comentaré aquí lo que he observado hasta ahora aunque sea poco.

Estamos buscando tener un Modern Web App estilo de arquitectura (piense en twitter, quora, gmail), este tipo de arquitectura puede ser fácilmente proporcionada por algo como Backbonejs. Los conceptos con los que te empodera, aunque sean básicos, son el punto en lo que necesitas.

Para ser honesto, no creo que Dojo realmente ofrezca todo lo que Backbonejs le ofrece, tome este ejemplo: enrutadores y vistas, y los métodos útiles que proporcionan para declarar eventos fácil y rápidamente, activar métodos en cambios en la URL, etc.

Por parte de Dojo, reconozco que las tiendas están ahí, y que puede conectarlas a widgets, pero eso no es lo mismo que tener los modelos abstractos & Colecciones que proporciona Backbonejs. En el tutorial de MVC en el sitio de Dojo, equiparan una tienda con un modelo; eso sería una Colección en Backbonejs, también tienes un Modelo (esto sería solo un elemento de la tienda, y puedes escuchar & disparar eventos desde &).

Parece que las abstracciones de Backbonejs son de grano más fino.

Por lo tanto, creo que es posible utilizar ambos de forma complementaria. Solo comencé con este enfoque, veré cómo va en un par de días.

(Rumor: He oído en alguna parte que Dojo está haciendo algunos progresos en el área MVC para estar a la par con lo que ofrece backbone.js ...)

+1

favor comparta la experiencia que a medida que aprende mediante la actualización de esta respuesta –

+4

Dojo 1.7 estaba acaba de lanzar ayer, y ahora incluyen un [enrutador!] (https://github.com/csnover/dojo-boilerplate/blob/amd1.7/src/js/dbp/Router.js) He estado jugando con la creación de widgets y están muy bien diseñados, tienen buenas instalaciones para la comunicación entre componentes (eventos, pub/sub), buena separación de las preocupaciones también. – zenw0lf

+3

Y con Dojo 1.7 usted puede tener la delegación del evento, el estilo de las vistas backbonejs: [dojo/on] (http://livedocs.dojotoolkit.org/dojo/on) – zenw0lf