22
[email protected] Unabhängiger Technologieberater Über 15 Jahre Erfahrung Schwerpunkte: SOA, BPM, RIA, Agile JEE und .NET Zertifizierungen Microsoft, Sun, Scrumalliance Autor und Trainer www.pleus.net

Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

[email protected]

� Unabhängiger Technologieberater

� Über 15 Jahre Erfahrung� Schwerpunkte: SOA, BPM, RIA, Agile

� JEE und .NET� Zertifizierungen◦ Microsoft, Sun, Scrumalliance

� Autor und Trainer

� www.pleus.net

Page 2: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

� Kurze! Einführung

� Entwicklung von Java-Frontends◦ Tools, JEE-Anbindung, LOB-Features

� Integration in den Entwicklungszyklus◦ Server, Build, Deployment und Test

keine Effekte dafür Code

http://www.silverlight.net/showcase/

� RIA-Technologie von Microsoft

� Browser Plug-In◦ Portable CLR, Browser-VM, Cross-Platform

� Plattform◦ Programmierprachen, Steuerelemente, Bibliotheken, Tools

� Interaktiv und Performant◦ Rich & Reach, Neue Benutzererfahrung

� Umfassend, robust und verfügbar ◦ Version 4.0 in nur 2,5 Jahren

◦ www.silverlight.net

Page 3: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

� Reichhaltige Benutzererfahrung� Interaktiv, 60+ Controls, LOB-Features� Styles, Storyboards, Video

� Hohe Entwicklerproduktivität◦ Professionelle Tools und Sprachen◦ Etablierter Komponentenmarkt + Community

� Hohe Reichweite + webbasiertes Deployment� Standardbasierte Java-Integration� Investitionsschutz und Planungsicherheit� Wiederverwendung von KnowHow◦ Java/C#, Patterns, Hibernate, Lucene, log4j, etc.

� Keine Lizenzkosten

http://www.cookingwithxaml.com/meals/financials/default.html

Page 4: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

Designer

Kunde

Entwickler+ SketchFlow

Page 5: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

www.eclipse.org/esl/

Eclipse4SL Plugin

Eclipse4SL Plugin

XAML + Code Editor

XAML + Code Editor

Visueller Designer

Visueller Designer

Nur Silverlight 2

Nur Silverlight 2

KostenloseIDE

KostenloseIDE

XAML + Code Editor

XAML + Code Editor

Visueller Designer

Visueller Designer

www.microsoft.com/express/

Refactoring, etc.

Refactoring, etc.

Silverlight 4Silverlight 4

Page 6: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

www.microsoft.com/expression/

DesigntoolDesigntool

Templatedesigner

Templatedesigner

StoryboradStoryborad

SketchFlowSketchFlow

Photoshopimport

Photoshopimport

Designer

Kunde

Entwickler+ SketchFlow

Page 7: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

� Silverlight design surface

Server

Applikationsserver

Client

Browser

Präsentation(Navigation, Validierung)

Präsentation(Navigation, Validierung)

Geschäfts-logik

Geschäfts-logik

InternetInternet

Präsentation und Daten

SessionSession

Page 8: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

Server

Applikationsserver

Client

Browser + Plug-In

Präsentation(Navigation, Validierung)

Präsentation(Navigation, Validierung)

Geschäfts-logik

Geschäfts-logik

InternetInternet

Initial Präsentation, dann nur Daten

• Nutzung der Client-Hardware• Entlastung von Server + Netz• Hohe Interaktivität

• Nutzung der Client-Hardware• Entlastung von Server + Netz• Hohe Interaktivität

SessionSession

� Service Layer ist Voraussetzung

� Contract (Schema) first

� Kein direkter DB-Zugriffmöglich

� Achtung: clientaccesspolicy.xmlund crossdomain.xml

Page 9: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

� Merkmale� SOAP1.1 und SOAP 1.2 via HTTP

� WS-I Basic Profile 1.1

� WS-Addressing

� Base64 für Binärdaten

� Silverlight◦ Add Service Reference -> generiert Proxy, ClientBase<…>

◦ Asynchrones Paradigma - Aufruf mit Events und Lambda-Expressions

Page 10: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

� Formate� XML/JSON/ATOM/RSS

� XML Schema Unterstützung

� Silverlight◦ System.Net.WebClient - Zugriff auf beliebige Web Ressourcen via HTTP

◦ DataContractJsonSerializer – JSON (De)serialisierung

◦ Linq2XML – Mapping XML/C#

� Zugriff auf das Browser-DOM

� Aufrufe mittels HttpWebRequest

� Wiederverwendung existierender AJAX – Schnittstellen

� Silverlight◦ HtmlPage.Window.Invoke - Aufruf Silverlight -> Javascript

◦ ScriptableMemberAttribute – Aufruf Javascript -> Silverlight

Page 11: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

� ODBC für das Web, SOAP für Daten◦ http://www.odata.org

� Basiert auf REST, JSON, ATOM

� Clients und Server für Javascript, PHP, Java, Objective C, .NET, Ruby

� OData Toolkits für Java (Client & Server)◦ http://code.google.com/p/odata4j, http://www.restlet.org

� Beispiel: OData Explorer◦ http://www.silverlight.net/content/samples/odataexplorer/

� Silverlight ◦ Add Service Reference -> generiert Proxy◦ Abfragen mit LINQ◦ Automatische Änderungsverfolgung

