Team Developer 7.0. Teil 2. MD Roadshow 2016

Ähnliche Dokumente
Probeklausur: Programmierung WS04/05

Einstieg in die Programmierung mit Visual Basic.NET

Access 2010 Programmierung Import und Export nach Excel

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli MySQL-Job-Automation

TimeSafe Leistungserfassung

Überschreiben von Methoden

Grundlagen von Python

Regionaltreffen Rhein Main 26. März 2007

Repetitorium Informatik (Java)

3 Klassen, Attribute, Methoden

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

Dieses Dokument beschreibt die Installation des Governikus Add-In for Microsoft Office (Governikus Add-In) auf Ihrem Arbeitsplatz.

Der Operator this. Wir betrachten nochmals die Klassendefinition von Ballon.

Eclipse und EclipseLink

Theorie zu Übung 8 Implementierung in Java

1 Einführung Erste Schritte Programmierkurs Datentypen Weiterführende Programmierung

Performance Tuning

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme

Strukturierte Objekttypen

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

PHP Aufbaukurs. Tag 3. PHP5 & Klassen

Objekt-relationales Mapping und Performance-Tuning

DB2 Codepage Umstellung

Access [basics] Programmieren mit Arrays. Beispieldatenbank. Arrays. Eindimensionale Arrays. VBA-Grundlagen Programmieren mit Arrays

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Web-Services aus der Datenbank

Oracle 12c: Neuerungen in PL/SQL. Roman Pyro DOAG 2014 Konferenz

XML in der Oracle Datenbank

ANDREAS PROUZA. Wien,

Teil 2: OOP und JAVA (Vorlesung 11)

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel

Coding Standards Brandbox

SINT Rest App Documentation

Informatik I Eprog HS10

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

Change Log. Fehlerbehebung bei den Funktionen Edit SQL, Set Session_user und Set current Schema..

VIVIT TQA Treffen in Köln am API- Programmierung und Nutzung bei HP Quality Center / ALM. Michael Oestereich IT Consultant QA

Abstimmen mit dem Gupta Report Builder

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

PostgreSQL unter Debian Linux

Java und Datenbanksysteme Datenbankanbindung mit JDBC

Probeklausur: Programmierung WS04/05

Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Algorithmen und Datenstrukturen

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Inhaltsverzeichnis. jetzt lerne ich

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

Immo Meets Office Easy Office Storage Easy Outlook Storage Handbuch

Datenbanken für Online Untersuchungen

Datenbankenseminar: SAP Reporting Vergleich ABAP vs. Quick View. Dipl. WiFo Sven Adolph

Roland Tilgner. Solution Architects & Team Coaching DEVELOPMENT. ORACLE TEXT AUS PL/SQL-SICHT Features und Möglichkeiten

PHP & Windows. Jan Burkl System Engineer, Zend Technologies. All rights reserved. Zend Technologies, Inc.

Java Einführung Methoden in Klassen

PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden.

HERZLICH WILLKOMMEN SHAREPOINT DEEP DIVE FOR ADMINS IOZ AG 2

Anzeige des Java Error Stack in Oracle Forms

Dokumentation QuickHMI-Schnittstelle für Oracle Datenbanken


Zugriff auf Firebird-Datenbanken mit PHP. Daniel de West DB-Campus-Treffen 15. Januar 2004

Installation Microsoft SQL Server 2008 R2 Express

Datenbanken Konsistenz und Mehrnutzerbetrieb III

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

1 Application Compatibility Toolkit (ACT) 5.6

Erstellung von Bibliotheken in CoDeSys V3

Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs])

Artikel Schnittstelle über CSV

Einführung in OO PHP. Jan Burkl Solution Consultant Zend Technologies. All rights reserved. Zend Technologies, Inc.

Oracle Datenbankprogrammierung mit PL/SQL Grundlagen

FileMaker Konferenz 2011 Hamburg Speed. Performance Optimierung für Ihre Lösung / Entwickler

Access und die andern (Office) Programme. Armin Hess

Installationsanleitung LogControl DL-Software

Dieses System kann wachsen und sich anpassen, wenn die Anwender entsprechende Anforderungen definieren.

Fachhochschule Kaiserslautern Labor Datenbanken mit MySQL SS2006 Versuch 1

Dokumentation Authentische Strukturdaten

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql

Zeichensatzkonvertierung in Oracle-DB. moving objects GmbH Martin Busik Hamburg - Mai

Installationscheckliste Pervasive Server Engine Version 7.94, Stand

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Nils Kaczenski MVP Directory Services WITcom Hannover

PL/SQL Web-Services mit Oracle 11g

Java - Vererbung. Personen. Leibniz Universität IT Services Anja Aue

