Escribo (con mi equipo) una aplicación GWT, que analiza y representa un lenguaje específico de dominio; por ejemplo, reproduce presentaciones multimedia con texto, video y controles de interfaz de usuario. Por lo tanto, la aplicación tiene un conjunto de componentes: uno para el modelo de retención, otro para la rutina de control (controlador) y, por supuesto, tenemos clases para Ver.¿Cómo hacer que tu aplicación GWT pueda conectarse?
Ahora tenemos un problema - hacen todos los plug-poder, en el sentido de:
debe haber un núcleo plug-in, que hacen que toda la materia común. Este bloque coer debe ser un archivo JavaScript (uno para cada permutación)
debe haber capacidad de extender clases básicas, escribir los personalizados - y compilarlo para separar archivo JS (uno para cada permutación)
Cada complemento debe registrarse (exportar sus clases, etc.) a la plataforma central, para que pueda ser utilizado.
Problemas:
- Cómo de compilación las cosas a medida por separado?
- Cómo carga complementos?
Para el segundo problema uno he encontrado http://code.google.com/p/gwt-exporter/, que exporta a clases GWT mundo exterior, para que pudieran ser invocados desde JS puros.
También tengo una idea para crear nuevo módulo de nuevo plugin, por lo que se compilará para separar archivos (primer problema).
¿Tiene alguna experiencia en la construcción de dicha arquitectura, tiene algunas mejores prácticas en este caso?
Oh ... Gracias.Durante estas dos horas, desde que publico una pregunta, he hecho una solución. Como dijiste, he creado el módulo Core y la interfaz IPlugin, que todos los complementos deberían implementar. Luego he agregado al archivo html, me estoy quedando, la inicialización de ambos módulos. Aunque esta no es la solución final, creo que este es un buen comienzo. – ajukraine
'A continuación, utilice el exportador de GWT para crear una clase abstracta que los complementos deben ampliar que tendría un método abstracto que tomaría el elemento raíz del complemento que le pasó el núcleo y lo rellenaría. '¿Puedes entrar en detalles sobre esto? ¿Estás diciendo que exportarías una clase java GWT a javascript (usando el exportador gwt), y luego el módulo plugin debería (tal vez desde un método nativo JSNI) extender e implementar la clase abstracta dada? –
Habría algo así como un PluginManager que expondría un método de registro a través del exportador (esto es realmente muy simple a través de JSNI y puede no ser necesario agregar la dependencia del exportador GWT). AbstractPlugin también será un punto de entrada que se registrará con el PluginManager (a través de JSNI/Exporter). AbstractPlugin también expondrá un método de inyección que toma una ID de elemento para usar como elemento raíz para instanciar una instancia del complemento. Añadiré a mi respuesta. – LINEMAN78