80

DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Embed Size (px)

Citation preview

Page 1: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter
Page 2: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

DOAG Konferenz 2009, “Oracle und Microsoft .NET”Nürnberg, 19.11.2009

Markus Kißling BU Server Technologies PCMLeitender Systemberater ORACLE Deutschland [email protected]

Page 3: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

AGENDA Oracle und Microsoft .NETWas ist neu bei ODT und ODP.NET

• Übersicht• Alte Welt mit ODBC und OLEDB (ADO)• Microsoft Office (Business) Applications (OBAs)• Oracle Integration mit Microsoft .NET

• Was ist neu bei den Oracle Developer Tools (ODT) for Visual Studio• Was ist neu bei den Oracle Developer Tools (ODT) for Visual Studio• Development Lifecycle mit Source Code Versionsverwaltung

• Was ist neu beim Oracle Data Provider for .NET (ODP.NE T)• ADO.NET Object Model und Oracle Database Change Notification• Demos u.a. Messaging mit .NET und Oracle Streams Advanced Queuing (AQ)

• Deprecation von System.Data.OracleClient• Microsoft stellt die Entwicklung ihres Data Providers für Oracle ein• Was ist bei der Umstellung auf den Oracle Data Provider (ODP.NET) zu beachten

Page 4: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

<Insert Picture Here>

Übersicht

Page 5: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Universelle Datenhaltung und universeller Datenzugriff (in der „alten“ Welt)

• Szenario 1: ODBC• Zugriff auf Oracle Stored Procedure aus MS Access über ODBC• Geschäftslogik im Oracle Server aus MS Office nutzen

• Szenario 2: ADO/OLE DB• Szenario 2: ADO/OLE DB• Migration von MS SQL Server nach Oracle mit der Oracle Migration

Workbench• Visual Basic-Anwendung leicht an Oracle anpassen (Standard SQL-Zugriffe)

und Einsatz des Oracle OLE DB Providers • Performance-Features wie Fetch-Size schon unter OLE DB verfügbar

Page 6: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Microsoft Office (Business) Applications (OBA) -Teil der „neuen“ Welt

Page 7: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Oracle’s Commitment to .NET

ODP.NET

Visual Studio Plug-ins

.NET Stored Procs 64-bit

ODP.NETODAC 2006

ODAC 11g

2nd ODAC 11g

Q3 20052002-03

.NET 1.x

Q2 2005

.NET 2.0 & VS 2005

Q3 2006

.NET 3.0

VS 2003

Q1 2007 2007-08

Windows Vista & 2008

2009

Page 8: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

.NET Development Environment Support

Visual StudioEnvironmentVisual StudioEnvironment

ApplicationDevelopment

Deploy

Deploy

Oracle Data Provider for .NET

Oracle Developer Tools for Visual

Studio

.NET Application

.NET Application

Web or Deploy

Database Development

Oracle Database Extensions for .NET

Oracle Providers for ASP.NET

Web or Client/ServerApplication

Page 9: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Visual Studio

Oracle Developer Tools for VS.NET

WindowsWindows

LinuxLinux

und/oder...

Entwicklung auf WindowsDatenbank-Plattform wahlfrei

Visual StudioUmgebung

WindowsWindowsUnixUnix

Oracle 11g, 10g oder 9iOracle 11g, 10g oder 9i

weitere…weitere…

Oracle Data Provider for .NET

und/oder...

und/oder...

Page 10: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

<Insert Picture Here>

Was ist neu bei denOracle Developer Tools for Visual StudioVisual Studio

Page 11: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Visual Studio und Oracle Development Lifecycle

Test, Tune, Deploy

Create Users/Roles

Create Schema Objects

Grant Privileges

.NET CodingPL/SQL and

SQL Editing/Debug

Source Control

Page 12: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Neue Features mit ODT 11g (11.1.0.7.20) Oracle Developer Tools for Visual Studio

ODT 11.1.7.20 ODT 11.1.6.20

Page 13: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Neue Features mit ODT 11g (11.1.0.7.20)Oracle Developer Tools for Visual Studio

