¿Qué framework MVC prefieres para desarrollar?

No uso frameworks MVC.
15% (308 votos)
Struts 1
10% (198 votos)
Struts 2
12% (245 votos)
JSF
25% (498 votos)
Tapestry
3% (58 votos)
Spring MVC
23% (470 votos)
Grails
6% (127 votos)
Otro (mencionarlo en los comentarios)
6% (115 votos)
Total votes: 2019

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

Real men...

Debería decir "Los programadores de verdad no usan frameworks MVC" :)

Imagen de benek

LOL

Hubiera dejado a luxpes hacer la encuesta para que ponga un título más o menos espinoso jajaja.

Pues yo voté por JSF, es el framework MVC que más ocupo en estos tiempos, no conozco las características (ventajas/desventajas) de Tapestry, Struts2 ni Grails. JSF tiene sus detalles y algunos hasta poco creíbles, pero no se me hace un mal framework.

Struts 1 lo ocupé mucho tiempo, fue muy bueno hace algunos pero por obvias razones ya se ve rezagado en comparación con las nuevas opciones.

Imagen de domix

Chanchuyo

Tapestry tiene un voto de mas, sospechosismo¡¡

Imagen de benek

Que raro.

No entiendo como funcione internamente la encuesta de drupal, pero al salvar la encuesta borra a todos los que ya votaron pero conserva sus votos.

Edit**

Voy a tener que reiniciar la encuesta a ceros.

Imagen de omaru

Wicket

En otro pongo wicket

Imagen de 1a1iux

Otro..

CakePHP, Symfony, Mojavi,..

:P

Imagen de luxspes

Y que es exactamente un framework MVC?

Bueno, siempre puedo crear controversia preguntando: Y que es exactamente un framework MVC? por que por ejemplo JSF... puede usarlo "solito" o usarlo con Seam o con Spring WebFlow (o que el nuevo JSR 299 Weld). Diran que independientemente de lo que usemos JSF sigue siendo MVC... yo diria que JSF es mas bien nomas "V" y puedes ponerle diferentes "M" y "C" debajo. Por ejemplo, esta el caso de JSP, que es la "V" en Spring-MVC y en Struts... aunque tambien se puede utilizar otra "V" con ellos...

Luego también podríamos discutir sobre la M, por que bueno, en realidad la M va mas de la mano con el mecanismo de persistencia que uses para tu modelo que con el mecanismo con le que lo presentes, Spring te da Spring-JDBC y Spring-ORM como apoyo, Seam y Weld son amigos de JPA... los otros... pues quien sabe...
Y para rematar podria decir que unico framework deberas MVC con soporte completito y bien integrado para la M, la V y la C que he usado en la vida ha sido WebObjects... todos los demas son mas bien integradores de diferentes tecnologias M, V y C...

Espero haber sido suficientemente espinoso ;-).

Imagen de MachinesAreUs

¿MVC de verdad o algún modelo de programación roto y parchado?

Como Struts, JSF, etc....
¿Para qué seguir con ellos si ya sabemos como hacer SOFEA's ?

Imagen de MachinesAreUs

Si usan! pero mueven el controlador al navegador ;)

Con AJAX, Flex, etc.. Conozcan a SOFEA

Imagen de ezamudio

SOFEA

Suena interesante. Pero si entendí bien, hasta ahora es pura teoría, no hay un framework que lo implemente aún.

Re: Y que es exactamente un framework MVC?

Espero haber sido suficientemente espinoso ;-).

Mmmhh, leo tu post y leo las definiciones originales del inventor de MVC y... no le encuentro la relación. Sorry.

Saludos

Javier Castañón

¡El rey está desnudo!

Estimados colegas. Creo que Struts, Spring MVC y compañía son frameworks que implementan un patrón conocido como Front Controller.

El MVC se parece, pero creo que en general lo que manejan estos frameworks no es MVC, salvo tal vez los frameworks orientados a componentes.

Saludos

Javier Castañón

Imagen de jiturbide

Struts si implementa MVC

Hola

