2009-01-05 11 views

Respuesta

7

Creo que debe tratar a GWT como cualquier otro marco de interfaz de usuario, como Swing, Cocoa, etc. Todo lo que tiene sentido en esos marcos en términos de MVC (u otros paradigmas) hace sentido en GWT también. Creo que a veces las personas toman el MVC demasiado, y me gusta la forma en que funciona en Cocoa más que en la mayoría de los frameworks. Usted crea una vista, tiene un ViewController que controla todo el comportamiento de la vista, y luego tiene objetos modelo con todos sus datos. No creo que deba ser dogmático sobre dónde está toda la lógica de su negocio, solo tiene que estar donde tenga sentido.

En términos de dificultades, la principal con la que te encontrarás es que GWT es puramente una tecnología de front-end, por lo que técnicamente el back-end está ubicado en un servidor en alguna parte. No veo que esto sea tan diferente a escribir una aplicación swing de servidor cliente, que almacena sus datos en la nube en alguna parte. La diferencia es que GWT se compila en javascript y tiene todas las limitaciones de una aplicación web javascript, por lo que habrá algunas cosas que simplemente no se pueden hacer en el front-end. Digamos, por ejemplo, que desea crear un PDF y mostrarle al usuario que no puede hacer eso en GWT; debe llamar al servidor para que lo haga por usted. En una aplicación Swing, por otro lado, probablemente puedas usar itext y hacerlo en el lado del cliente.

5

El patrón MVC para GWT se trata en este question, que también tiene un enlace a este en profundidad blog post.

Lo único que agregaría es que el código del lado del cliente en su totalidad puede considerarse la "V" en "MVC", lo que puede alterar la forma en que lo mira. Pensando en el código del lado del cliente como su propio componente MVC anidado, bueno, es Java, está orientado a objetos, por lo que puede diseñarse como una aplicación Swing. Creo que es una ventaja para tirar todo el código del controlador fuera de la vista para manejar las cosas de GWT RPC. El Modelo a veces es más problemático, porque es posible que tenga que decidir si lo desea en el servidor en lugar de hacerlo en el cliente. O cree un proxy modelo, etc.

1

http://code.google.com/p/gwt-mvc/ podría ayudarlo.

Las ventajas son:

  • fácil de leer controlador de gestión
  • Historia Fichas
  • controladores son testble con JMock (pero no GWTTestCase)
  • jerárquica MVC
  • herencia simple para empezar a programar su vista, controladores y modelos.
0

El uso de algún tipo de patrón de tipo MVC/MVP es muy importante cuando las aplicaciones GWT van más allá del proyecto más pequeño, sino que simplemente pierde el control de lo que está sucediendo.

Aparte de lo que ya se ha mencionado también hay aplicación de GXT MVC que he mirado aquí: http://www.bristol-gtug.org/?p=45

Esta charla en Google IO año pasado comenzó a mucha gente de pensar en MVC/MVP en GWT: http://code.google.com/events/io/2009/sessions/GoogleWebToolkitBestPractices.html.

poco me di cuenta de que también es ahora un tutorial sobre la arquitectura MVP en la documentación GWT que es un buen comienzo: http://code.google.com/webtoolkit/doc/latest/tutorial/mvp-architecture.html

0

Se puede echar un vistazo a JetPad-cartógrafos, un marco MVC minimalista desarrollado en JetBrains y utilizado en varios productos (actualmente inéditos).

exención de responsabilidad, estoy involucrado en el desarrollo de este marco.

Cuestiones relacionadas