Page 14: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Neue Features mit ODT 11g (11.1.0.7.20) Oracle Developer Tools for Visual Studio

Page 15: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Oracle Developer Tools for Visual StudioVisual Studio Integration (1)

• Voll integriert mit Visual Studio 2008 und 2005• Server Explorer• Data Sources Window • Dataset Designer• TableAdapter Configuration Wizard • Query Builder/Query Designer• Query Builder/Query Designer• usw.

• Automatic Code Generation – WinForm und ASP.NET• Für die Erstellung von einfachen Anwendungen

Page 16: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Oracle Developer Tools for Visual StudioVisual Studio Integration (2)

• Oracle Wizards und Designers• Table/View Designer• Stored Procedure/Function/Package Wizards• Grant/Revoke Privileges Wizard• UDT Designers• UDT Custom Class Code Generation Wizard• Table/View Migration Wizard

• Oracle Data Window• Oracle Database Project

• Editieren und Ausführen von SQL Skripten• SQL*Plus Built In• Source Control Integration

• Integrierter PL/SQL Editor und Debugger

Page 17: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Oracle Developer Tools for Visual StudioVisual Studio Integration (3)

• Oracle Query Window (Abfragefenster)• Ad Hoc SQL• Explain Plan (Ausführungspläne)

• .NET Stored Procedure Deployment• Integriertes Hilfesystem – SQL, PL/SQL Schlüsselwörter• Integriertes Hilfesystem – SQL, PL/SQL Schlüsselwörter

Page 18: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

ODT 11.1.0.7.20 – Was ist neu? (1)

• Performance Analyse und Tuning• Oracle Performance Analyzer

• Laufende Anwendungen gegen die Datenbank optimieren• SQL Tuning Advisor

• Ad-hoc Abfragen im Abfragefenster optimieren• Ineffiziente Anwendungs-SQL-Statements tunen (geliefert aus

dem Oracle Performance Analyzer)

• Messaging• Advanced Queuing (AQ) Designer

• Anlegen, ändern und administrieren der Queues und Queue Tabellen

Page 19: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

ODT 11.1.0.7.20 – Was ist neu? (2)

• Application Development Lifecycle• Auswählen und Ausführen von Operation auf mehreren Knoten im

Server Explorer (SE)• SQL Skripte aus beliebigen Oracle Schemaobjekten oder

Gruppen von Objekten erzeugen• Beliebig viele Stored Procedures auf einmal kompilieren

• Server Explorer Collection Node Filtering• Server Explorer Collection Node Filtering• Anzuzeigende Schemaobjekte einschränken

• Server Explorer Node Paging• Verbesserte Performance bei vielen Datenbank-Objekten

• Benutzer- und Rollen-Designer und Benutzer- und Rollen-Knoten imServer Explorer

• Grant/Revoke Privileges Wizard für Unterstützung bei System Privilegien und Rollen

Page 20: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Oracle Developer ToolsWizards and Designers

• Connection Dialog

• Oracle Server Login

• Connection Filter Login

• Preview SQL Dialog

• Table Designer

• Import Table Wizard

• Trigger Designer

• View Designer

• Import Table Wizard

• View Designer

• Integration with Query Designer

• User Designer

• Role Designer

• Grant/Revoke Dialog

• Run SQL*Plus Dialog

• Oracle Database Project Run On Dialog

• Oracle Database Project Add Database Reference Dialog

• Query Table Designer

• Queue Table Designer

• Queue Designer

• Function Designer

• Procedure Designer

• Stored Procedure Run Dialog

• Package Designer

• Sequence Designer

• Synonym Designer

• XML Schema Designer

• Object Type Designer

• Varray Designer

• Nested Table Designer

• OracleDataAdapter Wizard

• Oracle Deployment Wizard for .NET

• Oracle Custom Class Wizard

• Generating Classes with the Oracle Custom Class Wizard

• Oracle Performance Analyzer

Neu in ODT 11.1.0.7.20

Page 21: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

DEMODevelopment Lifecycle

1) User Designer 2) Role Designer