MVC es un patron de Arquitectura.
Cada componetne del patron puede ser implementado con 1 clase, varias clases u varios patrones.
Dentro de la parte de Control, Struts aplica los patrones de Diseño FrontController para interceptar las peticiones, Application Controller.para elegir el Action que debe anteder la peticion y View Dispatcher para elegir el elemento de la vista que va mostrar la respuesta.

Saludos

Por qué Struts no implementa MVC (más o menos)

Entonces Struts es una implementación chafisísima de MVC.

Para un mismo modelo, con MVC es posible mostrar diferentes vistas concurrentemente, por ejemplo cuando se muestran en diferentes ventanas diferentes representaciones del mismo modelo. Cuando se modifica el modelo, las vistas son actualizadas. ¿Cómo lo implementa Struts? R = No lo implementa.

En MVC, frecuentemente (si no es que siempre) se utiliza el patrón observador para actualizar las vistas cuando ocurren cambios en el modelo. ¿Struts implementa observador? R= No, no lo implementa.

En MVC pueden tenerse varías tríadas MVC interactuando entre sí. ¿Pueden tenerse varias tríadas interactuando entre sí en Struts? R= No, no se puede, sólo hay un controlador omnisciente.

Estas características se encuentran típicamente en frameworks para aplicaciones de escritorio: Microsoft Foundation Classes, Qt4, Swing. Quienquiera que haya hecho aplicaciones de escritorio no triviales con VB, extraña la elegancia de una abstracción MVC. Pero después de hacer aplicaciones de escritorio, los frameworks web supuestamente MVC son una versión descafeinada, deslactosada, sin grasas y limitada del verdadero MVC.

Con aplicaciones RIA (basadas o no en Ajax) es posible tener funcionalidad equivalente a un MVC real/completo. No hay necesidad de SOFEA, ya estaba definido.

Saludos

Javier Castañón

Imagen de jiturbide

Mmm de acuerdo en que no lo implementa completamente

De acuerdo en que no lo implementa completamente.

Y no puede hacerlo por que en ese punto no tiene un mecanismo propio para mantener una comunicacion permanente con los clientes que le permita propagar las actualizaciones del modelo. (No me imagino un servicio de Amazon que mantenga la conexion permanente con sus miles de visitantes)

Para poder proveer este mecanismo dependeria de los servidores JEE en los que se despliega, y para asegurarlo tendria que estar en la especificación de JEE.

Bajo esa condicion, ningun framework seria MVC si el server no mantiene algun mecanismo de comunicacion permanente con cada uno de los clientes.

No consideraria a struts como una solucion muy mala de MVC por que creo que el primer objetivo de struts fue solucionar las malas practicas y aprovechar la experiencia adquirida de muchos desarrolladores basadandose en el patron MVC.

Struts ahora es una opcion mas que hay que conocer para entender el por que del surgimiento de otros frameworks que cubren lo que struts no hace.

Saludos

Re: Mmm de acuerdo en que no lo implementa completamente

Y no puede hacerlo por que en ese punto no tiene un mecanismo propio para mantener una comunicacion permanente con los clientes que le permita propagar las actualizaciones del modelo. (No me imagino un servicio de Amazon que mantenga la conexion permanente con sus miles de visitantes)

De hecho el mecanismo existe. MVC establece el requerimiento una comunicación bidireccional entre los componentes de la tríada. Dicha comunicación puede conseguirse tanto con protocolos orientados a la conexión como con protocolos no orientados a la conexión como HTTP.

Tal comunicación bidireccional es posible con Ajax, y con ello la implementación de mecanismos push y pull.

Para poder proveer este mecanismo dependeria de los servidores JEE en los que se despliega, y para asegurarlo tendria que estar en la especificación de JEE.

Actualmente Glassfish, Jetty y Tomcat manejan cada uno su propia implementación de Comet. Con la aprobación de Servlet 3.0 creo que ya por fin se estableció la manera estándar para manejar este tipo de comunicaciones.

No consideraria a struts como una solucion muy mala de MVC

Descafeinado, deslactosado o bajo en calorías no significa malo. Significa incompleto. Pero si tu panza es intolerante a la lactosa (o la tecnología web te imponía restricciones) sería necio insistir en tomar leche entera :-)

