Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Oracle APEX: Fortgeschrittene Techniken aus der Praxis => Design Patrick Wolf – Denes Kubicek - Dietmar Aust 17.03.2008 – 19.03.2008.

Ähnliche Präsentationen


Präsentation zum Thema: "Oracle APEX: Fortgeschrittene Techniken aus der Praxis => Design Patrick Wolf – Denes Kubicek - Dietmar Aust 17.03.2008 – 19.03.2008."—  Präsentation transkript:

1 Oracle APEX: Fortgeschrittene Techniken aus der Praxis => Design Patrick Wolf – Denes Kubicek - Dietmar Aust –

2 Seite 1 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Agenda Datenmodell Geschäftslogik Konfigdaten Parsing Schema Workspace Applikationsaufteilung Seitennummerierung/-gruppierung APEX Einstellungen Teamentwicklung

3 Seite 2 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Datenmodell Zeit investieren!

4 Seite 3 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Datenmodell Datenmodell leben länger als Applikationen Ist letztes Bollwerk für konsistente Daten

5 Seite 4 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Datenmodell – Grafisch visualisieren ERDs oder UML Diagramme Farben verwenden Logisch Gruppieren Von Oben nach Unten Hilft beim Denken Leichterer Einstieg für neue Entwickler Man diskutiert ganz anders

6 Seite 5 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust

7 Seite 6 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Datenmodell Künstlicher Primary Key (mit Sequence) In APEX maximal 2 Primary Key Attribute Update auf natürlichen Primary Key keine Auswirkungen Eine Sequence reicht Nachteil Eventuell mehr Joins Constraints können weniger überprüfen Unique Keys verwenden! Jede Tabelle hat meistens natürlichen Schlüssel! (Auftragsnr., Kundennr, Auftragsnr.+Position, …) Wenige Ausnahmen (Logging Tabelle,...)

8 Seite 7 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Datenmodell Foreign Keys verwenden! Schaft Sicherheit und konsistente Daten Nicht auf Applikation verlassen!!! Performance schon lange kein Thema mehr Foreign Key Spalten generell indizieren Schneller beim joinen Verhindert Table Locks Konsistentes Namensschema überlegen Keine Lookup Tabellen sparen! Z.B.: für Aufzählungen ( , Fax, Tel,...)

9 Seite 8 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Datenmodell – Keine Lookup Tabellen sparen Mehr Stellen zeigen Werte an als man denkt! Zu viele Lookup Tabellen? Generische Tabelle als Alternative DOMAIN (z.B.: KOMMUNIKATION) DOMAIN_VALUE (z.B.: TEL, FAX, ,...)

10 Seite 9 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Datenmodell – Generische Werteliste

11 Seite 10 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Datenmodell – Generische Werteliste Vorteile Eine generische Maske zum pflegen aller Werte Keine Datenmodell Änderung notwendig Spart viele Tabellen Nachteile Weniger Aussagekraft von Foreign Key Constraints FK kann nicht auf bestimmte DOMAIN überprüfen CBO hat weniger Information

12 Seite 11 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Datenmodell Check Constraints verwenden! Schaft Sicherheit und konsistente Daten Nicht auf Applikation verlassen!!! CBO hat mehr Informationen NOT NULL Constraints verwenden Gehört zum Analyse/Design Prozess

13 Seite 12 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Datenmodell Domänen überlegen Vereinheitlichung der Datentypen Z.B.: Spalte DESCRIPTION ist immer VARCHAR2(40) Booleans NUMBER(1) mit Constraint auf 0 (FALSE) und 1 (TRUE) Normalerweise NOT NULL! Gleiche Namensgebung – z.B.: IS_MANAGER, HAS_CHILDS Verarbeitungsflag NUMBER(1) mit Constraint auf NULL und 1 (TRUE) Index erstellen -> Enthält nur Datensätze mit 1 Historisierungsattribute Kann automatisch generiert werden

14 Seite 13 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Datenmodell Konsistentes Namensschema überlegen Tabellen Prefix (z.B.: NPT_T_) Spalten Prefix Foreign Key Benennung Constraint Benennung (IX_, UK_, PK_, FK_, CK_,...) Spalten mit gleicher Bedeutung (DESCRIPTION, CODE,...) Tabellen und Spalten Kommentar verwenden Immer mit Scripts ändern (Dev., Test, Produktion)

15 Seite 14 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Datenmodell - Conclusio Constraints, Constraints, Constraints!!! Nicht auf Applikation verlassen Letztes Bollwerk Zeit investieren

16 Seite 15 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Geschäftslogik In die Applikation? Direkt auf Tabellen inserten/updaten/löschen? Was ist mit Überprüfungen?

17 Seite 16 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Geschäftslogik - Objektkapselung Package für jede Tabelle oder logische Tabelle/Tabellengruppe Prozeduren createObjektname updateObjektname deleteObjektname validateSpalte/... Eine Zentrale Stelle wenn es um die Erstellung oder Änderung des Objekts geht Andere Objekte Initialisieren Notification,... Kann Initial generiert werden Hilft bei Datenmodell Änderungen – Eine Zentrale Stelle Auch andere Programme können Code verwenden (Batchjobs,...) -> eine Art von SOA ;-)

18 Seite 17 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Geschäftslogik - Objektkapselung Wie in APEX verwenden? Eigene DML Prozess Verlust von Lost Update Detection/Optimistic Looking Viel Arbeit View mit INSTEAD OF TRIGGER Für APEX wie Tabelle Keine Änderung am Standardverhalten Siehe statements.sql

19 Seite 18 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Geschäftslogik - Conclusio Geschäftslogik raus aus dem UI !!!