3) Import Table Wizard4) Automatic Code Generation (VB-Code)

5) Microsoft Query Builder6) SQL Skript generieren

7) Applikationscode in Source Safe/Subversion einche cken

Page 22: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Source-Code VersionsverwaltungVisual Studio mit Subversion/VisualSVN/TortoiseSVN

• Subversion als Basis• TortoiseSVN (Windows Shell Extension) http://tortoisesvn.tigris.org/

• VisualSVN (enthält Subversion) http://www.visualsvn.com/

Page 23: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Source-Code VersionsverwaltungVisual Studio mit Subversion/VisualSVN/TortoiseSVN

Page 24: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

NEU

Source-Code VersionsverwaltungVisual Studio mit Subversion/VisualSVN/TortoiseSVN

Page 25: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Source-Code VersionsverwaltungVisual Studio mit Subversion/VisualSVN/TortoiseSVN

Page 26: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Source-Code VersionsverwaltungVisual Studio mit Subversion/VisualSVN/Tor toiseSVN

Page 27: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Source-Code VersionsverwaltungMS SourceSafe 2005

Page 28: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Source-Code VersionsverwaltungMS SourceSafe 2005

Page 29: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Source-Code VersionsverwaltungMS SourceSafe 2005

Page 30: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Source-Code VersionsverwaltungMS SourceSafe 2005

Page 31: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

DEMODEMOOracle Developer Tools for Visual Studio

1) SQL Tuning Advisor

2) Oracle Performance Analyzer

Page 32: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

<Insert Picture Here>

Was ist neu beimOracle Data Provider for .NET

Page 33: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

ODP.NET - Basics

• ADO.NET Standard implementiert• Einfach und intuitiv einsetzbar• Nativer Zugriff auf die Oracle Datenbank

• Advanced Oracle Datenbank Features werden unterstützt• z.B. RAC, Performance, Security, Datentypen, XML, usw.

• DB-Server auf beliebigen Betriebssystem• DB-Server auf beliebigen Betriebssystem• DB-Client auf 32-Bit oder 64-Bit Windows-Betriebssystem

• Unterstützung ab .NET Framework 1.0 und höher

• DB-Client und Server-Versionen müssen nichtübereinstimmen

• Frei und kostenlos zum Download auf Oracle Technet (OTN)• http://otn.oracle.com/dotnet

Page 34: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

ODP.NET Object Model

DataSet OracleDataAdapter

Connected Layer(ODP.NET)

DisconnectedLayer

Oracle CommandBuilder

DataLayer

DataAdapter

OracleTransaction

OracleCommand

OracleConnection

OracleDataReader

Oracle

CommandBuilder

OFFLINE!!!

Unterstützungdurch

DB Change Notification

Page 35: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Key ODP.NET Features (1)

• Connection Pooling• RAC- und Data Guard Pooling-Optionen• Performance Counter

• Komplette PL/SQL-Unterstützung• Packaged, Non-Packaged, Anonymous, Autonomous• Packaged, Non-Packaged, Anonymous, Autonomous• Batch SQL-Verarbeitung mit anonymen PL/SQL

• Native Oracle-Datentypen• REF Cursors, LOBs, XMLType, TimeStamp usw.• Safe Type Mapping mit .NET Datentypen• Oracle-Datentypen im DataSet

• OracleDataAdapter.ReturnProviderSpecificTypes = true

Page 36: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Key ODP.NET Features (2)

• Transactionen• Enterprise Services

• Oracle Services for MTS (OraMTS) bei verteilten (distributed) Transaktionen einsetzen

• Local (Implicit und Explicit)• Savepoints• Savepoints

• Parameters• PL/SQL Associative Array-Datentyp• LOBs und SecureFiles

• Pre-Fetch oder Defer LOB-Abfragen möglich

Page 37: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Key ODP.NET Features (3)

• XML• XMLType Datentyp• XML aus DB abfragen und speichern

• Relational und Object-relational• Interoperabilität mit MS XML APIs (z.B. XmlReader)• Unterstützt XSLT, XPATH und XML Schema• Unterstützt XSLT, XPATH und XML Schema

