Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
patrones MVC y MVVM en contexto web
Autor Mensaje
cuchodelosdecadentes Sin conexión
Campeon del cubo Rubik
soooomos los piratas ...
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 195
Agradecimientos dados: 88
Agradecimientos: 6 en 6 posts
Registro en: Dec 2011
Mensaje: #1
patrones MVC y MVVM en contexto web Apuntes y Guias Diseño de Sistemas
hola a todos.

estoy dudando cuales serian las limitaciones de esos dos patrones para el caso web.

para el caso desktop (tomado como una aplicacion no distribuida), en mvc tenemos que el controller actualiza el modelo, la vista conoce e interactua con el controller, y la vista a su vez es un observer del modelo ( el modelo notifica a la vista de cualquier cambio que recibe a traves de bindings por lo general )

en mvvm para el caso desktop es practicamente lo mismo, pero el binding es entre la vista y el "viewModel", la vista no sabe nada del modelo del dominio.

pero como se interpreta mvc para el caso web (o sea html sobre http) ?
es imposible que sea mvc "puro" justamente porque la vista no puede ser un observer del modelo por el funcionamiento de http.
dicho de otra forma, como se interpreta mvc para el caso web ? quienes serian los controllers por ejemplo ?

en el caso de mvvm para web es lo mismo: no puede haber binding entre "ModelView" y "View" por lo que decia de http.
entonces ?

cualquier sugerencia/aporte me sirve

saludos!

pd: aclaro que no cursé con dodino, por eso pregunto.
10-02-2016 17:10
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] cuchodelosdecadentes recibio 1 Gracias por este post
CarooLina (11-02-2016)
gonnza Sin conexión
User Verde

*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 17.356
Agradecimientos dados: 900
Agradecimientos: 887 en 356 posts
Registro en: Mar 2010
BlogSpot Google+ YouTube
Mensaje: #2
RE: patrones MVC y MVVM en contexto web
segun como yo lo entiendo, la definicion purista de mvc no cabe realmente en la web, como vos decis


sin embargo, la vida (?) hizo que todos esos terminos se aplicaran en productos como asp.net mvc y otros largos etc

o esa fue la idea que me dejaron los muchachos de arquitectura de proyectos it

en todo caso si podes tener mvc/mvvm todo del lado del browser, si tenes algun framework tipo angular o de ese estilo: vos cambias el modelo en algun contexto y se te actualizan las vistas y viceversa

[Imagen: v34BEFt.gif]
(Este mensaje fue modificado por última vez en: 10-02-2016 17:30 por gonnza.)
10-02-2016 17:30
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] gonnza recibio 2 Gracias por este post
cuchodelosdecadentes (10-02-2016), CarooLina (11-02-2016)
dezine18 Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 52
Agradecimientos dados: 1
Agradecimientos: 44 en 21 posts
Registro en: Oct 2008
Mensaje: #3
RE: patrones MVC y MVVM en contexto web
Sobre MVVM como decís interactua con tu ViewModel, pero calculo que tu ViewModel puede ser un objeto nuevo para comunicar a la vista con el Modelo, o también podría ser el mismo modelo, depende si te alcanza o no el Model para ser utilizado por la vista (cuando no te da la nafta con un Model usaría un objeto nuevo para agregar lo que falta de comportamiento y usaría ese como ViewModel).

Como dice Gonza, a menos que utilices los patrones esos del lado del cliente, con Frameworks como Angular. Y que no utilices otras tecnologías como websockets, de cajón no se puede implementar el MVC clásico. En la visión tradicional de MVC web, tu vista llamaría al servidor por medio de HTTP pasandole la información relevante, para que actualice su modelo y como respuesta obtendría una nueva Vista. El controller seguiria interactuando con las vistas y modelos, pero el estimulo en este caso siempre lo iniciaria la vista.. Es en principio lo que se me ocurre.

