Autor Thema: Frage von Gandhi: Was ist struts, ant  (Gelesen 3295 mal)

Offline Axel_Janssen

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 769
Frage von Gandhi: Was ist struts, ant
« am: 08.08.03 - 09:30:41 »
Die Frage ergab sich aus einem Thread Hyjacking im Jobforum. Ich habs einfach hierhin kopiert.

Vielen Dank erstmal für Deine tolle Hilfe.
Gestern habe ich dann mal im besagten Websphere Buch geblättert - und somit haben sich wieder neue Fragen ergeben:
Was ist eigenlich
-Jakarta/Struts
-Ant
Es ist echt schwierig von einer einheitlichen IDE kommend die wilde Welt des J2EE zu erschließen. Wer die Wahl hat hat die Qual?
... design patterns are abstract designs that help identify the structure and elements involved in a specific design solution. From this, a concrete implementation can be produced.
Kyle Brown

Offline Axel_Janssen

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 769
Re:Frage von Gandhi: Was ist struts, ant
« Antwort #1 am: 08.08.03 - 09:34:24 »
Erstmal die IDE-Frage. Für die anderen beiden, will ich ein bißchen sorgfältiger antworten:

Fange mit einer IDE an. Wenn du dich dann damit auskennst, kannst du wechseln, weil die sind wie gesagt sehr ähnlich.
Wenn du Schäffer, Schilderer hast, installiere das im Buch liegende WSAD (auch wenn es eine leicht veraltete Version ist) und gehe das sehr umfangreiche und in jedem Einzelschritt gut beschriebene Beispiel S. 576- 773 durch. Da wirst du in sehr viele Arbeitsschritte mit WSAD eingeführt. Von HTML bis EJB.

Die anderen beiden Fragen will ich ein bißchen sorgfältiger beantworten. Wait.

Gruß Axel
« Letzte Änderung: 08.08.03 - 09:40:21 von Axel_Janssen »
... design patterns are abstract designs that help identify the structure and elements involved in a specific design solution. From this, a concrete implementation can be produced.
Kyle Brown

Offline Axel_Janssen

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 769
Re:Frage von Gandhi: Was ist struts, ant
« Antwort #2 am: 08.08.03 - 10:50:42 »
Zitat
Originally posted by Ashik uzzaman:
[QB]
James Davidson of Sun Microsystems created Ant in a flight back to USA from a conference in Europe. He generally codes better in return flight from Europe[/QB]
Aber das nur am Rande.  ;D

Extrem wichtig für den Erfolg von Java ist die symbiotische Beziehung zwischen openSource Projekten (ab jetzt OSP) und den großen Unternehmen wie IBM, Oracle, Sun etc. (ab jetzt BB-> Big Business). Ohne einen gemeinsamen Feind (Microsoft) hätte das so nicht funktioniert.
 
Cameron Purdy hat dafür den sehr schönen Vergleich eines Öko-Systems entwickelt, dass ich ein bißchen weiterentwickle:
OSP tritt gegenüber BB als Räuber auf. Tomcat, JBoss kann z.B. Kunden von Websphere wegziehen. Durch diese Konkurrenz ist BB gezwungen mit ihren Produkten einen wirklichen Zusatznutzen gegenüber OSP abzuliefern.
Auf der anderen Seite wird aber OSP von BB in den Produkten benutzt. Der Source ist ja offen. Teilweise werden auch einfach die packages in die BB-Lösung getan. Sun, IBM, Oracle und Bea schicken ihre Software-Ingenieure sogar teilweise in die OSP-Projekte. Wie der Bürger Dhakkas Fahim (Ashik) oben mitteilt: Ein Sun Ingenieur hat die Grundlagen zu Ant programmiert.

Beide Projekte befinden sich im Apache-Kontext. www.apache.org hostet neben dem Server noch verschiedene Open Source Projekte. Für Java sind da v.a. die Zweige xml und jarkarta (Java-Projekte) interessant.
http://jakarta.apache.org/ (hier gibts struts und vieles weitere)
http://xml.apache.org/
(hmm. ant hat seit neuesten einen eigenen Bereich: )
http://ant.apache.org/

