# Applets - Sinn oder Unsinn?



## tom_tenner (23. Mai 2007)

Hallo zusammen!

Ich wollte mal eure Meinung/Erfahrung über die Verwendung von Applets hören!
Momentan bin ich etwas demotiviert, mein Projekt weiter zu entwickeln, weil man zuviele (störende) Sachen in Kauf nehmen muß!

Kurz zu meinem Projekt:
Ich möchte das Applet in meinem online Shop verwenden. Mit dem Applet werden SVG Dateien eingelesen, diese werden dann manipuliert (in einem Swing GUI) und dann wieder als SVG auf dem Server gespeichert.

Nun zu meinen Bedenken:

*1.:*
Da das Applet in einem Shop läuft, sollte es natürlich von jedem Kunden verwendet werden können. Da aber nicht jeder Kunde das Java Plug-In installiert hat, ist dies nicht immer der Fall.
Das Problem war mir natürlich voher schon bekannt und ich habe mich damit mittlerweile abgefunden, da man den Kunden auf die entsprechende Download Seite verweisen bzw. einen automatischen Download forcieren kann.

*2.:*
Viel mehr stört mich das signieren des Applets! Für sämtliche Dialoge (und ich brauche mehrere) und auch DB Zugriffe muss das Applet ja signiert werden. Das "Schlimme" daran ist die wenig Vetrauen erweckende Meldung, die der Benutzer/Kunde vorher angezeigt bekommt und akzeptieren muß. Heutzutage klickt doch (fast) jeder bei solchen Meldungen auf "nein" (aus gutem Grund).

*3.:*
Noch ein negativer Punkt, den ich eben grad erfahren habe, ist die Unsicherheit des Applets im Zusammenhang mit DB Zugriffen (welche bei mir häufiger vorkommen).

Was meint ihr zu den 3 Punkten (in meinem speziellen Problem)?
Kann man einige umgehen? Sehe ich das alles zu kritisch?
Gibt es Alternativen für mich (Vektorgrafiken laden, in einer GUI manipulieren und anschließend speichern), z.B. Flash?

Über Antworten wäre ich mehr als dankbar!

Grüße
Tom


----------



## The_S (23. Mai 2007)

1.) Ja, das ist so, wirste auch nicht umgehen können
2.) Sofern die Daten auf dem selben Server liegen, solltest du auch ohne Signieren lesen/schreiben können. Seit wann braucht man für Dialoge eine Signatur? Was machst du da für Dialoge?
3.) Tja, das sehe ich als größtes Problem. Da Applets Client-Seitig ausgeführt werden, hat der Client zugriff auf deine Klassen und kann so dein Passwort auslesen bzw. rekonstruieren wo er es herbekommt. Alternative dazu wäre z. B. eine Kommunikation deines Applets mit einem PHP Skript, dass die Datenbankabfragen übernimmt.

Für was brauchst du denn eigentlich ein Applet? Ich kenne keinen Online-Shop der mit Applets arbeitet. Darstellung geht doch eigenltich recht gut über html/dhmtl/javascript und wenns etwas aufwendiger sein soll, gibts ja noch das gute alte Flash. Und für den Rest kann man ja ohne Probleme Servlets oder PHP Skripte verwenden.


----------



## tom_tenner (23. Mai 2007)

Für das Daten lesen/schreiben brauche ich keine Signatur, aber für Dialoge schon (wenn ich mich nicht grade total täusche). Von einer abgeleiteten JDialog Klasse bis über einen FileDialog brauche ich alles.   

Es gibt schon Shops, die Applets verwenden, aber du hast recht, es ist eine Minderheit.
Ich wüßte nicht, wie ich mein Vorhaben sonst realisieren könnte, kenne wie gesagt nicht soviele Alternativen ausser Flash und da weiß ich nicht, ob es so mächtig wie Java (Applet) ist.

Stell dir ein (primitives) Zeichenprogramm als Applet vor. Der Benutzer kann (aus einer DB) Vektorgrafiken (bei mir SVGs über JDOM) laden, sie im Zeichenprogramm manipulieren (Swing GUI, Graphics2D) und anschließend wieder speichern (wieder als SVG mit JDOM).
Kann ich sowas mit Flash (oder etwas anderem) realisieren, in einer ähnlichen Weise? Wüßte nicht, wie ich das mit PHP, DTML und/oder JavaScript realisieren könnte...


----------



## The_S (23. Mai 2007)

In diesem Fall ist das natürlich schwer in JS oder ähnlichem zu realisieren  . Mit Flash ist das bestimmt auch möglich, aber wenn du dein Applet so schon hast, dann steuere das Laden und Speichern deiner Daten in die/aus der DB über ein PHP-Skript oder ähnliches. Gibt einige Beispiele hier im Forum, wie zwischen Java-Applets und PHP kommuniziert werden kann, halte ich jetzt für die beste Lösung  .


----------



## tom_tenner (23. Mai 2007)

Bleibt nur das Problem mit der "Sicherheitswarnung" bei signierten Applets... Wenn so eine Meldung bei Amazon kommt, dann klickt man evtl. ja noch drauf, aber bei einem "no name" Shop siehts da schon anderes aus!

