Microsoft Academic Program Datenzugriff mit Framework 2.0 Student Technology Conference 2005.

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping (ORM). Objektmodell - Datenbankmodell.
Advertisements

Transaction Synchronization for XML Data in Client Server Web Applications Stefan Böttcher & Adelhard Türling Universität Paderborn.
PL/SQL - Kurze Einführung -.
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Web-Entwicklung mit ASP.NET 2.0 und Visual Studio 2005 Uwe Baumann Marketing Manager Developer Tools Microsoft Deutschland GmbH Oliver Scheer Developer.
Entwicklung und Einsatz von Smart Client-Anwendungen Jens Häupel Developer Evangelist Microsoft Deutschland GmbH Dirk Primbs.
MSDN TechTalk – März 2002 ADO.NET 1
SQL Server 2005 Übersicht für Entwickler Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH
Ein erster Blick auf ASP.NET 2.0 Whidbey Uwe Baumann Developer Platform & Strategy Group Microsoft Deutschland.
1. 2 Microsoft.NET Überblick Dirk Primbs Technologieberater Developer Platform & Strategy Group Microsoft Deutschland GmbH.
Windows Server 2003 Managment Eric Hellmich
Microsoft Academic Program SQL Server 2005 April CTP Ruprecht Dröge.
Datenzugriff mit ADO.NET
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding.
Dynamische Webseiten Java servlets.
PL/SQL - Programmierung von Programmeinheiten. © Prof. T. Kudraß, HTWK Leipzig Gespeicherte Prozeduren – Eine Prozedur ist ein benannter PL/SQL Block,
Oracle interMedia Audio Vortrag für das Seminar Oracle Zusatzoptionen Chris Haußmann.
JDBC -Java Database Connectivity-. 15./22. April 2004JDBC2 JDBC.... verbindet Java-Programme mit SQL-basierten Datenbanken.. liefert eine generische SQL-API.
Proxy Pattern Vorlesung Design Patterns Sieglinde Heinrich
DVG Verkettete Listen Verkettete Listen. DVG Verkettete Listen 2 Primitive Datentypen Vorteile: –werden direkt vom Prozessor unterstützt.
.NET – Quo Vadis? Dariusz Parys Developer Group Microsoft GmbH.
WebCast: Managed Smart Tags mit VSTO Jens Häupel.NET Technologieberater Microsoft Deutschland GmbH
Marcel Gnoth – Einer für alle – alle für einen! E3 Verteilte Transaktionen mit.NET-Komponenten.
Microsoft Office Forms Server
Entwickeln einer Windows 8 Modern UI Businessapplikation auf der Basis von Dynamics CRM/xRM Christian Haller Marc Sallin isolutions AG isolutions.
Medien zwischen Technologie und Gesellschaft Dozent: Herr Prof. Dr. Manfred Thaller SS 13 Referent: Christian Braun.
VS one Veranstalter: VSone Feb. 08 Folie 1 Copyright by XML-Serialisierung zur Persistierung von Objekten Thomas Schissler
Google App Engine Microsoft Windows Azure
OO implementieren Teil IV Objekte erzeugen. © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt.
Java Performance Tuning Performance Tuning is similar to playing a strategy game but happily you usually get paid for it.
Martin LöfflerMurat Yilmaz Labor Informationstechnologie.
SQL Server Service Broker
Calendar Week 40 Gunnar Beutner. Bug Tracker Hi zusammen, bei der Vorbereitung auf das Meeting ist mir folgende aufgefallen bzw. unklar: - # Ich.
3 Technologien im Wettstreit um Ihre nächste Webanwendung Rainer Worbis Markus Unterauer Entwickler, cubido business solutions gmbh.
Vergleich der verschiedenen kommerziellen Datenbanksysteme
SQL Server 2005 CLR-Integration
3rd Review, Vienna, 16th of April 1999 SIT-MOON ESPRIT Project Nr Siemens AG Österreich Robotiker Technische Universität Wien Politecnico di Milano.
Projekt Alcatraz Java RMI / Spread - Gruppe A4.
Traildevils Mobile Web-App X-Platform Stefan Oderbolz Jürg Hunziker 16. Dezember 2011.
© All rights reserved. Zend Technologies, Inc. Jan Burkl System Engineer, Zend Technologies Zend Server im Cluster.
| Basel Von der SharePoint Taskliste zum gemanagten Project in Project Server Luca Argentiero Solution Specialist Microsoft
The free XML Editor for Windows COOKTOP Semistrukturierte Daten 1 Vortrag Semistrukturierte Daten 1 COOKTOP The free XML-Editor for Windows
ORMapper: NHibernate Henning Eiben
GOLF3000 Datenbankhandling. Einleitung Vorstellung Team Eckdaten des Projekts Technischer Hintergrund Datenbanksystem ERD Datenbankanbindung.
Advanced Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Jan Hentschel Microsoft Expert Student Partner Windows Azure Windows Azure Windows Azure Mobile Services.
Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH.
Dominick Baier Security Consultant thinktecture. 2 Wir unterstützen Software-Entwickler und Architekten bei der Realisierung von.NET- und Web Services-Projekten.
3/28/2017 8:11 PM Visual Studio Tools für Office { Rapid Application Development für Office } Jens Häupel Platform Strategy Manager Microsoft Deutschland.
Dirk Primbs Developer Evangelist Microsoft Deutschland GmbH.
MVVM in Windows 8 und Windows Phone 8
PresenterCompanyContact Windows Azure ASP.NET Web-Anwendungen schnell und zuverlässig bereitstellen.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
Parallel Programming Thread Synchronization. Heute 1. Lösung zu Assignment 2 2. Erstellen und Starten von Threads in Java 3. Das synchronized Schlüsselwort.
Kap 4-1OHO Kap. 4.2 Das Orbix CORBA-System Kurzer überblick zu der CORBA-Implementierung Orbix •Unser Fahrplan: •IDL Verwendungsbeispiel •Zoom-In: CORBA.
XML IV: Cocoon 2.
1 Softwareentwicklung mit.NET Teil 5 Datenzugriff mit ADO.NET Dr. Ralph Zeller.
Client Server Architektur
Template v5 October 12, Copyright © Infor. All Rights Reserved.
Softwaresponsoren Mediasponsoren. Vorstellung KnowledgeCenter Neue Sprachfeautres in VB 9.0 LINQ to SQL in der Praxis.
Compiled Queries: LINQ-Abfragen mit Pegasus-Stiefeln © msg systems ag, August Gordon Breuer IT Consultant & Software Engineer Travel & Logistics.
BASIS - Balanced Scorecards and Strategic Management Information Systems for Public Administrations Björn Niehaves European Research Center for Information.
Office Business Anwendungen mit SharePoint Fabian Moritz | MVP Office SharePoint Server.
Informations-Forum: SAP Interoperabilität
Developer Day Deep Dive into WinRT-Controls: FlipView, ListView, GridView and SemanticZoom Thomas Claudius Huber Principal Consultant, Trivadis AG
Launch ON Global.vi System ID object name classname Services to suscribe Observer Control Ref vi-path Service name Step 1 : Objects register to the Global.vi´s,
SQL Server 2005 CLR Integration Sebastian Weber Microsoft Deutschland GmbH
11 Zugriffskontrolle (Access Control) Ziele Privilegien Rollen GRANT und REVOKE Befehl Privilegien Rollen GRANT und REVOKE Befehl.
 Präsentation transkript:

