SlideShare ist ein Scribd-Unternehmen logo
Mehr als Dep und Emp


           Erfahrungen mit JDeveloper und
                    Oracle ADF
                         Ulrich Gerkmann-Bartels
                                         Berater
Zahlen und Fakten
 TEAM in Paderborn



                                                     Paderborn - Schloß Neuhaus    Gründung 1982




                     Geschäftsführung
                     Michael Baranowski - Heike Käferle


                                                           Firmenzentrale
DOAG 2006




                                                                                  Unternehmensgruppe
                                                                                  Materna
                                                                                  1.100 Mitarbeiter
                                                                                  120 Mio. Euro
                                                                                  Umsatz in 2004
                                    50 Mitarbeiter
                                                                                    Copyright TEAM, Paderborn Nov-06 Seite 2
Ein Minimum an Vorbereitung

            (1) Erstelle ein separates Projekt (fwk-ext) das alle
                Basisklassen des ADF BC – Framework als Unterklasse
                enthält
            (2) Verwende das Projekt als Library und konfiguriere diese
                Klassen als „Business Components: Base Classes“
DOAG 2006




                                                          Copyright TEAM, Paderborn Nov-06 Seite 3
ADF BC: Base Classes
DOAG 2006




  Hinweis: Sinnvolle Namenwahl kann so manche Missverständnisse verhindern !
            (java.lang.Number vs. oracle.jbo.domain.Number)


                                                        Copyright TEAM, Paderborn Nov-06 Seite 4
Was ist ein Applikation Modul ?

             A unit of work ?!?
             Denke in Services/Funktionen nicht in UI‘s
             Vereinige Business Objekte und Services zu einer AM*, die
             einen gemeinsamen Aufgabenkontext erfüllen
             Wie groß ist die gesamte Applikation ? (Baustein oder
             kleine Applikation)
             Die Anzahl der enthaltenen ViewObjekte in einem AM
             beeinflussen das Startverhalten einer Applikation
DOAG 2006




            AM* - Applikation Module

                                                          Copyright TEAM, Paderborn Nov-06 Seite 5
AM – Mittlere bis größere Applikationen

              Betrachte das AM immer als Modul, dass in eine
              bestehende Umgebung eingebunden wird
              Verwende ein RootService – AM, in das die eigentlichen AM
              ggfs. zu Laufzeit geladen werden können
              Die Verwendung einer definierten Hierarchie innerhalb der
              AM erleichtert das Auffinden von Services und VO*
              Verteile diese Module in eigene Projekte und importiere
              diese in die eigentliche Applikation
DOAG 2006




            service.findViewObject("RootService.Inventory.Locations");


            VO* - ViewObject

                                                         Copyright TEAM, Paderborn Nov-06 Seite 6
AM - RootService
DOAG 2006




                               Copyright TEAM, Paderborn Nov-06 Seite 7
AM - Ladeverhalten
DOAG 2006




                                 Copyright TEAM, Paderborn Nov-06 Seite 8
AM - Ladeverhalten
DOAG 2006




                                 Copyright TEAM, Paderborn Nov-06 Seite 9
AM – Schnittstelle zum UI / Binding

            Erfahrungen:

               Funktionalität wird als Service implementiert in der Business
               Schicht
                –   Testbarkeit unabhängig vom UI
                –   Saubere Trennung
                –   Man schreibt ja auch nicht PL/SQL-Code in den Forms-Trigger
                    oder ?


               Zu jedem Dialog gibt es eindeutig zugeordnete (Main-) VO
                –   Welcher Dialog benutzt noch mal dieses VO ?
DOAG 2006




                –   Warum hab ich jetzt in diesem Dialog nur noch 4 Datensätze ?




                                                            Copyright TEAM, Paderborn Nov-06 Seite 10
ADF BC: Wann machen wir einen Post..

            Gründe für einen Post:

                Trigger löst Aktionen innerhalb der Datenbank aus
                  –    Datenänderungen in anderen Tabellen, die im Model
                       verwendet werden


                Prüfung von Constraints in der Datenbank
                 (SWING: Frühzeitiges Feedback im UI zu erzwingen!)
DOAG 2006




                                                                      Copyright TEAM, Paderborn Nov-06 Seite 11