Igual, como aclaras que no cursaste con Dodino, hay que ver que espera tu docente como respuesta.
10-02-2016 20:14
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] dezine18 recibio 2 Gracias por este post
cuchodelosdecadentes (10-02-2016), CarooLina (11-02-2016)
CarooLina Sin conexión
Colaborador

********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 3.743
Agradecimientos dados: 1.496
Agradecimientos: 1.683 en 547 posts
Registro en: Sep 2010
Mensaje: #4
RE: patrones MVC y MVVM en contexto web
leiste la biblio? o no esta muy explicado ahi?

love
11-02-2016 18:32
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
cuchodelosdecadentes Sin conexión
Campeon del cubo Rubik
soooomos los piratas ...
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 195
Agradecimientos dados: 88
Agradecimientos: 6 en 6 posts
Registro en: Dec 2011
Mensaje: #5
RE: patrones MVC y MVVM en contexto web
CarooLina a ese nivel de explicacion, es decir, de detallar en donde está cada componente y que responsabilidad tiene cuando es web, te digo la verdad, no lo encontré. puedo haber leído mal pero no lo encontré.
como tampoco puedo encontrar la parte donde se explica con que criterio elegir entre strategy y decorator (por dar un ejemplo) cuando hay que tener en cuenta la UI. o sea, vi que en un final preguntaban en que afecta la ui, o que es mejor desde el punto de vista de la ui, teniendo en cuenta identidad, delegacion y demas.
tampoco pude encontrar lo que dijo dezine18 en el otro tema (el del final del 14/2/15) en referencia a que depende de si la app es desktop o web. se que si no es desktop, va a tener las limitaciones por las que abrí este tema. pero más que eso no se me ocurre. además en web tenés las variaciones REST y component(wicket), por decir algunas, y creo que también eso influría un poco.

edit:

otra cosa que no pude encontrar es: como hacer un modelo 100% independiente de la ui.
si usas mvc puro, tenes que hacer el modelo observable (sea declarativamente o con codigo a mano).
pero si usas REST por ejemplo, no lo necesitas.
(Este mensaje fue modificado por última vez en: 11-02-2016 21:51 por cuchodelosdecadentes.)
11-02-2016 21:33
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] cuchodelosdecadentes recibio 1 Gracias por este post
ivansuperi (17-02-2016)
CarooLina Sin conexión
Colaborador

********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 3.743
Agradecimientos dados: 1.496
Agradecimientos: 1.683 en 547 posts
Registro en: Sep 2010
Mensaje: #6
RE: patrones MVC y MVVM en contexto web
okey! gracias. Mañana lo voy a releer

love
11-02-2016 21:55
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
study Sin conexión
Militante
Transformando o2 en co2 24x07
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 79
Agradecimientos dados: 22
Agradecimientos: 10 en 9 posts
Registro en: Jul 2011
Mensaje: #7
RE: patrones MVC y MVVM en contexto web
Ejemplo super simplificado de como se maneja en PHP. MVC web cliente-servidor, framework Laravel. En este caso sin usar ajax ni nada que refresque la vista de manera asincrónica. Para refrescar hay que hacer una nueva petición. Supongamos que querés ver la ficha de un cliente:

url: [GET]clientes/{id_cliente} ej: tusitio.com/clientes/4


//La clase que representa a la entidad cliente en tu modelo y te permite su acceso y persistencia y contiene parte de la lógica de //negocio
class Cliente
{
//Cosas varias que querés poder hacer con tu tabla de clientes
}

//El controller abaraja la petición (un archivo de rutas determina que método de que controller se encarga)
class ControladorClientes {

//Método que se encarga de la petición
public function verCliente($idCliente)
{
//Obtengo el cliente
$unCliente = Cliente::find($idCliente);

//Valido que exista como para hacer algo
if(is_null($unCliente))
return View::make('pantala_error')->with('mensaje', 'El cliente especificado no existe');

//Datos que le voy a pasar a la vista, si no quiero pasarle directamente el objeto $unCliente
$datosCliente = array('nombre' => $unCliente->nombre, 'apellido' -> $unCliente->apellido);

//Si todo anduvo bien le mando a la vista que contiene el form, los datos que requiere
return View::make('ficha_ciente')->with('cliente', $datosCliente);
}

}