Microsoft Academic Program Datenzugriff mit Framework 2.0 Student Technology Conference 2005

Microsoft Academic Program Student Technology Conference 2005 Datenzugriff mit Framework 2.0 Dirk Primbs Developer Evangelist Microsoft Deutschland GmbH

Microsoft Academic Program Student Technology Conference 2005 Agenda ADO.NET Revisited Neue Objekte für alle Provider Neu für den Zugriff auf SQL Server

Microsoft Academic Program Student Technology Conference 2005 ADO.NET revisited Managed Provider DataReader Command Connection Sync Controls, Designers, Code-gen, etc DataSet XmlReader XmlText- Reader XmlNode- Reader XSL/T, X-Path, etc XmlData- Document DataAdapter

Microsoft Academic Program Student Technology Conference 2005 Neu in System.Data DataSet auch binär serialisierbar DataTable serialisierbar ProviderBase – Basisobjekte für eigene Provider Providerstatistik ConnectionStringBuilder Providerfactories Schema API …

Microsoft Academic Program Student Technology Conference 2005 Speziell für SQL Server, z.B. MARS Query Notifications Bulk Copy / Bulk Import User Defined SQL Types Paßwort Ändern per API

Microsoft Academic Program Student Technology Conference 2005 Outline SNAC Multiple Active Resultsets (MARS) Dependencies and Notifications on the client Snapshot isolation support Asynchronous Support SqlClient Statistics Bulk Copy

Microsoft Academic Program Student Technology Conference 2005 Client-Side Data Access In System.Data sind drei Arten von Änderungen zu finden: –Features in Kombination mit SQL Server 2005 –Features für die Arbeit mit allen Datenbanken –Erweiterungen des Objektmodells