ADF BC: Wann machen wir einen Post..

            Wenn man schon einen postChanges machen muss, dann aber..:

                Commit bzw. Rollback unmittelbar folgen lassen


                WebApp: Commit oder Rollback muss vor Abschluss der
                Verarbeitung des Request erfolgen
                (Es ist nicht sichergestellt, das man den gleichen Connect wieder bekommt)




              Tip:      Wir verwenden den postChanges nur innerhalb unserer
DOAG 2006




                        Tests, um ein Commit zu simulieren



                                                                               Copyright TEAM, Paderborn Nov-06 Seite 12
Berechtigung auf Satzebene

            Aufgabe:   Suche in einer Organisationsstruktur nach Adressen,
                       Projektinformationen oder Dokumenten unter der
                       Berücksichtigung von Berechtigungen.
                       Zeige die gefunden Elemente in einer Baumstruktur an.
DOAG 2006




                                                          Copyright TEAM, Paderborn Nov-06 Seite 13
Berechtigung auf Satzebene

            Ansätze:

                Rollenbasierte Berechtigungen(ADF Security / JAAS-
                Provider) auf Satzebene
                  –    Wie vergebe ich das Recht einen privaten Kontakt nur für
                       bestimmte Benutzer zugänglich zu machen ?


                Verwendung von java.security.Permission, um so
                Funktionen bzw. Fundmengen zu autorisieren
                  –    Wie bekomme ich zum aktuelle Benutzer meine Permission
                       in das ViewObject ?
DOAG 2006




                                                             Copyright TEAM, Paderborn Nov-06 Seite 14
Berechtigung auf Satzebene

            Umsetzung:

                Rollenbasierte Berechtigungen wird nur verwendet, um
                einzelne Applikationsmodule (Benutzerpflege) zu
                autorisieren
             PODC
                Berechtigungen werden als PermissionToken in einer
                Datenbanktabelle gehalten
                Zugriff auf zu autorisierende Daten erfolgt nur wenn in der
                Datenbank Session ein entsprechender Benutzerkontext
                gesetzt ist (Ansatz: VPD oder Oracle Portal)
DOAG 2006




                Business Schicht erhält nur autorisierte Daten

            PODC – Plain Old Database Code ☺
                                                        Copyright TEAM, Paderborn Nov-06 Seite 15
Binding: Drag and Drop oder doch besser..

            Erfahrungen:

               Drag und Drop ganz schön und gut aber..
                –   Probleme beim Löschen, Umbenennen..
                –   Sobald man eigene Action bzw. MethodeAction mit
                    Parameter definiert, muss man editieren
                –   Sei Dir immer im klaren was in der PageDef steht
                –   Seit 10.1.3 nicht mehr schreibgeschützt, im Jdev ☺


               Migration von UI (UIX-Tags in JSP oder ADF UIX) waren
               nicht wirklich ein Gewinnbringer
DOAG 2006




               Verwende ein Try-Projekt im JDeveloper, um nicht
               erklärbare Erscheinungen ohne großes Umfeld nach zu
               prüfen

                                                          Copyright TEAM, Paderborn Nov-06 Seite 16
Binding: Drag and Drop oder doch besser..

            Was fehlt / Nice to have:

                 Include bzw. Vererbung von PageDefs
                 MethodeAction, die Methoden in einer BackingBean bzw.
                 POJO innerhalb eines ApplicationContext im UI aufrufen
                 können ☺
DOAG 2006




            POJO – Plain Old Java Object

                                                       Copyright TEAM, Paderborn Nov-06 Seite 17
JSF for nonbelievers

            Aufgabe:   Suche in einer Organisationsstruktur nach Adressen,
                       Projektinformationen oder Dokumenten unter der
                       Berücksichtigung von Berechtigungen.
                       Zeige die gefunden Elemente in einer Baumstruktur an.
DOAG 2006




                                                          Copyright TEAM, Paderborn Nov-06 Seite 18
JSF for nonbelievers

            Ansätze:

                ADF Tree mit entsprechenden VO
                ADF TreeTable mit entsprechenden VO


                Entwurf einer eigenen JSF Komponente


            Ergebnis:
            Verwendung der ADF Faces Komponenten mit Bindung an VO
            zeigte sich als nicht praktikabel.