Übungsaufgaben: 1. Objektorientierte Programmierung - Teil 1

Prozedurale Datenbank- Anwendungsprogrammierung

5.4 Klassen und Objekte

Export von Schülerdaten für andere Programme

Object Relational Mapping Layer

Handbuch organice SQL-Reportgenerator

Projekt Weblog :: Integration

J Q M / Job Queue Manager für die HP3000 Benutzerhandbuch Version A.01.03

Java I Vorlesung Vererbung und Sichtbarkeit

PIWIN 1 Übung Blatt 5

Upsizing zum SQL Server

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

Transkript:

Teil 2 MD

Agenda Neue Funktionalitäten in der Objekt Orientierten Programmierung Table Grid Vergleich Funktionalität Performance Testanwendung All Rights Reserved. 2

Objekt Orientierte Programmierung (OOP) Seit vielen Jahren entwickelt sich die OOP ständig weiter Es sind einige Techniken entstanden, die Microsoft und andere Anbieter von Entwicklungsumgebungen vorangetrieben haben Klassen Methoden / Funktionen Kapselung Vererbung Mehrfachvererbung All Rights Reserved. 3

OOP im Team Developer Funktionale & GUI Klassen Instanz Variablen Funktionen Vererbung Sehr detailierte Vererbungsmöglichkeiten Multible Vererbung Late Bound Calls Überschreiben von Funktionen All Rights Reserved. 4

Seit einigen Versionen werden folgende Techniken unterstützt: Constructors / Destructor Seit TD 7.0 Function Overload Protected Functions / Variables All Rights Reserved. 5

Constructor Vorbereiten einer Klasse: Initialisieren Default Constructor Ohne Parameter Construktoren mit unterschiedlichen Parametern Neuer Constructor/Destructor Node in der Outline Wann / wie wird ein Constructor aufgerufen? MyClass: obj1 MyClass: obj1 = OBJ_Null Set obj1 = New MyClass( ) Set obj1 = New myclass (10, Foo ) All Rights Reserved. 6

Constructor Sind sehr wichtig bei der Vererbung: Alle Konstruktoren der Basisklassen werden durchlaufen Kein extra Code nötig Team Developer startet alle Default-Constructor aller beteiligen Klassen Bei Mehrfachvererbung gilt die Reihenfolge in der Outline! All Rights Reserved. 7

Destructor Wie Construtors haben sie keinen Return Wert Werden ausgelöst, wenn ein Objekt beendet wird ( destroyed ) Kein seperater Aufruf nötig Sinnvoll zum Aufräumen Abbau eines File Handles Abbau einer Datenbankverbindung Referenzen zurücksetzen All Rights Reserved. 8

Function Overload (neu in TD 7.0) Funktionen mit gleichen Namen, aber unterschiedlichen Parametern Nicht unbedingt notwendig für OOP Programmierung, aber Overloading wird in vielen Sprachen unterstützt Sinnvoll für Erweiterungen von Funktionen Jetzt brauche ich einen Parameter mehr, aber die Funktionalität bleibt identisch Beispiele: All Rights Reserved. 9

Function Overload (neu in TD 7.0) Definierbar für interne Funktionen, Klassen Funktionen, Windows Funktionen Duplikate werden nun mittels der Parameterliste der Funktion ermittelt UDV werden als Parameter akzeptiert Achtung mit Handles als Parametern: String oder Datenfeld? Number oder Checkbox? All Rights Reserved. 10

Function Overload (neu in TD 7.0) Was kann passieren? ShowControlString(String str, WindowHandle hwnd)?? ShowControlString(WindowHandle hwnd, String str)?? Call ShowControlString(df1, df1)?? Regel: Zuerst der native Datentyp, dann der Handle Links-nach-rechts Reihenfolge All Rights Reserved. 11

Function Overload (neu in TD 7.0) ACA und Coding Assistant unterstützen Overloaded Functions All Rights Reserved. 12

Protected Functions & Variables (neu in TD 7.0) Funktionen und Variablen als geschützt markieren Diese sind nur innerhalb der Klasse bzw. Sub-Klassen zur Verwendung freigegeben Funktionen schützen: All Rights Reserved. 13

Protected Functions & Variables (neu in TD 7.0) Variablen schützen Nur Instanz- & Klassenvariablen und Funktionen können geschützt werden Kein Support für Windows Variablen und Funktionen Support von GUI Klassen! Der Coding Assistant zeigt, je nach Scope, die geschützen Variablen & Funktionen All Rights Reserved. 14

