Foros del Web » Programando para Internet » Javascript » Frameworks JS »

AJAX y MVC ...

Estas en el tema de AJAX y MVC ... en el foro de Frameworks JS en Foros del Web. Hola a todos, Estoy desarrollando una aplicacion Web que utiliza AJAX para toda la comunicación que se hace entre cliente y servidor. Me gustaría estructurar ...
  #1 (permalink)  
Antiguo 16/10/2007, 11:41
 
Fecha de Ingreso: febrero-2007
Mensajes: 14
Antigüedad: 17 años, 8 meses
Puntos: 0
AJAX y MVC ...

Hola a todos,

Estoy desarrollando una aplicacion Web que utiliza AJAX para toda la comunicación que se hace entre cliente y servidor.

Me gustaría estructurar la aplicación siguiendo MVC pero no logro dar con la manera adecuada. No encuentro muchos ejemplos por ahi que hablen de una implementación de aplicación AJAX basada en MVC. Sin embargo si hay bastantes para aplicaciones Web estandares, ademas en muchos casos no te tienes que preocupar porque hay muchos frameworks como struts que te lo dan hecho.

Por favor dadme algun ejemplo si lo conoceis o exponerme cual sería la organización más logica y lo debatimos.

P. D. Una pregunta concreta sobre MVC: Es necesario obligatoriamente que el controlador notifique a la vista y esta acceda a los datos del modelo. En caso de una consulta no puede el controlador pasar a la vista el objeto consultado. Una solucion intermedia seria que el controlador guardara el resultado en un objeto conocido por la vista y la notificara. Comentadme que opcion veis mejor??
  #2 (permalink)  
Antiguo 17/10/2007, 22:08
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 6 meses
Puntos: 35
Re: AJAX y MVC ...

loading..............


Bueno yo trabajo con el MVC de Zend Framework y puse mi framework ajax dentro de la VISTA y ya dentro del framework ajax es muy dificil implementar mvc... pero si otros patrones como observador, factory, ya que tu framework ajax actúa solo de despachante y consultor.... en TEORIA pero al final en la práctica solo actúa como despachante de tus controlares.

En cuanto a tu pregunta, NO es obligatorio ya que es suficiente con que en la VISTA dejes un objeto que actuará de mediador despachando los procesos indicados a cada evento AJAX el cual necesitará obligatoriamente un controlador para acceder a tu modelo y este despache a la vista el resultado.

Hacer mvc junto con algun patron por parte de Ajax es un paradigma muuuy complicado :S ahora bien... ejemplos. mmmm no los tengo pero el framework PRADO o CAKE implementan su propio framework ajax dentro de su estructura MVC, sería bueno que lo veas.

www.cakephp.org/
www.pradosoft.com/


connection closed.
__________________

Maborak Technologies
  #3 (permalink)  
Antiguo 19/10/2007, 05:05
 
Fecha de Ingreso: febrero-2007
Mensajes: 14
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: AJAX y MVC ...

Muchas gracias MaBoRak por los datos aportados,

Le he echado un vistazo al framework de cake pues en el de prado no viene mucho acerca MVC, al parecer no te restringen a utilizar ese patron.

Echando un vistazo a como gestiona el patron MVC el framework cake me surge la misma duda que tengo yo acerca del patron y esta es la que me impide avanzar con mi sistema AJAX. Voy a replantear la pregunta a ver si me podeis echar una mano:

- En toda aplicación Web habra una parte que atienda las peticiones get y post que nos vengan y que devolvera un resultado. Esta parte formaria parte del controlador. Para atender las peticiones se llama a otras clases de tipo controlador y estas llamaran a alguna clase que pertenezca al modelo si se necesita hacer alguna consulta o modificacion en la base de datos. Hasta ese momento todo cuadra perfectamente.
Pero una vez obtenidos los resultados estos tendran que ser retornados al cliente para ello el mismo controlador que atendio el get debera coger los resultados (encapsulados en un array o un objeto) y pasarselos a una clase Vista que mediante una template y esos datos generará los resultados que veremos en el cliente.

Mi pregunta es:¿Que el controlador coja los resultados del modelo y se los pase a la vista no violaria en cierta manera el patron MVC, no deberia el controlador notificar a la vista y que esta cogiera los datos del modelo? ¿Asimismo al pasar los datos obtenidos a una clase Vista no tendria el controlador conocimiento directo sobre la Vista, no es esto tb invalido de acuerdo al patron MVC?

Esta es mi duda, que conste que esa manera me parece buena y viable para organizar la aplicacion (seguramente sea la que utilice) pero dudo que cumpla totalmente el MVC por lo tanto no podria decir que mi aplicacion sigue el patron MVC.
  #4 (permalink)  
Antiguo 23/10/2007, 04:42
 
Fecha de Ingreso: febrero-2007
Mensajes: 14
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: AJAX y MVC ...

Lo solucione, os comento mi solución que es valida para Java (servlets y JSP) en otros lenguages no se como se haría:

En mi caso el controlador será un servlet que atenderá las peticiones AJAX y llamará a las correspondientes clases del modelo que haran consultas en la BBDD.

Una vez realizadas esas consultas y devuelto el resultado en forma de objetos el controlador deja estos en el ambito (scope) de la petición y notifica a la vista para que los recoga y los muestre. En Java esto se haría de la siguiente forma:

- Primero dejariamos los resultados en el ambito de la petición con:
request.setAttribute("nombre del atributo", Objeto con los resultados);

- Luego notificariamos a la vista que en mi caso seria un servlet aunque tb puede ser un JSP:

RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/nombredelservlet");
dispatcher.forward(request, response); //Con esta función se redirige la petición al servlet vista que cogerá los resultados con request.getAttribute("nombre de atributo"); y los mostrará adecuadamene.

En mi caso el servlet que implemente la vista enviará objetos JSON que serán recogidos por las callback de ajax o tal vez código XHTML (aunque no se si esto sería válido).
De esta forma tan solo habría que cambiar el servlet vista para cambiar la presentacion, incluso lo podriamos sustituir por JSP si la aplicación no va a utilizar AJAX.
Creo que este enfoque si que es válido segun MVC porque es el que se utiliza en Java (esto se automatiza de alguna forma dentro de la framework "Struts").

1 saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:35.