DOAG 2006




            Entwurf einer eigenen JSF Komponente führte schnell zu einen
            erheblichen Mehraufwand, bei der benötigten Funktionalitäten.


                                                           Copyright TEAM, Paderborn Nov-06 Seite 19
JSF for nonbelievers

            Lösung:

                ADF TreeTable mit angepassten Model ohne direkte
                Bindung an ein VO ☺



            Ergebnis:
            Implementierung eines angepassten Models auf der Basis von
            ADF Faces.
            Hohe Flexibilität, da der Inhalt des Knoten selbst definiert wird.
            Layout des Baumes bzw. der Zeile kann wieder mit JSF
            Komponenten geschehen.
DOAG 2006




            Viele Funktionen des ADF TreeTable müssen nicht selber
            implementiert werden. (Decoding des Key, SelectMany,
            SelectOne)

                                                              Copyright TEAM, Paderborn Nov-06 Seite 20
ADF TreeTable
DOAG 2006




                            Copyright TEAM, Paderborn Nov-06 Seite 21
ADF TreeTable
DOAG 2006




                            Copyright TEAM, Paderborn Nov-06 Seite 22
ADF Faces Style
DOAG 2006




                              Copyright TEAM, Paderborn Nov-06 Seite 23
ADF Faces Style

            CSS Kenntnisse erforderlich !
            Geänderter Style wird im WYSIWYG mal angezeigt und ein
            anderes mal nicht !
            CSS Preview hilft nicht wirklich
            Problem mit „Body“ – Style konnten nur direkt in der JSPX
            gelöst werden
            Viele Möglichkeiten der Darstellung lassen sich durch das
            Stylesheet oder durch Inline-Style lösen aber nicht alles
DOAG 2006




                                                      Copyright TEAM, Paderborn Nov-06 Seite 24
ADF Faces Style

            <afh:head>
               :
               <style type="text/css">
                body {
                    background-image: url(<jsp:expression>request.getContextPath()</jsp:expression>/images/...);
                    background-repeat: repeat-x;
                    margin: 0px;
                    padding: 0px;
                }
                </style>
               :
              </afh:head>
DOAG 2006




                                                                                Copyright TEAM, Paderborn Nov-06 Seite 25
ADF Faces Style




       http://www.oracle.com/technology/products/jdev/htdocs/partners
                /addins/exchange/jsf/doc/skin-selectors.html
DOAG 2006




                                                   Copyright TEAM, Paderborn Nov-06 Seite 26
Umfeld: Version – CVS oder Subversion

            Viele haben in den letzten Jahren CVS eingesetzt und tun dies noch
            immer, warum zu Subversion wechseln.



              Es ist einfach einfacher !
              Löschen, Umbenennen bzw. Refactoring
              Es geht zwar nicht alles, man wird nicht immer noch vom
              Version-Tool so oft aufgehalten
DOAG 2006




             Zusätzliches Tool:


                                           http://www.tortoisesvn.org
                                                            Copyright TEAM, Paderborn Nov-06 Seite 27
Umfeld: Maven

            Maven ist vom Grundsatz ein Build-Tool, bietet aber einige
            wesentlichen Funktionen, die in einem Projektumfeld sehr
            hilfreich sind:


               Unternehmensweites Repository für Java-Libraries
               Erzeugen von JavaDoc, Checkstyle- und Dependency –
               Reports
               Unabhängige Testumgebung außerhalb des JDevelopers
               Generierung einer Projekt-Site
DOAG 2006




                                                           Copyright TEAM, Paderborn Nov-06 Seite 28
Umfeld: Maven

            Erfahrungen:

               Einführung benötigt Zeit
                –   Alle Libraries sollten ins JLib Repository
                –   Einmalige Erstellung der pom.xml für ADF BC
                –   Anpassung der Styles etc.


               Integration im JDeveloper über External Tools
               Maven setzt man nicht für ein Projekt ein, es sollte als
               grundsätzliches Element in der Entwicklungsumgebung
               eingeführt werden
DOAG 2006




                                                        Copyright TEAM, Paderborn Nov-06 Seite 29
Umfeld: Maven
DOAG 2006




                            Copyright TEAM, Paderborn Nov-06 Seite 30
Umfeld: Maven
DOAG 2006




                            Copyright TEAM, Paderborn Nov-06 Seite 31
