Donnerstag, 24. Mai 2012


Artikel

August 2010 | Artikel

Silverlight für Java Enterprise!? Fortsetzung, Teil 5

Teil 1   Teil 2   Teil 3   Teil 4   Teil 5   

Clientinteraktion
Um Zustände auf dem Client abzulegen, können Cookies geschrieben werden, wie das folgende Beispiel zeigt:

  1. DateTime expireDate = DateTime.Now + TimeSpan.FromDays(7);
  2. string newCookie = key + "=" + value + ";expires=" +
  3. expireDate.ToString("R");
  4. HtmlPage.Document.SetProperty("cookie", newCookie);

Um Cookies einzulesen, wird der folgende Code verwendet: string[] cookies = HtmlPage.Document.Cookies.Split(';');. Wem dieser Ansatz zu limitiert erscheint, kann mittels Isolated Storage komplexere Daten auf dem Client ablegen. Isolated Storage greift auf einen isolierten, virtuellen Bereich des Dateisystems zu, der nur für bestimmte Anwendungen zur Verfügung steht. Ein unkontrollierter Zugriff auf die Festplatte ist nicht möglich. Der Zugriff auf Isolated Storage wird über die Klassen im Namensraum System.IO.IsolatedStorage ermöglicht. Unter Windows Vista werden die Daten unter <Systemdrive>\Documents and Settings\<user>\Local Settings\Application Data\Microsoft\Silverlight\is abgelegt. Unter Mac OSX werden sie unter /Users/<user>/Library/Application Support/Microsoft/Silverlight/is abgelegt.

Silverlight-Anwendungen können mithilfe des Local Communication API auch untereinander kommunizieren. Dadurch lassen sich beispielsweise anspruchsvolle Portalanwendungen realisieren, bei denen die einzelnen Seitenbereiche miteinander interagieren. Listing 7 zeigt ein Beispiel.

Listing 7: Lokale Kommunikation
  1. private void SendLocal()
  2. {
  3. LocalMessageSender sender =
  4. new LocalMessageSender("Receiver Name",LocalMessageSender.Global );
  5. sender.SendCompleted +=
  6. new EventHandler<SendCompletedEventArgs>(sender_SendCompleted);
  7. sender.SendAsync( "Message" );
  8. }
  9. void sender_SendCompleted(object sender, SendCompletedEventArgs e)
  10. {
  11. // check for errors
  12. }
  13. private void ReceiveLocal()
  14. {
  15. List<string> allowedSenders = new List<string>();
  16. allowedSenders.Add("javamagazin.de");
  17. allowedSenders.Add("localhost");
  18. LocalMessageReceiver receiver =
  19. new LocalMessageReceiver("Receiver Name", ReceiverNameScope.Global,
  20. allowedSenders);
  21. receiver.MessageReceived += new
  22. EventHandler<MessageReceivedEventArgs>(receiver_MessageReceived);
  23. receiver.Listen();
  24. }
  25. void receiver_MessageReceived(object sender, MessageReceivedEventArgs e)
  26. {
  27. // process message
  28. }

Entwicklung
Insbesondere für die Erstellung grafischer Oberflächen sind professionelle Werkzeuge essenziell. Dies gilt erst recht für den RIA-Bereich, weil hier intensiv mit 3-D-Transformationen, Farbverläufen und Animationen gearbeitet wird. Obwohl sich Silverlight-Anwendungen prinzipiell mit einem Texteditor entwickeln lassen, ist davon dringend abzuraten. Stattdessen steht das Werkzeug Expression Blend zur Verfügung. Expression Blend ist keine klassische Entwicklungsumgebung, sondern primär ein Designwerkzeug (Abb. 4). Für die ernsthafte Silverlight-Entwicklung ist Expression Blend unverzichtbar, da es die Produktivität enorm steigert.

Expression Blend beinhaltet die so genannte SketchFlow-Technologie. Damit lassen sich in sehr kurzer Zeit lauffähige Prototypen entwerfen. Diese Prototypen können von den Anwendern kommentiert und später in die finale Anwendung umgewandelt werden. SketchFlow unterstützt eine enge Zusammenarbeit mit den Fachabteilungen, agiles Vorgehen und somit kurze Konzepte zu Produktionszyklen [8].

Eher entwicklerbezogene Aufgaben können mit Visual Studio .NET erledigt werden. Als kostenfreie Version kann ebenfalls Visual Web Developer Express Edition [9] verwendet werden. Alternativ steht mit den Eclipse Tools for Silverlight eine ebenfalls kostenlose, Eclipse-basierte Entwicklungsumgebung für Windows und Mac OS X zur Verfügung. Eine Version mit Silverlight-3-Unterstützung ist für das Frühjahr 2010 angekündigt.

Der Einsatz von Silverlight erfordert keine Laufzeitlizenzen. Durch die Unabhängigkeit vom Webserver können bestehende Server genutzt werden. Etwaige Lizenzkosten fallen nur während der Entwicklung für Expression Blend an. Dadurch gestalten sich die Entwicklung und der Betrieb günstig und einfach.

Fazit
Animationen und grafische Effekte sind zweifellos beeindruckend und können Anwendungen deutlich aufwerten, sofern sie in der richtigen Dosierung eingesetzt werden. Sie stellen jedoch nur einen Aspekt von RIA-Technologien dar. Insbesondere für Unternehmensanwendungen, die die Kernprozesse der Unternehmen unterstützen, stehen andere Qualitätsmerkmale im Vordergrund. Dazu gehören performante Datenvisualisierung und Validierung, leistungsstarke Steuerelemente, standardbasierte Interoperabilität, langfristiger Herstellersupport, einfache Verteilung und Betrieb, und nicht zuletzt die Entwicklerproduktivität. In all diesen Bereichen hat Silverlight viel zu bieten. Somit steht eine qualitativ hochwertige RIA-Technologie auch für Java-Enterprise-Anwendungen zur Verfügung, die ein solides JEE Backend um zeitgemäße grafische Oberflächen bereichern kann.

Wolfgang Pleus arbeitet als Technologieberater, Autor und Trainer im Bereich moderner Softwarearchitekturen. Seit über 15 Jahren unterstützt er internationale Unternehmen bei der Realisierung komplexer Geschäftslösungen auf der Basis von Java EE und .NET. Er ist Mitglied im Accelsis-SOA/BPM-Competence-Team.
  1. Moonlight
  2. Silverlight Toolkit
  3. Silverlight Toolkit Samples
  4. Telerik-Controls-Demo
  5. Infragistics Controls
  6. DevExpress DataGrid
  7. Telerik Sales Dashboard
  8. SketchFlow
  9. Visual Web Developer Express
  10. Silverlight Showcase
  11. Eclipse-Tools for Silverlight

Teil 1   Teil 2   Teil 3   Teil 4   Teil 5   

Kommentare

Gravatar Sebastian Grassl 03.09.2010
um 08:12 Uhr
Hallo Herr Pleus,
sehr interesanter Artikel! Ich habe mir erlaubt in meinem Blog darauf hinzuweisen.
http://blogs.msdn.com/b/riablog/archive/2010/09/03/interessanter-artikel-zu-silverlight-f-252-r-java-enterprise.aspx
Viele Grüße
Sebastian Grassl
Produkt Marketing Silverlight, Microsoft Deutschland
#zitieren