Bist du sicher, daß man für Dialoge keine Signierung braucht?

/edit
Das Applet ist noch nicht fertig, aber ich habe mittlerweile den ganzen Code bzw. die Logik im Kopf zusammen gesammelt und bräuchte nur noch drauf los tippen, aber wie gesagt: wenn da echt soviele Steine im Weg liegen, macht das keinen großen Sinn!


----------



## The_S (23. Mai 2007)

Da dein Online-shop ja sehr speziell zu sein scheint, denke ich mal, dass du dir um die Signatur keine Gedanken machen brauchst.

100pro kann ich dir nicht sagen, bei welchen Operatoren 100pro eine SecurityException geworfen wird und bei welchem nicht. Dazu beschäftige ich mich einfach zu wenig mit Applet und dann scho gar nicht mit Dialogen im Applet  . Generell bekommst du Probleme, sobald du auf den Computer des Clients zugreifen möchtest.


----------



## Leroy42 (23. Mai 2007)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> 100pro kann ich dir nicht sagen, bei welchen Operatoren 100pro eine SecurityException geworfen wird



Ächzz!

Das auseinanderzufriemeln *und* zu verstehen, ist der Tag schon zu weit fortgeschritten.


----------



## The_S (23. Mai 2007)

?


----------



## tom_tenner (24. Mai 2007)

Mich würde auch ganz allgemein eure Meinung/Erfahrung interessieren, ob die neueren Applet-Versionen (1.2+) im Internet gut geeignet sind, oder man lieber andere Alternativen (Flash, PHP, DHTML, ...) verwenden sollte um den Besucher/Kunden zu erreichen!
Was meint ihr, sind Applets noch aktuell (spezielle Intranet Lösungen mal ausgenommen)?


----------



## Wildcard (24. Mai 2007)

Applets sind meiner Meinung nach ein Nischenprodukt.
Seit Webstart gibt es nur wenige Gründe für Java Entwickler noch Applets zu schreiben.


----------



## The_S (24. Mai 2007)

Ich würde Flah verwenden. Ein Applet benötigt man ja lediglich um Inhalt zu visualisieren, alles andere würde sich ja auch mit html/jsp's/php darstellen lassen.

Flash bietet hier den Vorteil, dass schöne Animationen und Visualisierungen weitaus einfacher erstellt werden können, als in Java-Applets. Nächster gewaltiger Vorteil, ist die Verfügbarkeit des Flash-Players. Er ist viel weiter verbreitet als die JRE (schätz ich jetzt einfach mal) und zudem kleiner als die JRE.


----------



## tom_tenner (24. Mai 2007)

Ich habe mir schon gedacht, dass es leider darauf hinausläuft. Schade, mit Applets wäre echt einiges möglich gewesen, aber so, wie sie z.Z. implementiert sind, macht das nur in Aussnahmen Sinn!
Werden dann mal auf Flash&PHP umsteigen und hoffen, dass es dort auch so gut klappt!

Besten Dank für eure Hilfe, hat mir sehr geholfen!  :toll:


----------



## Wildcard (24. Mai 2007)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> Nächster gewaltiger Vorteil, ist die Verfügbarkeit des Flash-Players. Er ist viel weiter verbreitet als die JRE (schätz ich jetzt einfach mal) und zudem kleiner als die JRE.


Java hat eine Durchdringung von über 95%


----------



## tom_tenner (24. Mai 2007)

Wildcard hat gesagt.:
			
		

> Hobbit_Im_Blutrausch hat gesagt.:
> 
> 
> 
> ...


Aber doch nicht das Applet Plug-In, oder?


----------



## Wildcard (24. Mai 2007)

Bei Windows wird's mitinstalliert, bei Linux wissen die Leute sowieso wie und warum sie's nachinstallieren müssen.


----------



## tom_tenner (24. Mai 2007)

Dann bin ich jetzt aber etwas ratlos!
Auf dem PC meines Bruders (WinXP) konnte ich mir die Beispiel Applets in den Sun Trails nicht anschauen. Wenn das Plug-In aber schon installiert ist, müsste es doch theoretisch gehen, oder nicht?


----------



## L-ectron-X (24. Mai 2007)

Nicht unbedingt. Applets sind nicht aufwärtskompatibel.
Hast du eine ältere JRE, aber sind die Applets mit einer aktuelleren JRE kompiliert, werden diese dann nicht angezeigt.
Aufschluss über das Problem gibt immer die Java-Console.


----------



## Wildcard (24. Mai 2007)

Zu alte Version? 
Sun setzt in der Regel recht aktuelle JREs vorraus.
Kann ich auch in sofern verstehen, da sie ein berechtigtes Interesse daran haben das die Nutzer updaten (alleine schon aus Gründen der Sicherheit).
Oder hat er von zB IE auf zB Firefox gewechselt und Java nicht neu installiert?
Einfach eine Browser Weiche einbauen und auf Java verlinken.
Die Leute installieren sich auch Flash, warum sollten sie sich nicht auch Java installieren wenn sie es noch nicht haben?


