Wurde jemand von Struts 1 in ein anderes Web-Framework migriert?

8

Bei meinem aktuellen Projekt haben wir in den letzten Jahren Struts 1 verwendet und ... ähem ... Struts zeigt sein Alter. Wir migrieren langsam unseren Front-End-Code zu einem Ajax-Client, der XML von den Servern verbraucht. Ich frage mich, ob jemand von Ihnen eine ältere Struts-Anwendung in ein anderes Framework migriert hat und welche Herausforderungen Sie dabei hatten.

    
Alan 18.09.2008, 04:40
quelle

2 Antworten

7

Sicher. Der Wechsel von Struts zu einem AJAX-Framework ist eine sehr befreiende Erfahrung. (Obwohl wir JSON anstelle von XML verwendet haben. Viel einfacher zu analysieren.) Sie müssen sich jedoch bewusst sein, dass es sich um eine vollständige Neuschreibung Ihrer Anwendung handelt.

Anstelle des klassischen Datenbank / JSP / Aktionen-Schemas für MVC wechseln Sie zu einem Servlet / Javascript-Schema, wobei das Modell durch HTTP-GET-Anforderungen repräsentiert wird, Aktionen durch POST / PUT / DELETE-Anfragen dargestellt werden und Die Ansicht wird im laufenden Betrieb vom Webbrowser gerendert. Dies führt zu interessanten Herausforderungen in jedem Bereich:

Serverseite - Auf der Serverseite müssen Sie einen Standard für die Bereitstellung von Daten für den Client entwickeln. Die einfachste und einfachste Methode ist die REST -Methode, die am besten zu Ihrer Datenhierarchie passt. Dies ist relativ einfach mit Servlets zu implementieren, aber Sun hat auch ein Java 1.6-Schema mit Attributen entwickelt das sieht ziemlich cool aus.

Ein weiterer Aspekt der Serverseite ist die Auswahl eines Übertragungsprotokolls. Ich weiß, dass Sie XML bereits erwähnt haben, aber Sie sollten es vielleicht noch einmal überdenken. XML-Parser unterscheiden sich stark zwischen Browsern. Ein Browser könnte das Dokumentenstammverzeichnis zum ersten untergeordneten Element machen, ein anderes könnte ein spezielles Inhaltsobjekt hinzufügen, und alle würden Leerzeichen anders analysieren. Schlimmer noch, die normalize () - Funktion scheint von den großen Browsern nicht korrekt implementiert zu werden. Das bedeutet, dass das XML-Parsing anfällig für Hacks sein kann.

JSON ist viel einfacher zu parsen und konsistenter in seinen Ergebnissen. Javascript und Actionscript (Flash) können JSON direkt in Objekte übersetzen. Dies macht den Zugriff auf die Daten eine einfache Angelegenheit von x.y oder x [y]. Es gibt auch viele APIs, um mit JSON in jeder erdenklichen Sprache zu arbeiten. Weil es so einfach zu analysieren ist, wird es fast besser als XML unterstützt!

Client-Seite - Das erste Problem, mit dem Sie konfrontiert werden, ist die Tatsache, dass niemand versteht, wie man Javascript schreibt. BESONDERE diejenigen, die denken, dass sie es tun. Wenn Sie Bücher über Javascript haben, werfen Sie sie JETZT aus dem Fenster. Es gibt praktisch keine guten Bücher über die Sprache, da sie alle demselben "Hacking" -Muster folgen, ohne wirklich in das, was sie tun, einzutauchen.

Von der untersten Ebene wird Ihr Team eine Korrekturschulung für die JavaScript-Entwicklung benötigen. Beginnen Sie mit dem JavaScript-Client-Handbuch . Es ist die de facto Quelle von Informationen über die Sprache. Der nächste Halt ist Douglas Crockfords Videos auf Javascript. Ich stimme nicht mit allem überein, was er zu sagen hat, aber er ist einer der wenigen Kenner der Sprache.

Wenn Sie das verstanden haben, überlegen Sie, welche Frameworks Sie gegebenenfalls verwenden möchten. Im Allgemeinen mag ich Sachen wie Prototype und Mootools nicht. Sie neigen dazu, ein einfaches Problem zu nehmen und es noch schlimmer zu machen. Nichtsdestotrotz können Sie diese Tools bewerten und entscheiden, ob sie für Sie arbeiten.