HABEN SIE FRAGEN ?
              Hermann-Löns-Str. 88
                  33104 Paderborn

              Fon: 0 52 54 / 80 08-0
             Fax: 0 52 54 / 80 08-19
            eMail: team@team-pb.de
                     www.team-pb.de
Vielen Dank
    für Ihre
Aufmerksamkeit!
                    Hermann-Löns-Str. 88
                        33104 Paderborn

                    Fon: 0 52 54 / 80 08-0
                   Fax: 0 52 54 / 80 08-19
                  eMail: team@team-pb.de
                           www.team-pb.de

Weitere ähnliche Inhalte

PDF
Challenges in converting from Oracle Forms to Oracle ADF
PDF
DOAG 2010: ADF Faces RC Best Practice
PDF
DOAG SIG Development: BI Publisher and Oracle ADF
PDF
Spring 2.0
PDF
Spring 2.0
DOC
SaadatLebenslauf
PPTX
Oracle BI Suite 11g - DOAG Konferenz 2010 - OPITZ CONSULTING
PDF
Challenges in converting from Oracle Forms to Oracle ADF
DOAG 2010: ADF Faces RC Best Practice
DOAG SIG Development: BI Publisher and Oracle ADF
Spring 2.0
Spring 2.0
SaadatLebenslauf
Oracle BI Suite 11g - DOAG Konferenz 2010 - OPITZ CONSULTING

Andere mochten auch (20)

PDF
Easy Contact Folder
PPTX
Secondary - Wildfires - Preparedness
PDF
Mens eyeglasses , prescription glasses
PPTX
Experiencias de la Cooperación Alemana para el Desarrollo-GIZ en cooperación ...
 
PDF
3rd Prepaid Cards Conference
PPTX
Mapa mental de la empresa Eco Aguas
PDF
Librarse genea
PDF
Apariciones en prensa de los premios a "Hologramas por la libertad"
DOCX
Que es el internet
PDF
2SeptTALON2008
PDF
Julie Biron | Design Portfolio
PDF
Los libros del verano
PPTX
Week 1 discussion 2 confidentiality
DOCX
PPTX
Endulzarte
PPTX
Tit@ educación digital para todos acompañamiento-Magola.
PDF
Obras de fachadas y cubiertas jacar montajes
PDF
E12 fs malmo pre programme-ok-gb
PPT
Taller # 2 Presentación de Conceptos
PDF
2 organizaciones populares
Easy Contact Folder
Secondary - Wildfires - Preparedness
Mens eyeglasses , prescription glasses
Experiencias de la Cooperación Alemana para el Desarrollo-GIZ en cooperación ...
 
3rd Prepaid Cards Conference
Mapa mental de la empresa Eco Aguas
Librarse genea
Apariciones en prensa de los premios a "Hologramas por la libertad"
Que es el internet
2SeptTALON2008
Julie Biron | Design Portfolio
Los libros del verano
Week 1 discussion 2 confidentiality
Endulzarte
Tit@ educación digital para todos acompañamiento-Magola.
Obras de fachadas y cubiertas jacar montajes
E12 fs malmo pre programme-ok-gb
Taller # 2 Presentación de Conceptos
2 organizaciones populares
Anzeige

Ähnlich wie DOAG 2006: More than Dept and Emp mit JDeveloper and ADF (20)

PPTX
Cloud@Night: What’s new and hot in SharePoint 2016 & Office 365
PDF
Überblick Oracle Datenbank 12c
PDF
SE 2010: how we do it
PPTX
Integration of BI Publisher in ADF applications
PDF
Gestern OWB, heute ODI
PPTX
Do´s and Dont´s mit Oracle RDS
PDF
ADF Software Factory
PDF
Encapsulation, the requirement for software modernization?
PDF
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
PPT
PDF
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
PDF
2020 oracle lizenznews
PDF
Anwendungsmodernisierung mit Oracle Application Express (APEX)
PPTX
Oracle Open World 2009 Review V1.6
PDF
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
PDF
DOAG Webinar Oracle und Docker
PDF
Oracle Database 12c Release 2
PDF
Überblick zu Oracle Database 12c Release 2
PDF
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
PDF
Collaboration day 2016 panagenda
Cloud@Night: What’s new and hot in SharePoint 2016 & Office 365
Überblick Oracle Datenbank 12c
SE 2010: how we do it
Integration of BI Publisher in ADF applications
Gestern OWB, heute ODI
Do´s and Dont´s mit Oracle RDS
ADF Software Factory
Encapsulation, the requirement for software modernization?
Das Runde muss in das Eckige - Java-Anwendungen für Kubernetes entwickeln und...
REST in Peace - Mit ORDS, Node.JS, ADF, Java oder OSB?
2020 oracle lizenznews
Anwendungsmodernisierung mit Oracle Application Express (APEX)
Oracle Open World 2009 Review V1.6
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
DOAG Webinar Oracle und Docker
Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Collaboration day 2016 panagenda
Anzeige