----------



## tom_tenner (24. Mai 2007)

> Nicht unbedingt. Applets sind nicht aufwärtskompatibel.
> Hast du eine ältere JRE, aber sind die Applets mit einer aktuelleren JRE kompiliert, werden diese dann nicht angezeigt.
> Aufschluss über das Problem gibt immer die Java-Console.


Mit welcher Version müßte ich denn mein Applet kompilieren, damit WinXP User die Applets problemlos angezeigt bekommen?



> Oder hat er von zB IE auf zB Firefox gewechselt und Java nicht neu installiert?
> Einfach eine Browser Weiche einbauen und auf Java verlinken.


Nee, er benutzt noch den IE (nicht so PC begeistert...   ).
Bei einem Unstieg auf einen neuen Browser muss also neu installiert werden?
Was meinst du genau mit Browser Weiche? Die entsprechenden Tags im HTML Code?

Hmm, jetzt bin ich schon wieder am Schwanken, ob ich nicht doch beim Applet bleibe, so unverbreitet scheint die Unterstützung ja doch nicht zu sein, oder?


----------



## L-ectron-X (24. Mai 2007)

tom_tenner hat gesagt.:
			
		

> Mit welcher Version müßte ich denn mein Applet kompilieren, damit WinXP User die Applets problemlos angezeigt bekommen?


Das hängt immer von der installierten Version der JRE ab. Am besten sollte immer die aktuellste (derzeit 1.6 Update 1) auf dem Zielrechner installiert sein.
Wenn du auf maximale Kompatibilität Wert legst (auch mit der alten MS-VM des IE), du also die VM des Zielrechners nicht kennst, aber so viel Benutzer wie möglich erreichen möchtest, solltest du mit Java 1.1 kompilieren.
Die derzeit am verbreitetste JRE dürfte die 1.4.2 sein und stellt damit einen guten Kompromiss dar.


----------



## tom_tenner (24. Mai 2007)

L-ectron-X hat gesagt.:
			
		

> Das hängt immer von der installierten Version der JRE ab. Am besten sollte immer die aktuellste (derzeit 1.6 Update 1) auf dem Zielrechner installiert sein.
> Wenn du auf maximale Kompatibilität Wert legst (auch mit der alten MS-VM des IE), du also die VM des Zielrechners nicht kennst, aber so viel Benutzer wie möglich erreichen möchtest, solltest du mit Java 1.1 kompilieren.


Gibt es nicht einen Zwischenweg, so das man sagen kann: Um alle User mit WinXP aufwärts erreichen zu können sollte (z.B.) 1.4 verwendet werden? Ich hatte das so verstanden, dass bei WinXP standartmäßig eine JRE (mit Plug-In) mitinstalliert wird. Wenn man dann mit dieser Version das Applet kompiliert, müßte es doch klappen, oder?
1.1 kann ich "leider" nicht verwenden, weil ich Graphics2D und Swing verwende.


----------



## L-ectron-X (24. Mai 2007)

Ich weiß nicht, wie das von Microsoft derzeit gehandhabt wird, in wie fern also mit einer WindowsXP-CD eine (und welche) Sun-JRE ausgeliefert wird. Die ersten WindowsXP-CDs wurden jedenfalls einige Zeit lang ganz und gar ohne JRE ausgeliefert.
Ich denke mit Version 1.4.2 sollte es recht wenig Probleme geben.
Hier hatte ich mal eine "Browser-Weiche" gebastelt, die ganz ohne umständliche verschachtelte HTML-Tags oder JavaScript etc. auskommt.
http://www.java-forum.org/de/viewtopic.php?t=30573
Sie reagiert zumindest auf ein deaktiviertes oder inkompatibles JRE bzw. auf eine gänzlich fehlende JRE.


----------



## Wildcard (24. Mai 2007)

Nur zur Info, eine Statistik meines privaten Webservers (die Seite richtet sich übrigens nicht an Informatiker oder andere technisch versierte Zielgruppen):
Von den letzten 3000 Besuchern hatten 98,80% der Besucher Java installiert und aktiviert.
Über die installierte Version kann ich allerdings keine Auskunft geben.


----------



## tom_tenner (29. Mai 2007)

> Hier hatte ich mal eine "Browser-Weiche" gebastelt, die ganz ohne umständliche verschachtelte HTML-Tags oder JavaScript etc. auskommt.
> http://www.java-forum.org/de/viewtopic.php?t=30573
> Sie reagiert zumindest auf ein deaktiviertes oder inkompatibles JRE bzw. auf eine gänzlich fehlende JRE.


Prüft die "Browserweiche" nur auf allgemeine Java Aktivität oder auch, ob eine bestimmt Version (aufwärts) installiert ist?
Müßte doch auch möglich sein, oder?

Vielen Dank an alle, für die verschiedenen Meinungen. :toll:
Habe jetzt einen guten Einblick bekommen können und muss mir überlegen, worauf ich bei der Realisierung mehr Wert lege!


----------

