11

Hay muchos frameworks Javascript MVC disponibles actualmente (Backbone.js, Cappuccino, Ember.js, GWT, etc.), cada uno con sus propios positivos y negativos. Mis preguntas son;JavaScript MVC frameworks

  1. ¿Cuáles son los beneficios reales que MVC proporciona sobre el Javascript normal?
  2. ¿Todos los marcos se basan principalmente en jQuery?
  3. ¿Cómo se puede decidir qué marco utilizar? ¿Cuáles son las preguntas que uno debe hacer antes de identificar un marco?
  4. Una pregunta específica que tengo con respecto a MVC es que hay algunos marcos que actualizan la vista tan pronto como cambian los modelos/datos ... ¿Eso es posible a través de AJAX?

Por favor, hágamelo saber en términos prácticos muy básicas ..

+1

posible duplicado de [¿Qué marco de JavaScript (jQuery vs Dojo vs ...)?] (Http://stackoverflow.com/questions/394601/which-javascript-framework-jquery-vs-dojo-vs) – dynamic

+4

Es no es un duplicado de esa pregunta. Testndtv está preguntando sobre los frameworks de mvc, te refieres a una pregunta sobre frameworks visuales manipulados por dom. –

+0

@laurens peeters: Absolutamente correcto ... Me refiero a los marcos de JavaScript MVC ESPECÍFICAMENTE y no a los jQuery normales, Dojo, Mojo, etc. – testndtv

Respuesta

3
  1. Beneficios:

    • código reutilizable
    • La separación de la lógica de vista de la lógica de negocio
    • más fácil de mantener/document
  2. No. Por ejemplo, los orígenes de ExtJS provienen de GWT (si no recuerdo mal)

  3. nos fijamos en la complejidad y la magnitud de lo que estamos tratando de hacer y sopesar los pros y los contras de los marcos curva de aprendizaje/gasto (tanto de tiempo como monetario) contra las características que necesita. Por ejemplo, si necesita poderosas cuadrículas de datos y widgets avanzados, extJS puede ser el camino a seguir. Sin embargo, si necesita algo más ligero, Django puede ser una mejor opción (solo un ejemplo)
  4. Sí, todo eso se hace a través de AJAX. En ExtJS 4, cuando agrega un registro a una tienda conectada a una grilla, la grilla se actualiza automáticamente.

Espero que esto ayude.

+0

ExtJS es de yui – SriN

4

MVC ofrece ventajas arquitectónicas sobre JavaScript estándar - le ayuda a escribir código mejor organizado y, por lo tanto, más fácil de mantener. Es un patrón que ha sido utilizado y probado exhaustivamente en múltiples idiomas y generaciones de programadores. Lo más probable es que, si desea hacer algo, alguien más ya lo haya hecho, por lo que usar un patrón comprobado lo ayuda a aprovechar los beneficios del patrón, sin cometer los errores que hicieron los programadores anteriores, ahorrándole tiempo y esfuerzo

Backbone no se basa en jQuery, pero es compatible con jQuery y le ofrece algunas ventajas si lo usa, por ejemplo en Vistas le da una referencia en caché al contenedor de vistas en $ el. Pero si usa Zepto en lugar de jQuery, $ el está incluido en la funcionalidad Zepto, no en jQuery.

YUI tiene componentes de MVC y completamente no se basa en jQuery;)

Uno decide qué marco a utilizar en función de las necesidades del proyecto actual, la documentación para el marco, la comunidad se basa en, etc. Lo mismo que elegir qué biblioteca de JS usar, o qué marco de backend usar, etc.Lo que es correcto para una persona/proyecto puede no serlo para otra persona/proyecto

4
  • ¿Cuáles son los beneficios reales que el marco MVC proporciona más del Javascript normal?
  • Los marcos son útiles cuando se necesita para organizar el código y las preocupaciones por separado en su aplicación
  • Están todos los marcos en su mayoría basados ​​en jQuery?
  • marcos MVC no tienen nada que ver con jQuery, jQuery es principalmente aquí para hacer la manipulación DOM, animación, pero pueden tener características que se pueden encontrar en jQuery como un sistema de eventos, Ajax, etc ... ¿Cómo funciona ¿uno decide a qué marco ir? ¿Cuáles son las preguntas que uno debe hacer antes de identificar un marco?
  • necesita probar ellos, escribir una aplicación sin bastidor, a continuación, tratar de refactorizar el código con un marco y ver si es fácil trabajar con él o no.
  • Una pregunta específica que tengo con respecto a MVC es que hay algunos marcos que actualizan la vista tan pronto como cambian los modelos/datos ... ¿Eso es posible a través de AJAX?

  • todos hacen que de alguna manera, ese es el propósito de la MVC. cuando el modelo cambia, la vista se notifica y se renueva a sí misma ... pero lo hacen de diferentes maneras.

Ahora, en mi opinión, con jQuery, uno debe realmente no necesita un marco MVC "externa", porque jQ ya se ha construido en un sistema de eventos, una gran cantidad de funciones de ayuda y JavaScript objetos son lo suficientemente dinámico como para adjuntar cualquier comportamiento sobre la marcha sin definir "clases" de objetos.

Mi punto es: usted puede hacer su propio MVC con jQuery, todas las herramientas ya están en la biblioteca.

SI necesita otras cosas, como un "enrutador", ayudantes de validación, scaffholding, etc ... entonces un framework MVC es el camino a seguir.

+1

No diría que todos reproducen las vistas automáticamente cuando el modelo cambios. Backbone le deja a usted la tarea de implementar la representación de vistas, incluida la reproducción de las siguientes modificaciones del modelo. Uno todavía requiere MVC (o algún otro patrón arquitectónico) cuando se usa jQuery. Se ha establecido que jQuery por sí sola no está diseñado para, ni útil en la creación de 'grandes', las aplicaciones JavaScript no triviales, consulte: http://blog.rebeccamurphey.com/on-jquery-large-applications – danwellman

+0

por supuesto, Depende de usted codificar el comportamiento de la vista cuando el modelo cambia, un marco de trabajo no es un material mágico donde simplemente tendría que poner el archivo .js en su html para que funcione. – mpm

+0

No estoy de acuerdo con Rebecca Murphey. Cuando uno puede enviar y escuchar eventos, es todo lo que necesita para crear su propio MVC. Después de todo, MVC puede ser solo una combinación del patrón de estrategia y el patrón del observador. ¿Por qué necesitarías algo especial para hacer cumplir estos patrones en javascript?solo crea objetos que tengan el comportamiento requerido. Ser capaz de desencadenar/suscbrizar eventos es todo lo que necesita para implementar el patrón de observador. Y no necesita nada especial para implementar el patrón de estratagema, solo 2 objetos. – mpm