A lo que aún no le encuentro valor es a la cosa esa de SOFEA.

Saludos

Javier Castañón

Apache Click

Recién encontré Apache Click. Sin tantas complicaciones. Lo usaré en un proyectito personal que tengo.

X'D

Jajaja...si viene un programador de C nos dirá: "Un verdadero lenguaje de programación soporta punteros."
Pues yo voté por Otro, y ese otro es "Play!". Francamente el menos engorroso que me he encontrado o más bien, el que se me ha hecho más simple y personalizable.

X'D

omaru...me suena a alguien de la UACH lol...y si pone wicket compa de seguro compa del kab...aunque, sería mucha coincidencia...Pero ¡vamos!, vaya que te gusta complicarte la vida, aunque igual debes ser alguien que sigue sanas prácticas de programación, de lo contrario wicket no es más que una carga.

Imagen de rodrigo salado anaya

C, *, &.

"Un verdadero lenguaje de programación soporta punteros."

Yo programo mucho en C (solo con ondas de POSIX :), y odio los punteros... y no solo eso odio de C, jajajaja, pero bueno... quien me entiende), de echo es lo que amo de los lenguajes nuevos... y me da un poco de pena pero no se ni usar un MVC... :(

Imagen de ezamudio

Java tiene punteros

Pero no tienen una notación especial. Cuando haces algo como  , x es un puntero a esa instancia de Object que acabas de crear. Para hacer la distinción, formalmente le llaman referencia, pero al fin y al cabo es lo mismo. En cambio   no es un puntero, es igual que en C.

Imagen de rodrigo salado anaya

A vamos..

Si, si, totalmente de acuerdo...

Stripes Framework

Estimados colegas, por si les interesa y para quienes tamos hartos de struts x.x + [combinaciones raras], aquí un tip ...

Saludos.

Imagen de fcodiaz

MVC no necesariamente requiere Framework

Saludos.. soy nuevo en la comunidad espero de vez en cuando estar aportando algo.. bueno en lo personal no me gustan los framework por que te encierran "en un esquema de trabajo" que no es el tuyo.. la verdad prefiero mi libertad.. aunque esto es mal visto por muchos "desarrolladores" por que luego luego dicen y es que el orden y bla bla bla.. un monton de cosas que si bien tiene razon no se neceesita un framework para tener un codigo entendible mantenible y ordenado esas son caracteristicas que un programador siempre deve de buscar aunque programe a "bajo" nivel que en algun post mire que cosidera utilizar directamente el XHR directamente como de "bajo nivel" jajaj x Dios!...

ahora que odas con MVC... para manejar MVC no necesariamente tienes que estar en un framework.. yo considero que uso MVC.. y no utilizo ningun framework de la lista ni ningun otro.. quisas seria el mio propio... ya que suelo costruir digamos skeletos que mediante herencia hago lo que quiera y yo necesite y no esperar a que sierto framework lo soporte o no.. esetar viendo si x y o z.. soportan lo que busco.. carajo!.. soy programador... ! puedo hacer lo que me plasca con un leguaje de programacion y quien no lo pueda hacer no se digna de la etiqueta desarrollador o programador!.

MVC es un conceprto o paradigma.. es como se te aconseja ordenar tu codigo.. M tener un modelo de una entidad abstracta en tu sistema, V tener una o varias formas de vistas, C un cotrolador que maneja que vista que metodo de Modelo ejecutara, que hara con la respuesta mandar los mensajes a tal o cual vista.. eso es lo que es MVC, no un framework.. puedes mandejar MVC en cualquier leguaje de programacion y no necesariamente utilizar un framework.. los framework creo que son para equipos de trabajo y para personas que ya estan en lo laboral.. por hay vi una analogia en cuanto a musica/programacion.. si quieres ser un programador de respeto tiene que olvidarte momentaneamente de los framework lo frameworks son pa gente grande!.. cuando digas yo puedo enmarcar como se manejan las clases en un sistema yo puedo hacer lo que me plazca con un leguaje entoces si.. toma un framework para acelerar y empezar a hacer software industrial...

en cuanto al MVC en aplicaciones web.. que si la vista va hasta el explorador que el controlador.. yo suelo dividir los dos tipos de tecnologías envueltos en la web (lado servidor, lado cliente) creo que en los dos lados es muy factible tener MVC.. actualmente estoy tratando de implementar MVC en JS y creo que con mucho éxito :) y que uso de framework ninguno mas que la orientación a objetos que nos permite JS, la unica librería que estoy utilizando es jQuery y eso x q fue requisito de mi jefe si no de pormi me iba a JS puro y un monton de libreria que tengo y voy haciendo dia con dia. ademas aun usando jQuery no me salvo de crear dos que tres librerías. también creo que es un error querer digamos "fusionar" los dos habientes el servidor con el cliente.. que por lo que veo se viene haciendo tendecia, usar Frameworks que te permiten desde servidor manipular cliente.. algo que para mi ver no esta bien por que fusionas dos capas q por ende van separadas.