Mehr von Ulrich Gerkmann-Bartels (10)

PDF
Visualisierung von fachlichen Informationen mit Oracle ADF
PDF
Choice-o-mat: Entscheidungshilfe für Oracle Entwicklungswerkzeuge
PDF
Die 5 mythen-der-forms-modernisierung
PDF
Was ist Docker ?
PDF
RAP im Enterprise - Quo Vadis Portal ?
PDF
Continuous Delivery in ADF Projekten
PDF
German ADF News Session: JDev 11gR2 Extension
PDF
DOAG 2010: SOR - Service Oriented Reporting
PDF
Application lifecycle in ADF Projects
PDF
Input and Views about Oracle ADF
Visualisierung von fachlichen Informationen mit Oracle ADF
Choice-o-mat: Entscheidungshilfe für Oracle Entwicklungswerkzeuge
Die 5 mythen-der-forms-modernisierung
Was ist Docker ?
RAP im Enterprise - Quo Vadis Portal ?
Continuous Delivery in ADF Projekten
German ADF News Session: JDev 11gR2 Extension
DOAG 2010: SOR - Service Oriented Reporting
Application lifecycle in ADF Projects
Input and Views about Oracle ADF

DOAG 2006: More than Dept and Emp mit JDeveloper and ADF

  • 1. Mehr als Dep und Emp Erfahrungen mit JDeveloper und Oracle ADF Ulrich Gerkmann-Bartels Berater
  • 2. Zahlen und Fakten TEAM in Paderborn Paderborn - Schloß Neuhaus Gründung 1982 Geschäftsführung Michael Baranowski - Heike Käferle Firmenzentrale DOAG 2006 Unternehmensgruppe Materna 1.100 Mitarbeiter 120 Mio. Euro Umsatz in 2004 50 Mitarbeiter Copyright TEAM, Paderborn Nov-06 Seite 2
  • 3. Ein Minimum an Vorbereitung (1) Erstelle ein separates Projekt (fwk-ext) das alle Basisklassen des ADF BC – Framework als Unterklasse enthält (2) Verwende das Projekt als Library und konfiguriere diese Klassen als „Business Components: Base Classes“ DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 3
  • 4. ADF BC: Base Classes DOAG 2006 Hinweis: Sinnvolle Namenwahl kann so manche Missverständnisse verhindern ! (java.lang.Number vs. oracle.jbo.domain.Number) Copyright TEAM, Paderborn Nov-06 Seite 4
  • 5. Was ist ein Applikation Modul ? A unit of work ?!? Denke in Services/Funktionen nicht in UI‘s Vereinige Business Objekte und Services zu einer AM*, die einen gemeinsamen Aufgabenkontext erfüllen Wie groß ist die gesamte Applikation ? (Baustein oder kleine Applikation) Die Anzahl der enthaltenen ViewObjekte in einem AM beeinflussen das Startverhalten einer Applikation DOAG 2006 AM* - Applikation Module Copyright TEAM, Paderborn Nov-06 Seite 5
  • 6. AM – Mittlere bis größere Applikationen Betrachte das AM immer als Modul, dass in eine bestehende Umgebung eingebunden wird Verwende ein RootService – AM, in das die eigentlichen AM ggfs. zu Laufzeit geladen werden können Die Verwendung einer definierten Hierarchie innerhalb der AM erleichtert das Auffinden von Services und VO* Verteile diese Module in eigene Projekte und importiere diese in die eigentliche Applikation DOAG 2006 service.findViewObject("RootService.Inventory.Locations"); VO* - ViewObject Copyright TEAM, Paderborn Nov-06 Seite 6
  • 7. AM - RootService DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 7
  • 8. AM - Ladeverhalten DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 8
  • 9. AM - Ladeverhalten DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 9
  • 10. AM – Schnittstelle zum UI / Binding Erfahrungen: Funktionalität wird als Service implementiert in der Business Schicht – Testbarkeit unabhängig vom UI – Saubere Trennung – Man schreibt ja auch nicht PL/SQL-Code in den Forms-Trigger oder ? Zu jedem Dialog gibt es eindeutig zugeordnete (Main-) VO – Welcher Dialog benutzt noch mal dieses VO ? DOAG 2006 – Warum hab ich jetzt in diesem Dialog nur noch 4 Datensätze ? Copyright TEAM, Paderborn Nov-06 Seite 10
  • 11. ADF BC: Wann machen wir einen Post.. Gründe für einen Post: Trigger löst Aktionen innerhalb der Datenbank aus – Datenänderungen in anderen Tabellen, die im Model verwendet werden Prüfung von Constraints in der Datenbank (SWING: Frühzeitiges Feedback im UI zu erzwingen!) DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 11
  • 12. ADF BC: Wann machen wir einen Post.. Wenn man schon einen postChanges machen muss, dann aber..: Commit bzw. Rollback unmittelbar folgen lassen WebApp: Commit oder Rollback muss vor Abschluss der Verarbeitung des Request erfolgen (Es ist nicht sichergestellt, das man den gleichen Connect wieder bekommt) Tip: Wir verwenden den postChanges nur innerhalb unserer DOAG 2006 Tests, um ein Commit zu simulieren Copyright TEAM, Paderborn Nov-06 Seite 12
  • 13. Berechtigung auf Satzebene Aufgabe: Suche in einer Organisationsstruktur nach Adressen, Projektinformationen oder Dokumenten unter der Berücksichtigung von Berechtigungen. Zeige die gefunden Elemente in einer Baumstruktur an. DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 13
  • 14. Berechtigung auf Satzebene Ansätze: Rollenbasierte Berechtigungen(ADF Security / JAAS- Provider) auf Satzebene – Wie vergebe ich das Recht einen privaten Kontakt nur für bestimmte Benutzer zugänglich zu machen ? Verwendung von java.security.Permission, um so Funktionen bzw. Fundmengen zu autorisieren – Wie bekomme ich zum aktuelle Benutzer meine Permission in das ViewObject ? DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 14
  • 15. Berechtigung auf Satzebene Umsetzung: Rollenbasierte Berechtigungen wird nur verwendet, um einzelne Applikationsmodule (Benutzerpflege) zu autorisieren PODC Berechtigungen werden als PermissionToken in einer Datenbanktabelle gehalten Zugriff auf zu autorisierende Daten erfolgt nur wenn in der Datenbank Session ein entsprechender Benutzerkontext gesetzt ist (Ansatz: VPD oder Oracle Portal) DOAG 2006 Business Schicht erhält nur autorisierte Daten PODC – Plain Old Database Code ☺ Copyright TEAM, Paderborn Nov-06 Seite 15
  • 16. Binding: Drag and Drop oder doch besser.. Erfahrungen: Drag und Drop ganz schön und gut aber.. – Probleme beim Löschen, Umbenennen.. – Sobald man eigene Action bzw. MethodeAction mit Parameter definiert, muss man editieren – Sei Dir immer im klaren was in der PageDef steht – Seit 10.1.3 nicht mehr schreibgeschützt, im Jdev ☺ Migration von UI (UIX-Tags in JSP oder ADF UIX) waren nicht wirklich ein Gewinnbringer DOAG 2006 Verwende ein Try-Projekt im JDeveloper, um nicht erklärbare Erscheinungen ohne großes Umfeld nach zu prüfen Copyright TEAM, Paderborn Nov-06 Seite 16
  • 17. Binding: Drag and Drop oder doch besser.. Was fehlt / Nice to have: Include bzw. Vererbung von PageDefs MethodeAction, die Methoden in einer BackingBean bzw. POJO innerhalb eines ApplicationContext im UI aufrufen können ☺ DOAG 2006 POJO – Plain Old Java Object Copyright TEAM, Paderborn Nov-06 Seite 17
  • 18. JSF for nonbelievers Aufgabe: Suche in einer Organisationsstruktur nach Adressen, Projektinformationen oder Dokumenten unter der Berücksichtigung von Berechtigungen. Zeige die gefunden Elemente in einer Baumstruktur an. DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 18
  • 19. JSF for nonbelievers Ansätze: ADF Tree mit entsprechenden VO ADF TreeTable mit entsprechenden VO Entwurf einer eigenen JSF Komponente Ergebnis: Verwendung der ADF Faces Komponenten mit Bindung an VO zeigte sich als nicht praktikabel. DOAG 2006 Entwurf einer eigenen JSF Komponente führte schnell zu einen erheblichen Mehraufwand, bei der benötigten Funktionalitäten. Copyright TEAM, Paderborn Nov-06 Seite 19
  • 20. JSF for nonbelievers Lösung: ADF TreeTable mit angepassten Model ohne direkte Bindung an ein VO ☺ Ergebnis: Implementierung eines angepassten Models auf der Basis von ADF Faces. Hohe Flexibilität, da der Inhalt des Knoten selbst definiert wird. Layout des Baumes bzw. der Zeile kann wieder mit JSF Komponenten geschehen. DOAG 2006 Viele Funktionen des ADF TreeTable müssen nicht selber implementiert werden. (Decoding des Key, SelectMany, SelectOne) Copyright TEAM, Paderborn Nov-06 Seite 20
  • 21. ADF TreeTable DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 21
  • 22. ADF TreeTable DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 22
  • 23. ADF Faces Style DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 23
  • 24. ADF Faces Style CSS Kenntnisse erforderlich ! Geänderter Style wird im WYSIWYG mal angezeigt und ein anderes mal nicht ! CSS Preview hilft nicht wirklich Problem mit „Body“ – Style konnten nur direkt in der JSPX gelöst werden Viele Möglichkeiten der Darstellung lassen sich durch das Stylesheet oder durch Inline-Style lösen aber nicht alles DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 24
  • 25. ADF Faces Style <afh:head> : <style type="text/css"> body { background-image: url(<jsp:expression>request.getContextPath()</jsp:expression>/images/...); background-repeat: repeat-x; margin: 0px; padding: 0px; } </style> : </afh:head> DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 25
  • 26. ADF Faces Style http://www.oracle.com/technology/products/jdev/htdocs/partners /addins/exchange/jsf/doc/skin-selectors.html DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 26
  • 27. Umfeld: Version – CVS oder Subversion Viele haben in den letzten Jahren CVS eingesetzt und tun dies noch immer, warum zu Subversion wechseln. Es ist einfach einfacher ! Löschen, Umbenennen bzw. Refactoring Es geht zwar nicht alles, man wird nicht immer noch vom Version-Tool so oft aufgehalten DOAG 2006 Zusätzliches Tool: http://www.tortoisesvn.org Copyright TEAM, Paderborn Nov-06 Seite 27
  • 28. Umfeld: Maven Maven ist vom Grundsatz ein Build-Tool, bietet aber einige wesentlichen Funktionen, die in einem Projektumfeld sehr hilfreich sind: Unternehmensweites Repository für Java-Libraries Erzeugen von JavaDoc, Checkstyle- und Dependency – Reports Unabhängige Testumgebung außerhalb des JDevelopers Generierung einer Projekt-Site DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 28
  • 29. Umfeld: Maven Erfahrungen: Einführung benötigt Zeit – Alle Libraries sollten ins JLib Repository – Einmalige Erstellung der pom.xml für ADF BC – Anpassung der Styles etc. Integration im JDeveloper über External Tools Maven setzt man nicht für ein Projekt ein, es sollte als grundsätzliches Element in der Entwicklungsumgebung eingeführt werden DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 29
  • 30. Umfeld: Maven DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 30
  • 31. Umfeld: Maven DOAG 2006 Copyright TEAM, Paderborn Nov-06 Seite 31
  • 32. HABEN SIE FRAGEN ? Hermann-Löns-Str. 88 33104 Paderborn Fon: 0 52 54 / 80 08-0 Fax: 0 52 54 / 80 08-19 eMail: team@team-pb.de www.team-pb.de
  • 33. Vielen Dank für Ihre Aufmerksamkeit! Hermann-Löns-Str. 88 33104 Paderborn Fon: 0 52 54 / 80 08-0 Fax: 0 52 54 / 80 08-19 eMail: team@team-pb.de www.team-pb.de