20 Seite 19 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Konfigdaten Wiedereinspielbahre Scripts! STORE Prozeduren Siehe statements.sql

21 Seite 20 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Parsing Schema Verwenden Sie das Applikationsschema?

22 Seite 21 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Parsing Schema Gefahr bei SQL Injection Run User mit eingeschränkten Rechten verwenden Z.B.: Kein DROP TABLE Recht Mit Data Dictionary Scripts automatisch granten und Synonyms erstellen Nachteil Wizard sieht die Synonyme nicht Workspace braucht auch Applikationsschema Immer Applikationsschema auswählen Applikationsschema hardcodiert Alternative Run User Parsing Schema erst bei Deployment setzen

23 Seite 22 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Workspace Einen? Mehrere? Abhängig von Berechtigungsstruktur (Entwickler, Power User, Abteilungen) Tendiere zu Einem Single Sign On zwischen Applikationen im Workspace Über gleiche Cookie Attributes in Authentification Scheme

24 Seite 23 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Applikationsaufteilung Bei kleinen Applikationen nicht sinnvoll Bei größeren überlegenswert Vorteile Unabhängige Release Zyklen Besser handhabbar Übersichtlicher Leichtere Teamentwicklung Mögliche Nachteile Weniger integriert Unterschiedliche Templates Uneinheitliche Navigationsleisten Übergreifende Navigation komplizierter Weniger Synergie (gleiche Seiten, Lovs,...)

25 Seite 24 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Applikationsaufteilung Zentrale Master Applikation Login Allgemeine Seiten (Benutzerverwaltung,...) Navigationsleisten Lovs... Spezifische Applikationen Subscription verwenden

26 Seite 25 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Seitennummerierung Fortlaufend? APEX weiß es am besten? Nur bei kleine Applikationen APEX Seitennummern sind nicht wirklich limitiert! Es gibt immer zusammengehörige Seiten Übersichtsbericht mit Suche Detail Formular Vielleicht noch weiteres Detail Formular 50 oder 100 Schritte pro zusammengehörige Seiten oder Schritte pro Seitengruppe

27 Seite 26 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Seitengruppen Wer kennt Sie? Verwendet Sie? Gutes Mittel um Applikation zu Strukturieren Admin Bereich Öffentlicher Bereich Shop... Verschiedene Darstellungsmöglichkeiten Hilft Page Flow Diagram von ApexLib Zuordnen über Seiteneigentschaften

28 Seite 27 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust APEX Einstellungen Application Builder Defaults Developer Preferences UI Interface Defaults Defaults beim erstellen von Tabellen/Views Titel, Labels, Templates, Format Masken Applikationsübergreifend

29 Seite 28 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust APEX Einstellungen Default Templates für Komponenten und Regionen Shared Components\Themes\Edit Theme Ein wenig versteckt

30 Seite 29 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Teamentwicklung – Codierrichtlinien Jeder entwickelt anders Emotionales Gebiet! Einheitliche Namensgebung Filenamen Variablen Parameter Konstanten Felder Einheitliche Formatierung Gross-/Kleinschreibung Klammern Einrückung Leerzeichen PL/SQL Aufrufe mit Non-Positional Syntax/Parameter

31 Seite 30 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Teamentwicklung – Codierrichtlinien Einheitliche Vorgehensweise Gleiche Patterns (z.B.: Geschäftslogik, APEX Seiten,...) Einheitliches Layout Labels, Tabs, Breadcrums,... Feldtypen vereinheitlichen (Datum, Geldbeträge, …) Für Oracle APEX und PL/SQL und SQL Schriftlich!!! Reviews durchführen

32 Seite 31 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Teamentwicklung – Versionsverwaltung Ist ein MUSS!!! Auch bei 1 Mann Entwicklung! Schnell etwas überschrieben/gelöscht Historien Vergleich Tools CVS + TortoiseCVS SVN + TortoiseSVN

33 Seite 32 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Teamentwicklung – Versionsverwaltung Alle Projekt relevanten Dateien Create Table Scripts Konfigdaten Packages Dokumente... APEX Applikations Export Manueller Export am Abend (APEX Builder oder SQL Developer) Automatisiert mit apex\utilities\oracle\apex\APEXExport.class und APEXSplitter.class Details siehe up-your-applications/http://jes.blogs.shellprompt.net/2006/12/12/backing- up-your-applications/

34 Seite 33 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Teamentwicklung – Ticketsystem Nachvollziehbar Strukturiert Viele Tools JIRA Bugzilla...

35 Seite 34 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Teamentwicklung – Gleichzeitige Entwicklung Versionsverwaltung hilft dabei Locks Merge Nicht für APEX Export geeignet APEX Page Locks verwenden Nicht alles geschützt (Shared Components) In 3.1 ein paar Bugs korrigiert Themengebiete für Entwickler festlegen Eine Zentrale Entwicklungsinstanz

36 Seite 35 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Teamentwicklung – Gleichzeitige Entwicklung Wenn was schief geht... Seiten Export mit As of xx min verwenden Komplett Import beeinträchtigt andere Entwickler DBA soll höheres Zeitfenster einstellen!!!

37 Seite 36 Oracle APEX: Fortgeschrittene Techniken aus der Praxis Patrick Wolf – Denes Kubicek – Dietmar Aust Teamentwicklung – Conclusio Codierrichtlinien Versionsverwaltung Ticketsystem Regelmäßige Exports Page Locks verwenden Einzel Seiten Export mit As of


Herunterladen ppt "Oracle APEX: Fortgeschrittene Techniken aus der Praxis => Design Patrick Wolf – Denes Kubicek - Dietmar Aust 17.03.2008 – 19.03.2008."

Ähnliche Präsentationen


Google-Anzeigen