Microsoft Academic Program Student Technology Conference 2005 SQL NAtive Client (SNAC) SNAC trennt SQL client und MDAC –MDAC gehört zum Betriebssystem und wird von SQL Server benutzt, aber nicht von SQL Server 2005 ausgerollt –SNAC enthält neue OLE DB Provider neue ODBC Treiber –SNAC kann zusätzlich zum bisherigen Treibermodell Snapshot Isolation MARS "max" Data Type UDT und XML Datentypen –System.Data.SqlClient ist nicht von SNAC abhängig

Microsoft Academic Program Student Technology Conference 2005 MARS Vor SQL Server 2005 konnte SQL Server keine mehrfach verwendbaren Verbindungen unterhalten –Pro Verbindung nur ein DataReader –In ADO hat man deswegen einfach mehrere Verbindungen unterhalten Multiple Active Result Sets kann Verbindungen mehrfach einsetzen

Microsoft Academic Program Student Technology Conference 2005 Das Problem... SqlConnection conn = new SqlConnection( "server=.;integrated security=sspi;database=pubs"); SqlCommand cmd = new SqlCommand( "select * from authors",conn); conn.Open(); SqlDataReader rdr = cmd.ExecuteReader(); Console.WriteLine("got first reader"); // zweiter Reader auf der gleichen Verbindung // das wird schiefgehen… cmd.CommandText = "select * from jobs"; SqlDataReader rdr2 = cmd.ExecuteReader(); // hier kommen wir nie an rdr.Read(); rdr2.Read(); Console.WriteLine(rdr2[0]);

Microsoft Academic Program Student Technology Conference 2005 Die Lösung mit MARS // MARS ist in SQL Server 2005 per default verfügbar SqlConnection conn = new SqlConnection( "server=zmv43;integrated security=sspi;database=pubs"); SqlCommand cmd = new SqlCommand("select * from authors",conn); // wir brauchen eine eigene Command-Instanz für das zweite Kommando SqlCommand cmd2 = new SqlCommand("select * from jobs",conn); conn.Open(); SqlDataReader rdr = cmd.ExecuteReader(); // Jetzt klappts auch mit dem zweiten Reader SqlDataReader rdr2 = cmd2.ExecuteReader(); rdr2.Read(); rdr.Read(); Console.WriteLine(rdr[0]); Console.WriteLine(rdr2[0]);

Microsoft Academic Program Student Technology Conference 2005 Dependencies und Notifications Benachrichtigt Benutzer, wenn sich eine Row in der Datenquelle ändert –zum gezielten Erneuern von Daten im Cache –um Grids und Listboxen zu aktualisieren In SQL Server 2005 basieren Notifications auf dem SQL Service Broker Für SQL Server 2000 arbeiten Query Notifications mit Polling auf Systemtabellen

Microsoft Academic Program Student Technology Conference 2005 SqlDependency Kann verwendet werden um SqlCommand-Objekte an Notifications zu binden Feuert ein Event wenn eine Änderung in der Datenbank das Kommando betrifft Current Sales select sum(cost) from dbo.sales insert into sales... Event

Microsoft Academic Program Student Technology Conference 2005 SqlDependency SqlConnection conn = new SqlConnection("connect string"); SqlCommand cmd = new SqlCommand( "Select job_id, job_desc from dbo.jobs",conn); SqlDependency depend = new SqlDependency(cmd); depend.OnChanged += new OnChangedEventHandler(myHandler); SqlDataReader results = cmd.ExecuteReader(); while (results.Read()) // … Code … static void myHandler(object caller, SqlNotificationEventArgs e) { Console.WriteLine(e.Source); Console.WriteLine(e.Type); // … Code … }

Microsoft Academic Program Student Technology Conference 2005 SqlNotificationRequest SqlNotificationRequest arbeitet direkt mit dem Service Broker –Verschickt Nachrichten an dort registrierte Services/Queues Nachrichten müssen selbst bearbeitet werden SqlDependency benutzt intern SqlNotificationRequest