Imagen de ale_imp

Que opinan

Con respecto al comentario de fcodiaz. Anteriormente hize un articulo aplicando el MVC en un pequeño ejemplo, me gustaria que me dieran su opinion haber si estoy aplicando bien el MVC en mi ejemplo bueno me gustaria que me dieran su opinión ya que recien comienzo y me gustaria saber si voy en el camino correcto este es el link .

Imagen de Ariagna

Zk

zk construye aplicaciones usando el patrón (MVC), en lo particular me parece muy cómodo. no se porque no lo mencionan

Imagen de penchf

ZK

Zk es muy buen framework para aquellos que batallan con la programación en JavaScript, lo he usado y es muy estable. Pero tal vez no lo mencionan porque va más por el lado de un RIA que de un MVC.

Imagen de hpcorona

Confundido...

Haber, tengo entendido que el MVC solo establece que se separen en 3 componentes: Modelo (donde se obtienen los datos y esta la logica de negocios), Vista (que es la interfaz con el usuario) y Controlador (que es el que conecta a la vista con el modelo).

Si lo haces todo en una sola clase, o con un framework usando un front controller, eso ya es otra cosa, mientras esten separadas esas 3 secciones se cumple con el patron.

Corrijanme si estoy mal.

??...

Pues la mayoria de los desarrolladores de C son ignorantes...Tenia entendido que (no se C) un puntero era algo como int pp = *p. Pero en fin, la discusion no es esa...Cambio mi argumento de "Un verdadero lenguaje de programacion soporta punteros" por "Un verdadero lenguaje de programacion soporta herencia multiple" XD.

Imagen de fcodiaz

C une a M y V

MVC solo es divicion en 3 capas, un Cotrol llamara y operara con Modelos, los resultados de estos los enviara a una Vista que es la que al final se encarga de mostrar el resultado al usuario o cliente(no neseariamente humano), por lo general la vistas y modelos son llamadas desde el control

Imagen de JavaMan

FRAMEWORKs

En mi opinion los Frameworks han salido para darle solucion a problemas en el desarrollo de software, pero en realidad es opcional su uso... ya que uno si es buen programador puede hacer sus desarrollos sin necesidad de utilizarlos y apoyándose solamente en las APIS de la JVM. En mi caso yo trabajado con y sin ellos. Conozco alrededor de 8 frameworks pero en especial me gusta más por capa:

- VISTA: JSF + MYFACES + RICHFACES + TOMAHAWK (Integración)
- PERSISTENCIA: HIBERNATE (Aunque MYBATIS es muy bueno)

Todo controlado por SPRING 3.

Saludos.

Imagen de JavaMan

VAADIN

Lo ultimo que he probado es este framework que se esta poniendo de moda llamado: VAADIN, ya que su trabajo es simular al de GWT solo que tabaja en el SERVER... es para la creacion de interfaces pero hechas netamente en JAVA y se integra mejor a las otras capas de manera mas directa y rapida (Solo intanciandolas).

VAADIN

Estoy trabajando en un desarrollo de un proyecto comercial usando Vaadin y hasta el momento ha respondido muy bien.

Imagen de Sr. Negativo

GWT

Ahora estoy usando este Framework, me parece muy bueno (aunque muy lento al compilar y ejecutar).

Muy parecido a Java Swing.