22-11-2006 Luis Artola
El patrón MVC (Model View Controller), que originariamente nació para aplicaciones de escritorio, se ha convertido en un estandar de facto dentro del desarrollo web. AJAX (Asyncronous Javascript and XML), la conjunción de tecnologías que permite actualizar el contenido de una web sin recargar el navegador, está siendo también ampliamente adoptada.
Los frameworks MVC habituales, para casi cualquier lenguaje, no están preparados para soportar AJAX. En la mayoría de los casos supone una gran chapuza. Cuando me enfrento a éste problema, suelo aplicar mis propias soluciones que nunca me ofrecen grandes garantías.
Buscando, buscando, he encontrado éste artículo de phpied.com. La solución que propone es interesante, pero como él mismo dice es una mera prueba de concepto.
¿hay alguien ahí que diseñe MVC y lo integre con AJAX de forma elegante y confiable? Me interesan mucho vuestras experiencias.
1. Raul | noviembre 22nd, 2006 at 11:10 pm
Esta mal que yo responda , pero me parece que el apunte puede ser interesante, tengo que comentar que en el mundo Java se ha liberado ICEFaces que son una serie de componentes Ajax para JSF. No he tenido tiempo para probarlo pero está entre mis futuros post.
2. ImZyos | noviembre 24th, 2006 at 4:10 am
Yo trabajo en un MVC con php4 y ajax
3. Luis Artola | noviembre 24th, 2006 at 9:18 am
Hola ImZyos, ¿puedes contarnos algo más de cómo integras MVC y AJAX?
4. lisandro | diciembre 2nd, 2006 at 11:44 pm
No soy un experto pero el framework Kumbia trabaja con el modelo MVC e incorpora a Prototype + Script.aculo.us
5. Luis Artola | diciembre 4th, 2006 at 7:08 pm
Interesante. Me lanzo a mirarlo. Un saludo!
6. ImZyos! | diciembre 12th, 2006 at 12:02 am
Basicamente, ajax lo uso para cargar las vistas, el modelo relamente no es mucho problema, y el controlador es un solo archivo con parseador que identifica que debe de ejecutar
7. Luis Artola | diciembre 13th, 2006 at 7:29 pm
Creo entenderte qe separas totalmente el MVC de la carga de páginas normal y el MVC del ajax…. es así?
es una idea interesante. La sensación que me da es de que desvincula mucho la relación entre una vista y sus respuestas AJAX… código demasiado desperdigado … qué te parece?
8. imzyos | diciembre 22nd, 2006 at 5:10 pm
Sí quiza, un poco, basicamente intento que trabaje asi
poner un input hidden, con un value de controlador/metodo
y un paser se encarga de cargar lo necesario para ejecutar el metodo y regresar al navegador lo necesario, basicamente solo hay un vista,
9. txema | enero 19th, 2007 at 1:52 pm
Tambien estoy intentando desarrollar una cosa asi. Yo uso varias librerias, aunque algunas sobraran en el futuro.
En lo que llamo el “Proyecto NIDO”, cargo un escritorio vacio y la libreria XAJAX empieza un proceso de arranque por pasos que va descargando librerias al cliente, como Dojo por ejemplo.
Una vez cargado todo el javascript, todos los eventos pueden provocar una llamada por “xajax_nido_flujo” que devolvera las modificaciones al DOM del cliente.
No voy a extenderme contando lo que hace el programa en si, solo quiero comentar lo que estoy usando.
Todo lo que uso es php5, adodb, jpgraph, xajax, prototype window class, y ahora le estoy metiendo dojo.
Cuando controle bien dojo podre quitar la prototype window class, pero es que ahora dojo me esta dando problemas al crear nuevas ventanas por ajax (al insertar asincronamente una nueva ventana en la barra de tareas, las que estaban mueren, si alguen sabe porque…).
Dojo.io (el modulo ajax) no se si me valdra, estoy encantado con xajax, es una virgueria y sencillisimo de usar.
El nido sera código libre si llega a estar limpito y funcionando.
Si alguien quiere ayudarme, encantado.
10. harold | abril 17th, 2007 at 8:01 am
La sorpresa que me di al leer este post. Yo anteriormente estaba programando en ASP.NET y me agradaba la forma en como estaba dividido la presentación (.aspx) , Controller(.aspx.cs) y bueno su Model que era un .cs.
Aproximadamente hace un mes, me pidieron que realizara una pequeña Web con php. Desemplove mis libros y mis trabajos anteriores, adicionalmente descubrí la libreria JQuery para el manejo de ajax y me puse a desarrollar la web de la siguiente forma.
include/ : contiene la logica del negocio(Model) y otras funciones
styles/: Css (View)
lib_js:/ js para el comportamiento de las web y para las peticiones al servidor (Controller)
Por ejemplo si tuviera una pagina que sirve para la administracion de la Web con varias funciones como crear usuarios llamada admin.php (View). este archivo tendria un javascript lib_ls/admin.js para su comportamiento(Controller). En el lado del servidor tengo un script _admin.php que captura las peticiones y retornana normalmente data-xml que luego en el lado del cliente es controlado. Obviamente _admin.php hace referencia a algun scritp de include/ que tiene la logica del negocio (Model).
Como resultado mi proyecto esta bien modularizado y sus Views pueden modificarse facilmente y no modifica casi nada las otras 2 partes.
Me siento contento por saber que otras personas tambien trabajan de la misma manera. ps confirma que mi visión no era descabellada(En un primer momento lo pensé).
Saludos a todos.
11. Jaime | septiembre 3rd, 2007 at 8:50 am
aqui programando con patron MVC , usando Xajax y POO con php 5.
Nada complejo… aunque ahora metiendole mas patrones de diseño para hacerlo mas formal
Saludos desde peru
Jaime M. Tan Nozawa
12. RetroFOX | julio 5th, 2008 at 12:16 am
Bueno … yo estoy ahora en algo parecedio. HAce mucho que postearon estos comentarios, pero bueno … la verdad que no es tan sencillo.
Básicamente quiero integrar un buen diseño con AJAX para symfony. En fin … si alguien le interesa dejo mi mail ![]()
Saludos.
13. Boris Marcelo | julio 17th, 2008 at 5:28 pm
Hola me parece interesante este tema acerca de ajax con el MVC, bueno pero la consulta que tengo es donde puedo encontrar mas material o ejemplos de aplicaciones que usen AJAX con el MVC, bueno de ante mano le agradezco, y espero sugerencias de libros de que puedan ser interesantes para leer acerca de dicho modelo MVC y por que no articulos o tutoriasles de AJAX.
Saludos de la ciudad de La Paz Republica de Bolivia
bye.
14. Angel | agosto 17th, 2008 at 1:32 pm
La relacion em MVC entre el modelo y la vista es la misma que existe entre el sujeto y el observador en el patron observer. En esta relacion de dependencia el observador no conoce explicitamente a los sujetos a los que observa. A su vez el modelo no conoce a sus vistas, simplemente envia notificaciones a las vistas suscritas a el. En la mayoria de aplicaciones AJAX que dicen implmentar el patron MVC no lo hacen correctamente, es estas aplicaciones la vista conoce la existencia del modelo por que se envia una peticion al servidor cuando tendria que ser este (COMET) quien enviase las notificaciones a sus vistas.
15. Varito | marzo 1st, 2009 at 11:47 pm
Estoy trabajando en incorporar un Controlador mas complejo que trabaje con la lib xajax y modularizacion basado en el ultimo modelo MVC, ya que la solicitud al servidor es inevitable.
16. Oscar Rafael | agosto 25th, 2009 at 2:55 pm
Hola estan interesantes los articulos
yo estoy trabajando en algo similar
lo que quisiera que alguien me ayude estoy tratando de hacer el MVC con AJAX pero tambien utilizar JAVA en el lado del Servidor.
Saludos desde Loja-Ecuador
17. Sergio | mayo 19th, 2010 at 2:30 pm
Miren esta aplicación informatica, ellos utilizan MVC con ajax (prototype):
http://www.skyneterp.com/erp_demo
Login: demo@hotmail.com
Password: demo
Es interezante lo que se puede lograr combinando PHP, MYSQL, AJAX.