Table <> Grid Grid hat eine Vielzahl von neuen Funktionen: Summary Bar Grouping / Sorting / Filtering Sub-Totals in Gruppen Eingebautes Drucken Eine Vielzahl von Spaltentypen Eingabe / Ausgabe von Daten nach (XLSX, CSV, XML, Text) Viele neue SalGrid API Funktionen All Rights Reserved. 15

Table <> Grid Aber: Das Grid ist ja so fürchterlich langsam! Table: 10 Sekunden Grid: 3 Minuten All Rights Reserved. 16

Table <> Grid Einige Änderungen in der Implementation des Grids wurden vorgenommen Interner Code wurde optimiert Eine Testanwendung wurde erstellt All Rights Reserved. 17

Testumgebung: SQLBase 12.0 SP1, 32 Bit (64 Bit), nativer Router 4 Tabellen 2 Tabellen mit ANSI varchar Spalten 2 Tabellen mit UNICODE nvarchar Spalten 50.000 Datensätze je Tabelle, automatisch generiert Team Developer Version 6.3 SP2 Enterprise (auch mit 7.0 64-Bit getestet) Test - Anwendung nutzt den RL Isolation Level All Rights Reserved. 18

Datenbank Command Center (Grid) All Rights Reserved. 19

Datenbank Command Center (Table) All Rights Reserved. 20

Datenbank SQLTalk: Daten Randomized generierte Daten (50.000 Records) Separat für ANSI & UNICODE All Rights Reserved. 21

All Rights Reserved. 22

Application Nur eine Funktion für alle Datenbank Aktionen Stateless connection zur Datenbank All Rights Reserved. 23

SQL-Statements innerhalb der Funktion: Randomized Order by All Rights Reserved. 24

SQL-Statement in der Funktion Schrittweises auslesen des Result-Set: All Rights Reserved. 25

Anzeige der Daten Table mit ANSI Daten und Order by All Rights Reserved. 26

Anzeige der Daten Grid mit ANSI Daten und order by All Rights Reserved. 27

Statistik: All Rights Reserved. 28

Test Environment Einstellungen für den automatisierten Test: All Rights Reserved. 29

Automatisierter Test: 1ste Ergebnisse: All Rights Reserved. 30

All Rights Reserved. 31

All Rights Reserved. 32

Test Result (5000 Records) All Rights Reserved. 33

Test Result (5000 Records) All Rights Reserved. 34

Auswertung Nahezu gleiche Performance SQL Statements haben die gleiche Komplexität SQL Statements werden von der Datenbank abgearbeitet Es wird kein Buffer genutzt! Gleiche Funktion für alle Tests Nur die Differenz der Werte zwischen Table und Grid dürfen berücksichtigt werden! Wichtig: Das Result-Set wird in einer Schleife abgearbeitet Spaltentypen (Bilder) Anzahl der Spalten All Rights Reserved. 35

Auswertung Unterschiede: Table & Grid: Records Table ANSI Grid ANSI Diff Table UNICODE Grid UNICODE Diff 50 0,1459 0,1261 0,0198 0,3264 0,3091 0,0174 500 0,3912 0,2187 0,1725 0,5625 0,3981 0,1644 5000 2,7292 1,0463 1,6829 2,8091 1,2327 1,5763 Numbers in Seconds Die Netto-Performance des Grid ist besser als die des Tables! Für diesen Test!! All Rights Reserved. 36

Auswertung Die Performance ist immer noch schlecht? SQLBase: RCx Isolation Level ausprobieren (wenn möglich) Check SQL Statements / Indexes Suche nach dem Flaschenhals in der Anwendung Was passiert beim fetchen durch den Result-Set? Gleicher Code wie beim Table? Werden die Testergebnisse richtig interpretiert? Letztes Service Pack von TD6.3 installiert? PS & MD bietet Consulting an, um die letzten Sekunden zu finden Gibt es einen Grund um 1000+ Zeilen im Table/Grid darzustellen? Anzahl der (non numeric) Spalten ist ebenfalls ausschlaggebend! All Rights Reserved. 37

Anderes Beispiel Anzeige in Millisekunden (10 Zeilen; sehr viele DB Zugriffe) Viele Berechnungen für die Zellen & Farbänderungen All Rights Reserved. 38

Anderes Beispiel Angezeigt in 5 Sekunden (20 Zeilen, nur 1 DB Zugriff): File IO!!! All Rights Reserved. 39

Änderung seit der DevCon: Aber! Alternate Background Color macht das Grid langsam Schließen des Grids dauert ewig Die Testanwendung wurde entsprechend erweitert. Keine Performance - Einbußen zu ermitteln! All Rights Reserved. 40

All Rights Reserved. 41

www.opentext.com twitter.com/opentext facebook.com/opentext linkedin.com/company/opentext