1. Ant
Ant ist ein build-Tool. Du kannst damit automatisiert Java-Klassen kompilieren, packagen (jar-files), EJB-packaging und Klassen generierung, SQL-Kommandos absetzen (etwa um während des builds die für die App nötigen Datenbanken zu generieren), Telnet-Kommandos (Programm nach dem build dorthin schicken, wo man will), Unit-Tests integrieren.
All dies schreibt man einfach in ein xml-buildfile (Standard-Name build.xml).

Sehr einfaches Praxisbeispiel:
Hier das sehr primitive Beispiel mit dem ich die 20 or so Klassen meines auf Netbeans entwickelten Applets in ein Jar packe:
Code
<?xml version="1.0"?>
<!DOCTYPE project>
<project name="AntProject" default="dist" basedir=".">
<property name="build" value="pkg"/>
<property name="dist" value="dist"/>
<target name="dist">
<mkdir dir="${dist}/lib"/>
<jar jarfile="${dist}/lib/test20.jar" basedir="${build}"/>
</target>
</project>
Ziemlich wenig Zeilen, oder?
Damit das funktioniert, muß ich eine ant-package auf dem Rechner haben (download von apache-Seite). Ich hab eine alte ant-Version. Die läuft nur mit Java13 nicht mit Java14. Deshalb benutze ich das folgende bat file, um ein lauffähiges ant-environment zu haben:
Code
set ANT_HOME=D:\jTools\ant14
set JAVA_HOME=D:\jdk13
set PATH=%PATH%;%ANT_HOME%\bin
D:
cd jTools\ant14\bin
Sobald ich das mit cmd gestartet habe, tippe ich sowas wie
Code
ant -buildfile D:\jMy\calApplet\build.xml
in die Konsole. Und meine 20 Klassen werden in ein jar gepackt.

Natürlich sind mit ant noch viel,viel kompliziertere builds möglich. Jedes open Source Projekt kommt heute mit so einem build file. Zwar ist in aller Regel eine kompilierte Version im download. Manchmal aber nicht. Man braucht sich nicht mehr um Details des builds zu kümmern (Classpath, jar-File, Manifest.mf-File, evtl. Datenbanken, etc.). Diese ganzen Informationen haben die Entwickler in das build.xml geschrieben und um den Rest kümmert sich die Ameise.

2. Struts:
Struts ist ein framework für die Implementierung eines Web-Model View Controller Patterns in J2EE-Servern. Die weitaus meisten in Servlets/JSP geschriebenen Webanwendungen sind gemäß dieses MVC-Patterns aufgebaut. Pattern sind sehr vereinfacht gesprochen Strukturen von OO-Anwendungen, die sich als effizient erwiesen haben, beschrieben worden sind und von Leuten wie mir benutzt werden können. Pattern haben Namen. So kann man auch darüber reden und jeder hat eine mehr oder weniger gemeinsame Vorstellung, welche Struktur gemeint ist.
 
In den downloadbaren jars von Struts sind eine Reihe von Klassen. Ich schreibe dann an den richtigen Stellen eigene Klassen, die mit den Struts-Klassen kommunizieren. Ich muß dann nicht jedesmal selbst die MVC-generierenden Klassen generieren.
Viele Informationen schreibt man auch in ein struts-config.xml File. WSAD hat seit Vs. 5 Werkzeuge, die das Schreiben einer struts-Anwendung vereinfachen.
Struts kann schon ziemlich verwirren. Es ist aber sinnvoll.
Vorher sollte man dringend Web-MVC verstehen. Hier gibts meinen Lieblingstext (Kapitel 12): http://www.simongbrown.com/publications/proservlets.jsp
Einen kurzen Einblick in struts liefern die Artikel von Thomas Paul:
http://www.javaranch.com/newsletter/Mar2003/newslettermar2003.jsp#struts


Gruß Axel
« Letzte Änderung: 08.08.03 - 11:20:10 von Axel_Janssen »
... design patterns are abstract designs that help identify the structure and elements involved in a specific design solution. From this, a concrete implementation can be produced.
Kyle Brown

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz