2009-05-23 7 views
0

Ich habe ein kleines Projekt, in dem ich dynamische Dateneingabeformulare mit ein wenig Logik hinter ihnen generieren möchte.Erstellen von dynamischen Dateneingabeformularen

Ein einfacher Anwendungsfall könnte ein Fußball resultierender Form sein, also haben Sie einen Knopf für einen Torschützen, und wenn er angeklickt wird, wird der Benutzer nach einem Spieler gefragt. Das Formular sendet dann eine Nachricht (wahrscheinlich an einen Webservice, aber möglicherweise eine JMS-Warteschlange) mit den Ereignisdaten. zB Barcelona, ​​Goal, Henry.

Dann möchte ich eine ähnliche Form für Tennis schaffen ...

Meine Idee war, dass ich eine Webservice schaffen würde, in dem Sie die Geschäftslogik definieren. (Ereignisse, Komponenten, Aktionen, die du nimmst usw.) Anfangs dachte ich, ich würde die Sport-Definition vom Webservice in XML schicken. Schreiben Sie dann eine App, um das XML zu analysieren und den Dateneingabe-Bildschirm dynamisch zu erstellen.

Ich dachte ursprünglich daran, einen Webservice zu schreiben und XML-Daten zurückzugeben. (Das wird scheußlich aussehen) Die Rendering-Technologie könnte dann flex/flash sein und ein Thin Client sein.

Dann dachte ich, es wäre genauso einfach, die Formulare als eine Java-App mit dem Swing Application Framework zu erstellen und das war der Weg zu gehen.

Dann dachte ich, na ja, anstatt ein XML-Schema zu schreiben, um die Java-Formulare zu beschreiben, kann ich einfach eine Java-Klasse serialisieren und diese über die Leitung senden.

Sobald ich auf diesem Pfad bin, frage ich mich jetzt, ob nur ein Java-Framework und die dynamischen Formen zu Klassen werden sollen, die durch Reflektion aufgerufen werden.

Ich würde gerne Feedback zu den oben genannten Ansätze, und wie Menschen auf Stackoverflow dieses Problem lösen würde.

danke

David.

Antwort

0

Ich würde Serialisierung vermeiden, weil es ein bisschen zerbrechlich ist, schwierig sicher zu tun und schwierig zu diagnostizieren.

Sie sagen, es ist ein kleines Projekt, also müssen die Metadaten wirklich von Client zu Server übertragen werden? Wäre es nicht viel besser, die Metadaten (wirklich Code) einfach als Java-Code zu schreiben?

(FWIW, mein erstes kommerzielles Java - Projekt erstellte Formulare dynamisch aus einer Datenbankspezifikation (mit regulären Ergänzungen). Vorher arbeitete ich mit C++ mit einem Interpreter für Trainingssysteme. In beiden Fällen würde ich jetzt (und für die letztes Jahrzehnt), habe sie als Java geschrieben, lass dich nicht von Leuten abschrecken lassen, die missbilligend über "hardcoded" murmeln.)

0

würde ich auch XForms betrachten. Es ermöglicht Ihnen, sowohl das Datenmodell als auch die Benutzeroberfläche als XML zu definieren, und alles, was Sie auf der Clientseite rendern müssen, ist ein Webbrowser. Ich gehe davon aus, dass das Ereignis an einen Remote-Server gesendet wird, was den Webbrowser zu einer natürlichen Wahl macht.

Dies würde Ihnen ermöglichen, die Benutzeroberfläche auf dem Server basierend auf welcher Art von Sportereignis der Benutzer berichten möchte, so können Sie leicht neue Formulare hinzufügen, Bugs, etc. zu beheben, ohne jemals die Client-Software zu aktualisieren .

Übrigens verstehe ich Ihre Bedenken über die Verwendung von XML nicht. Meiner Meinung nach ist es eine praktikable Option für Ihren Anwendungsfall.