• RAC• Automatic Load Balancing • Automatische Bereinigung von “Dead” Connections

• Data Guard• Automatische Bereinigung von “Dead” Connections

Page 38: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Key ODP.NET Features (4)

• Database Change Notification• Performance Tuning

• Statement Caching• FetchSize und RowSize

• Security und Auditing• Security und Auditing• Proxy Authentication• End-to-end Tracing mit ClientId, Action und Module

• Deployment• Oracle Universal Installer – für Einzelplatz-Installation• Xcopy Instant Client – für große Umgebungen

Page 39: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

ODP.NET 11.1.0.7.20 – Was ist neu? (1)

• Performance und Durchsatz• Self-Tuning

• Statement Cache Size wird zur Laufzeit angepaßt• Schnellere Datenabfragen

• beim DataSet und OracleDataReader• Geringerer Speicherbedarf• Keine Codeänderungen notwendig mit neuer ODP.NET Version

• Promotable Transactions• Lokale Transaktionen werden zur Laufzeit zur verteilten

promotet• benötigt Oracle Database 11g und OraMTS 11.1.0.7.20

Page 40: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

ODP.NET 11.1.0.7.20 – Was ist neu? (2)

• Messaging• Oracle Streams Advanced Queuing API

• .NET Messaging Anwendungen mit der integrierten Oracle Database Queuing-Technologie aufbauen

• High Availability Event Notification und Callback• High Availability Event Notification und Callback• Event Handler einsetzen, die auf geänderten DB-Status reagieren

• Code Access Security• Imperative und Declarative Oracle Security anwenden

• Database Startup und Shutdown programmieren

Page 41: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Callbacks für HA Event Notifications

Page 42: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Neu bei ODP.NET 11.1.7.0.20 (4)

• Listener.ora für Remote Startup – DB bekanntmachenSID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = CLRExtProc)

(ORACLE_HOME = C:\oracle\product\11.1.0\db_1)

(PROGRAM = extproc)

(ENVS = "EXTPROC_DLLS=ONLY:C:\oracle\product\11.1.0 \db_1\bin\oraclr11.dll")

)

(SID_DESC =

(GLOBAL_DBNAME = orcl)(GLOBAL_DBNAME = orcl)

(ORACLE_HOME = C:\oracle\product\11.1.0\db_1)

(SID_NAME = orcl)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = MARKUS-PC)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

)

Page 43: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

DEMODEMOEinfache C#/VB-Anwendung mit

ODP.NET

Page 44: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

DEMOOracle Database Change Notification

DEMO

Page 45: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Typisches End-User Szenario

1. User A: Connect zu DB zur Abfrage Tabelle X2. User A: Cached Daten in der Mid-Tier/Client

(z.B. DataSet)• Gibt Connection an Connection-Pool zurück, um

Ressourcen zu sparenRessourcen zu sparen

3. User B: Connect zur DB und modifiziert Daten in Table X

User A nutzt jetzt inkorrekte Daten

Page 46: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

1. (grant change notification to username;)2. Wenn Kommando ausgeführt wird, wird Notification

Registrierung (NR) in DB erzeugt3. ODP.NET startet den Application Listener mit der

Notification Registrierung (NR)

DB Change NotificationAblauf

Notification Registrierung (NR)4. Wenn Änderung eintritt, sendet DB-Server

Benachrichtigung an Client5. Client führt Event Handler aus

Page 47: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Change Notification Beispiel

OracleCommand Data Dictionary

Execute()Execute()

Notification RequestEMP

Data Change

NotificationQueue

Application

Listener

Client Database

OracleDependencyOnChange

Add DependencyAdd Dependency

Notification Request

Page 48: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Unterstützte Abfragetypen

• Unterstützt alle Abfragetypen, wie…• Views• Joins• Stored Procedure Queries• REF Cursor

• …ausgenommen Abfragen mit…• Fixed Tables der Fixed Views (z.B. X$, V$)• DBlinks innerhalb• Materialized Views