Microsoft Academic Program Student Technology Conference 2005 SqlNotification Request SqlCommand cmd = new SqlCommand( "Select ProductName, UnitPrice from dbo.Products " + "where CategoryID conn); SqlNotificationRequest not = new SqlNotificationRequest(); // Verweis auf den Dienst MyService, der // einer Queue (servqueue) zugewiesen wurde not.Service = "MyService"; not.Id = "someid"; not.Timeout = 0; // Kommando und Notification verbinden cmd.Notification = not; rdr = cmd.ExecuteReader();

Microsoft Academic Program Student Technology Conference 2005 NotificationRequest bearbeiten zu Fuß per Broker DML –Queue der Notification muß ausgelesen werden –Kann evtl. auf einem eigenen Thread warten public void WaitForChanges() { SqlCommand cmd = new SqlCommand( "WAITFOR (RECEIVE TOP 1 message_body from servqueue)", conn); cmd.CommandTimeout = 0; int category = (int)cmd.ExecuteScalar(); }

Microsoft Academic Program Student Technology Conference 2005 Snapshot Isolation SqlConnection conn = new SqlConnection( "connect string"); SqlTransaction tx = null SqlCommand cmd = new SqlCommand( "update jobs set job_desc = 'New job" where job_id = 1", conn, tx); try { conn.Open(); tx = conn.BeginTransaction(IsolationLevel.Snapshot); //... }

Microsoft Academic Program Student Technology Conference 2005 Asynchrone Ausführung Folgt dem IAsync-Pattern im Framework –BeginInvoke() und EndInvoke() –Delegate wird bei Ankunft des Ergebnisses aufgerufen Am Command Objekt können verschiedene Aktionen asynchron angestoßen werden: –Command.BeginExecuteReader –Command.BeginExecuteNonQuery –Command.BeginExecuteXmlReader IAsyncResult kann verwendet werden um Ergebnisse entgegenzunehmen

Microsoft Academic Program Student Technology Conference 2005 Asynchron ExecuteReader aufrufen SqlConnection conn = new SqlConnection( "server=mysvr;integrated security=sspi;database=pubs"); conn.ConnectionString += ";async=true"; conn.Open(); SqlCommand cmd = new SqlCommand("select * from authors", conn); // execute the command asynchronously IAsyncResult ar = cmd.BeginExecuteReader(); // check every 250 ms for result while (!ar.IsCompleted) { Console.Write("."); Thread.Sleep(250); } // harvest results SqlDataReader rdr = cmd.EndExecuteReader(ar);

Microsoft Academic Program Student Technology Conference 2005 Demo

Microsoft Academic Program Student Technology Conference 2005 SqlClient Statistics SQL Client kann Statistiken zur Nutzung des Providers liefern Werden in Form einer Hashtable zurückgegeben

Microsoft Academic Program Student Technology Conference 2005 SqlClient Statistics SqlConnection conn = new SqlConnection( "server=.;integrated security=sspi;database=pubs"); conn.Open(); conn.StatisticsEnabled = true; SqlCommand cmd = new SqlCommand( "select * from authors", conn); SqlDataReader rdr = cmd.ExecuteReader(); Hashtable stats = (Hashtable)conn.RetrieveStatistics(); IDictionaryEnumerator e = stats.GetEnumerator(); while (e.MoveNext()) Console.WriteLine("{0} : {1}", e.Key, e.Value); conn.ResetStatistics();

Microsoft Academic Program Student Technology Conference 2005 Bulk Insert Hilfsklasse zur Verwendung von Bulk Copy Bulk Copy kann große Datenmengen effiezient zum SQL Server übertragen –Kann Daten von DataTable oder IDataReader verwenden –Verwendet das BULK INSERT Kommando // bulk copy mit einem DataReader void DoBulkCopy(IDataReader reader) { SqlBulkCopy bcp = new SqlBulkCopy(connectString); bcp.DestinationTableName = "Customers"; bcp.WriteToServer(reader); }

Microsoft Academic Program Student Technology Conference 2005 Provider Factories Dynamisches Enumerieren durch alle installierten Datenbankprovider –Sind in Machine.Config oder in App.Config eingetragen Dynamische Instanziierung von Factory- Objekten –Alle Haupt-Providerobjekte können dynamisch erzeugt werden

Microsoft Academic Program Student Technology Conference 2005 Schema API Datenbankstruktur ist über Connection.GetSchema() ermittelbar Sehr generische Schnittstelle Nur optional im Provider zu finden, derzeit von SQL Provider und verschiedenen OLEDB Providern unterstützt

Microsoft Academic Program Student Technology Conference 2005 Zusammenfassung ADO.NET 2.0 bringt drei Arten von Neuerungen: –Unterstützung neuer Features in SQL Server –Neuerungen für alle Provider –Verbesserungen am Objektmodell Gemeinsame Providerklassen und Info-APIs machen die dynamische Arbeit mit Datenbanken noch einfacher Viele Änderungen passieren unter der Haube, z.B. Verbesserungen beim Connection Pooling

Microsoft Academic Program Student Technology Conference 2005 Fragen?