� Hessian (Open Source) - www.hessiancsharp.org◦ Silverlight Portierung einfach

� Adobe Action Message Format (AMF)◦ FlourineFX (Open Source) - www.flourinefx.com◦ WebORB (Kommerziell) - www.themidnightcoders.com

Page 12: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

� Verschlüsselung◦ SSL (HTTPS)

� Authentifizierung◦ Basic Authentication◦ X509 Zertifikate

◦ NTLM (Windows Authentifizierung)

� WS-Security nicht vollständig◦ Nur UsernamePasswordToken

◦ Lösungen: Zugriff auf HTTP und SOAP-Header, Service Proxy

� Silverlight / JEE Anbindung

Page 13: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

� UI Controls

� Datenbindung, Konvertierung� Validierung

� Änderungsverfolgung

http://timeline.codeplex.com/

� Standard sehr umfassend� Kommerzielle und Open Source für exotische Ansprüche

� Exemplarisch DataGrid◦ Sortieren◦ Filtern◦ Gruppieren◦ Pagen◦ Spalten tauschen◦ Feste Spalten◦ Detailansicht◦ Templates

Standard DataGrid

Page 14: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

AccordionAccordionAutocompleteBoxAutocompleteBoxTextBoxTextBox

TextBlockTextBlock

ComboBoxComboBox

ImageImage

DatePickerDatePicker

ButtonButton

TreeView(Load on demand)

TreeView(Load on demand)

DataGrid(Sort ,Group,

Page, CellTemplates)

DataGrid(Sort ,Group,

Page, CellTemplates)

TabControlTabControl

Drag&DropDrag&Drop

StoryboardStoryboard

GridSplitterGridSplitter

CheckBoxCheckBox

Databinding & Validation

Databinding & Validation

PopupPopup

StylesStyles

HyperlinkButtonHyperlinkButtonImageImage

� Automatischer Datentransfer zwischen Model und View

� Eigenschaften und Listen möglich

� Konvertierungen möglich ◦ Typen und Inhalte

Page 15: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

Model

XAML

Code

Konverter

XAML

Page 16: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

� UI Feedback durchgängig eingebaut

� Synchron, Asynchron, Felder, Objekte◦ Exceptions, INotifyDataErrorInfo, [CustomValidation]

� Validierung im Modell

� Modellerweiterung über partielle Klassen

Generiertes Modell

Erweitertes Modell

XAML

Page 17: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

� Wichtig für Persistenz und Netzlast◦ Bei Add Reference automatisch ins Modell generiert

� Entitäten: INotifyPropertyChanged

� Listen: INotifyCollectionChanged

� Datenbindung

� Validierung� Änderungsverfolgung

Page 18: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

� OS und Webserverunabhängig� XAML + Code = XAP (ZIP)

� MSBuild = Ant für .NET

� Im Framework SDK enhalten� Visual Studio Projekte sind MSBuild-Dateien

� Kein Visual Studio erforderlich� Hudson MSBuild Plugin oder

� Integration über Maven Standard Plug-Ins� XAP wird Artefakt im Maven Repo

<plugin><groupId>org.codehaus.mojo</groupId><artifactId>execexecexecexec----mavenmavenmavenmaven----pluginpluginpluginplugin</artifactId><configuration><executable>msbuild</executable></configuration>

<plugin><groupId>org.codehaus.mojo</groupId><artifactId>execexecexecexec----mavenmavenmavenmaven----pluginpluginpluginplugin</artifactId><configuration><executable>msbuild</executable></configuration>

pom.xmlpom.xmlpom.xmlpom.xml

Page 19: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

MavenRepo

MSBuild

sl.csprojsl.csproj

pom.xmlpom.xml

xml /wsdlcontract

xml /wsdlcontract

pom.xmlpom.xml

slsvcutil

pom.xmlpom.xml

exec-maven-plugin

maven-assembly-plugin

exec-maven-plugin

XAML/C# codeXAML/C# code

cxf-codegen-plugin

maven-dependency-plugin maven-

compiler-plugin

maven-install-plugin

Java codeJava code

Hudson

wsdl2java

� Build und Integration

Page 20: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

� Unittests◦ Besonders für (View-)Model Tests◦ Erfordern Silverlight-Plug-In Instanz◦ Testfälle sind oft asynchron◦ Testrunner im Silverlight Toolkit

� silverlight.codeplex.com

� UI-Tests◦ UI-Automatisierung mit Telerik WebUI

� http://www.telerik.com/automated-testing-tools/webaii-framework-features.aspx

◦ HP Quicktest kompatibel◦ MSTest nicht mit Visual Studio.NET Express◦ Testfallausführung mit Nunit

� www.nunit.org

� Unittest

mvn –o test

Page 21: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität

� Unittests dem Silverlight-Toolkit

� UI-Tests mit WebUI und Nunit

� Maven Integration

� Umfassende Rich Client-Technologie ����

� Professionelle Tools ����

� Cross Platform ����

� Starke Community und Hersteller ����

� Kostenlos in Entwicklung und Betrieb ����

� Standardbasierte JEE-Kommunikation ����

� Tomcat/Linux Deployment ����

� Maven/Hudson - Buildintegration ����

� Unit/UI - Testautomation ����

Page 22: Professionelle Java Frontends mit Silverlight Java Frontends mi… · . Reichhaltige Benutzererfahrung Interaktiv, 60+ Controls, LOB-Features Styles, Storyboards, Video Hohe Entwicklerproduktivität