Page 49: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Zurückgelieferte Information aus Change Notification

• Namen des modifizierten Objekts und Schema-Name• Das DB-Event das Notification verursachte

• INSERT, UPDATE, DELETE, ALTER TABLE, oder DROP TABLE

• Globale Events, wie STARTUP und SHUTDOWN• Globale Events, wie STARTUP und SHUTDOWN• Mit RAC wird die Notification geliefert, wenn die erste

Instance startet, oder beim Shutdown der letzten

• RowID der modifizierten Objekt-Row

Page 50: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Konfiguration der Notification Registrierung (NR)

• NR explizit entfernen• OracleDependency.RemoveRegistration

• NR kann nach einiger Zeit ablaufen• OracleCommand.Notification.Timeout

• NR persistent nach erster DB-Änderung• NR persistent nach erster DB-Änderung• OracleCommand.Notification.IsNotifiedOnce = false

Page 51: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

DEMOOracle Streams Advanced Queuing (AQ)

und .NET

mit User Defined Types (UDTs)

DEMO

Page 52: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Client Result Cache (neu in Oracle 11g)

• $ sqlplus / as sysdbaSQL> alter system set client_result_cache_size=64M scope=spfile;SQL> startup force

• cmd.CommandText = "select /*+ result_cache */ first_name, last_name from employees";"select /*+ result_cache */ first_name, last_name from employees";

Page 53: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

DEMOOracle Client Cache mit .NET

DEMO

Page 54: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

DEMOOracle Data Provider for .NET

Performance FeaturesOracleCollectionType.PLSQLAssociativeArray

DEMO

Page 55: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

DEMOOracle Objekte (User Defined Types UDT)

mit ASP.NET Anwendung

DEMO

Page 56: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

DEMOOracle XML Database und .NET

DEMO

Page 57: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

DEMODatenbank Security und .NET

Oracle Virtual Private Database (VPD)

Mandantenfähige Datenbanken

DEMO

Page 58: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

<Insert Picture Here>

Deprecation von System.Data.OracleClient

Was ist bei der Umstellung Was ist bei der Umstellung auf ODP.NET zu beachten?

Page 59: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

ODP.NET - Oracle managed Provider

Zwei Namensräume:• Oracle.DataAccess.Client• Oracle.DataAccess.Types

Assembly (Referenz): Assembly (Referenz): • Oracle.DataAccess.dll

Page 60: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

.NET Framework - Oracle managed Provider

Ein Namensraum:• System.Data.OracleClient

Assembly (Referenz): • System.Data.OracleClient.dll• System.Data.OracleClient.dll

Page 61: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

OracleCommand - ODP.NET vs. .NET-Framework

Page 62: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

ODP.NET vs. Microsoft OracleClientPerformance

Page 63: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

ODP.NET vs. Microsoft OracleClientSecurity

High Availability and Scalability High Availability and Scalability

Page 64: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

ODP.NET vs. Microsoft OracleClientOracle Database Technology

Page 65: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

ODP.NET vs. Microsoft OracleClientEase of Use and Developer Productivity

Page 66: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

ODP.NET vs. Microsoft OracleClientSchritte

• Im Projekt Referenz hinzufügen Oracle.DataAccess• ODP.NET Namespace hinzufügen

C# using Oracle.DataAccess.Client;VB Imports Oracle.DataAccess.Client

• und Microsoft OracleClient Namespace löschen (auskommentieren)C# //using System.Data.OracleClient;VB ‘Imports System.Data.OracleClient