Wenn Sie das Gefühl haben, dass Sie ohne ein Framework nicht leben können, weil Ihr Team zu unerfahren ist, dann könnte GWT die Rechnung erfüllen . GWT ermöglicht es Ihnen, DHTML-Webanwendungen schnell in Java-Code zu schreiben und sie dann in Javascript zu kompilieren. Das PROBLEM ist, dass Sie auf diese Weise große Mengen an Flexibilität aufgeben. Die Javascript-Sprache ist viel mächtiger als GWT darstellt. GWT lässt Java-Entwickler jedoch schneller auf Touren kommen. Also wähle deine Schlachten.

Das sind die Schlüsselbereiche, die mir einfallen. Ich kann sagen, dass Sie einen Seufzer der Erleichterung seufzen werden, sobald Sie aus Ihrer Anwendung herausstreben. Es kann ein bisschen wie ein Biest sein. Vor allem, wenn unerfahrene Entwickler an Ihrem Struts-Modell gearbeitet haben. : -)

Fragen?

Bearbeiten 1: Ich habe vergessen hinzuzufügen, dass Ihr Team die W3C-Spezifikationen in religiöser Hinsicht studieren sollte. Dies sind die APIs, die Ihnen in modernen Browsern zur Verfügung stehen. Wenn Sie jemanden mit den DOM 0-APIs (zB document.forms ['myform'] .blah.value statt document.getElementById ("blah"). Value) fangen, zwingen Sie sie, die gesamte DOM 1-Spezifikation zu transkribieren, bis sie es oben verstehen nach unten.

Bearbeiten 2: Ein weiteres wichtiges Thema ist die Dokumentation Ihrer neuen AJAX-Anwendung. REST-Style-Interfaces eignen sich gut, um in einem Wiki dokumentiert zu werden. Was ich getan habe, war eine Top-Level-Seite, die jeden der Dienste und eine Beschreibung aufgelistet hat. Durch Klicken auf den Servicepfad würden Sie zu einem Dokument mit detaillierten Informationen über jeden der Teilpfade geführt. In der Theorie kann dieses Schema so tief dokumentieren, wie Sie den Baum benötigen, um zu gehen.

Wenn Sie mit JSON arbeiten, müssen Sie ein Schema entwickeln, um die Objekte zu dokumentieren.Ich habe gerade die möglichen Eigenschaften im Wiki als Dokumentation aufgelistet. Das funktioniert gut für einfache Objektbäume, kann aber mit größeren, komplexeren Objekten komplex werden. Sie können in diesem Fall mit etwas wie IDL oder WebIDL ergänzen. (Kann nicht viel schlimmer sein als XML DTDs und Schemas.; -))

Der DHTML-Code ist in seiner Dokumentation etwas klassischer. Sie können ein Tool wie JSDoc verwenden, um eine Dokumentation im JavaDoc-Stil zu erstellen. Es gibt nur eine Einschränkung. Javascript-Code eignet sich nicht gut für die Dokumentation in Code. Schon aus anderen Gründen, dass es den Download aufgebläht hat. Es kann jedoch vorkommen, dass Sie regelmäßig Code schreiben, der als zusammenhängendes Objekt fungiert, aber nicht hinter den Kulissen als solches Objekt codiert ist. Daher ist die beste Lösung, JSDoc-Skelettdateien zu erstellen, die die JavaScript-Objekte darstellen und dokumentieren.

Wenn Sie GWT verwenden, sollte die Dokumentation ein Kinderspiel sein.

    
64BitBob 18.09.2008, 05:08
quelle
2

Sehen Sie sich das Stripes-Framework an. Wenn Sie mit Streben vertraut sind, dann werden Streifen für Sie Sinn machen, aber es ist so viel besser. Sie haben eine Streifen vs Struts Abschnitt auf ihrer Website. Du kannst das überprüfen und sehen, ob es dich interessiert. Es erlaubt Ihnen, mit jedem beliebigen Ajax-Framework zu arbeiten, und ich glaube nicht, dass es lange dauern würde, von Struts zu Stripes zu migrieren.

    
ScArcher2 18.09.2008 13:35
quelle

Tags und Links