//La vista con el diseño (ficha_cliente.blade.php)
...
<h1>Datos del cliente {{$cliente['nombre']}} {{$cliente['apellido']}}</h1>
...


//Finalmente llega al browser
...
<h1>Datos del cliente Cosme Fulanito</h1>
...

[Imagen: Mafalda_Felipe_Ingeniero.jpg]
(Este mensaje fue modificado por última vez en: 15-02-2016 18:47 por study.)
15-02-2016 18:38
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] study recibio 1 Gracias por este post
cuchodelosdecadentes (15-02-2016)
rodrigo Sin conexión
Profesor del Modulo A
Sin estado :(
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 224
Agradecimientos dados: 57
Agradecimientos: 27 en 17 posts
Registro en: Jul 2008
Mensaje: #8
RE: patrones MVC y MVVM en contexto web
Si somos "puristas" eso no es MVC ya que como comentaron mas arriba no existe MVC en tecnologias web del lado del servidor (de hecho creo que hoy en dia ningun framework PHP se vende a si mismo como "MVC", a diferencia de lo que sucedia hace unos años atras)

Ya que estamos con PHP un par de links copados sobre el tema

http://blog.ircmaxell.com/2014/11/a-begi...r-web.html
http://blog.ircmaxell.com/2014/11/altern...o-mvc.html
15-02-2016 19:12
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] rodrigo recibio 1 Gracias por este post
cuchodelosdecadentes (15-02-2016)
study Sin conexión
Militante
Transformando o2 en co2 24x07
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 79
Agradecimientos dados: 22
Agradecimientos: 10 en 9 posts
Registro en: Jul 2011
Mensaje: #9
RE: patrones MVC y MVVM en contexto web
En esos mismos links que pasaste se habla de MVC como patron (que no estoy seguro de si no podría implementarse mediante web sockets) y como concepto. Laravel, Symphony, etc apunta mas a los segundo (cada uno como le pareció). En Java, Spark hace mas o menos lo mismo y así. El termino técnico es MVC a los martillazos =P

[Imagen: Mafalda_Felipe_Ingeniero.jpg]
15-02-2016 19:31
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rodrigo Sin conexión
Profesor del Modulo A
Sin estado :(
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 224
Agradecimientos dados: 57
Agradecimientos: 27 en 17 posts
Registro en: Jul 2008
Mensaje: #10
RE: patrones MVC y MVVM en contexto web
me referia a que el ejemplo es 100% PHP y ahi es donde MVC no existe =) ya con websockets, java, etc., estamos en otro tema =P
15-02-2016 19:44
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
cuchodelosdecadentes Sin conexión
Campeon del cubo Rubik
soooomos los piratas ...
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 195
Agradecimientos dados: 88
Agradecimientos: 6 en 6 posts
Registro en: Dec 2011
Mensaje: #11
RE: patrones MVC y MVVM en contexto web
como el debate está, aprovecho para hacer una pregunta:

hay alguna forma de hacer el modelo 100% independiente de "todo lo demas" ? o sea, plantear el modelo y despues usarlo en arena, swing, jsp, rest sin ningun tipo de cambios.

si, por ejemplo, empezas programando un mvc con swing (o arena) tenes la clases del modelo usando @Observable ó, peor todavia, con el binding hecho a mano. Entonces si pasas a rest (por ejemplo), tenés que ir y sacar todas esas anotaciones y/o codigo en las clases del dominio que ya no te hacen falta.
entiendo que con anotaciones es una cuestion de "search & replace", pero me hace ruido que no se pueda tener un modelo 100% independiente.

espero que se entienda lo que estoy preguntando.
15-02-2016 23:23
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)