• Ggf. Namespace Oracle.DataAccess.Types hinzufügen (wenn ODP.NET • Ggf. Namespace Oracle.DataAccess.Types hinzufügen (wenn ODP.NET spezifischen Datentypen verwendet werden)C# using Oracle.DataAccess.Types;VB Imports Oracle.DataAccess.Types

• Connection String anpassen• Integrated Security (MS) nach “User Id=/” (bei OS Authentifizierung)• Unicode ggf. Herausnehmen, ODP.NET arbeitet immer mit Unicode

• Parameter Binding by Name• Microsoft OracleClient und ODP.NET unterstützen “colon to bind/bind by position” und “bind by name”

Parameter• ODP.NET standardmäßig “bind by position”• MS OracleClient standardmäßig “bind by name”• C#/VB OracleCommand.BindByName=true; (um MS Verhalten zu erhalten)•

Page 67: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

<Insert Picture Here>

Oracle Providers for ASP.NET

Page 68: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Oracle Providers for ASP.NET

• Pre-Built Services zum Speichern des Website Status in Oracle• Services für häufig benutzte Website Information• Z.B. user info, user roles, shopping cart

• Leicht zu erlernen• Basieren auf Standard ASP.NET Provider APIs und • Basieren auf Standard ASP.NET Provider APIs und

Schema• Erben von den .NET Framework 2.0 Basis Klassen• Kompatibel mit den ASP.NET Service Klassen• Keine “propriätären” Erweiterungen in den Oracle ASP.NET

Providern

Page 69: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Oracle Providers for ASP.NET

• Nahtlose Integration mit den ASP.NET Services und Controls• Referenz auf spezifischen Provider unnötig• Hoher Abstraktionslevel: Services und Control basierte

Programmierung

• Leichtes Umschalten von SQL Server auf Oracle• Leichtes Umschalten von SQL Server auf Oracle• Konfigurationsdatei bestimmt die Data Source

• Leicht zu installieren und zu verwalten• Über IIS oder Website Admin Tool

Page 70: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Oracle Providers for ASP.NET

IIS

ASP.NET Controls

ASP.NET Services

Oracle Providers for ASP.NET

ODP.NET

Page 71: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Verfügbare Provider

• Oracle Providers for ASP.NET Komponenten• Membership Provider • Role Provider• Profile Provider• Session State Provider• Site Map Provider• Site Map Provider• Web Parts Personalization Provider• Web Event Provider• Cache Dependency Provider

• Administratoren den/die Provider aus• Die meisten Provider sind voneinander unabhängig

Page 72: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Web.config anpassen

1

2

Page 73: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Beispiel: Warenkorb/SessionState

2

1

3

Zweimal GolfBag anklicken

Page 74: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

SessionState im SQL Developer

Page 75: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

http://otn.oracle.com/dotnet

Page 76: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

ODAC 11g = ODT + ODP.NET + Providers for ASP + DB Extensions + OLE DB + OO4O + Services for MTS + ODBC

Page 77: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Artikelserie im dot.net-magazin

Page 78: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

Oracle11g für Windows und .NETOracle11g für Windows und .NETOracle11g für Windows und .NETOracle11g für Windows und .NET

InformationenInformationenInformationenInformationen

www.lehmanns.dewww.lehmanns.dewww.lehmanns.dewww.lehmanns.dewww.amazon.dewww.amazon.dewww.amazon.dewww.amazon.de

Oracle Community WebsiteOracle Community WebsiteOracle Community WebsiteOracle Community Websitehttp://www.oracle.com/global/de/community/platform/index.htmlhttp://www.oracle.com/global/de/community/platform/index.htmlhttp://www.oracle.com/global/de/community/platform/index.htmlhttp://www.oracle.com/global/de/community/platform/index.htmlwww.oracle.de www.oracle.de www.oracle.de www.oracle.de ���� AnwendergruppenAnwendergruppenAnwendergruppenAnwendergruppen ���� Windows und .NETWindows und .NETWindows und .NETWindows und .NET

Oracle Technology NetworkOracle Technology NetworkOracle Technology NetworkOracle Technology Networkhttp://www.oracle.com/technology/dotnethttp://www.oracle.com/technology/dotnethttp://www.oracle.com/technology/dotnethttp://www.oracle.com/technology/dotnet

Page 79: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter

The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions.relied upon in making purchasing decisions.The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

Page 80: DOAG Konferenz 2009, “Oracle und Microsoft .NET” · • Automatic Code Generation – WinForm und ASP.NET • Für die Erstellung von einfachen Anwendungen. ... • Integrierter