SQL Server 2005 CLR-Integration Jörg Neumann RESCO GmbH Hamburg
Jörg Neumann IT-Consultant bei der RESCO GmbH in Hamburg. Hält Schulungen und Coachings zum SQL Server 2005 Schreibt für verschiedene Fachzeitschriften Schreibt an einem Buch über den SQL Server 2005 Hält Vorträge auf Entwicklerkonferenzen Schwerpunkte: SQL Server Smart Clients Visual Studio Extensibility Links zu weiterführenden Artikeln und Büchern finden Sie am Ende der Slides. Kontakt: Joerg.Neumann@RESCO.de
Agenda Warum CLR-Integration? Details zur Integration CLR-Datenbankobjekte erstellen Serverseitiger Zugriff mit ADO.NET
Agenda Warum CLR-Integration? Details zur Integration CLR-Datenbankobjekte erstellen Serverseitiger Zugriff mit ADO.NET
Warum CLR-Integration? T-SQL Für mengenorientierten Zugriff ausgelegt Eingeschränkte Funktionalität Eingeschränkte Erweiterbarkeit Eingeschränktes Programmiermodell Maximale Performance
Warum CLR-Integration? Extended Stored Procedures C++, Speichermanagement, Sicherheit Schwer zu debuggen Loop-Back-Connection zur DB
Warum CLR-Integration? SQLCLR Sprach- und Funktionsvielfalt von .NET Speichermanagement Sicherheit Inprocess-Datenzugriff Mit T-SQL kombinierbar
Programmierbare Objekte T-SQL CLR XP COM Prozeduren Funktionen Trigger Datentypen Aggregate
T-SQL vs. SQLCLR T-SQL SQLCLR Bei mengenorientierten Operationen High-Performance-Zugriffe SQLCLR Bei zeilenorientierten Operationen Komplexen Berechnungen Regular Expressions Verschlüsselung Stringmanipulation Externe Zugriffe
Wofür SQLCLR nicht ist Ersatz für T-SQL Serverseitige Datenzugriffsschicht O/R-Mapping mit UDTs Word/Excel/PDF-Generierung Image Processing
Agenda Warum CLR-Integration? Details zur Integration CLR-Datenbankobjekte erstellen Serverseitiger Zugriff mit ADO.NET
SQL Server vs. CLR Speichermanagement Thread-Management Typsystem Sicherheit Verfügbarkeit CLR-Integration muss explizit aktiviert werden
CLR-Erweiterungen in .NET 2.0 Runtime Hosting API Assembly Loading AppDomain Management Thread-Management/Synchronisation Deadlock-Erkennung Security Management Speicherverwaltung
CLR-Integration
Sicherheitsprüfungen Prüfung bei der Installation Prüfung vor der Ausführung Unterstützte Framework-Assemblies: mscorlib.dll system.data.dll system.dll system.xml.dll system.security.dll system.web.services.dll
Agenda Warum CLR-Integration? Details zur Integration CLR-Datenbankobjekte erstellen Serverseitiger Zugriff mit ADO.NET
CLR-Datenbankobjekte erstellen CLR-Methoden werden mit Attributen gekennzeichnet SqlProcedure SqlFunction SqlUserDefinedAggregate SqlUserDefinedType SqlTrigger Enthalten zum Teil auch Laufzeitinformationen Für jede CLR-Methode wird ein Datenbankobjekt erstellt
Funktionen und Assemblies
CLR-Prozedur erstellen Demo CLR-Prozedur erstellen
Agenda Warum CLR-Integration? Details zur Integration CLR-Datenbankobjekte erstellen Serverseitiger Zugriff mit ADO.NET
Serverseitiges ADO.NET Namespace Microsoft.SqlServer.Server Programmiermodell wie auf dem Client SqlConnection SqlDataAdapter SqlCommand Zusätzliche Serverklassen SqlContext SqlPipe TriggerContext DataRecord Zugriff auf die aktive Session Zugriff auf den Ausgabestrom Zugriff auf Trigger-Daten Definition einer Datenzeile
Datenbankverbindung herstellen SqlConnection SqlConnection connection = new SqlConnection("Context Connection = true"); GDI+ wurde für das sprachunabhängige Text-Rendering entwickelt GDI+ nutzt so gut wie keine Hardware-Beschleuniger Double-Buffering-Demo
SqlPipe Daten an den Aufrufer senden Send(), ExecuteAndSend() SendResultsStart(), …Row(), …End()
Demo Datenzugriff
Fragen?
Ressourcen Bücher Artikel Links A First Look at SQL Server 2005 for Developers Bob Beauchemin u.a., Addison-Wesley, ISBN: 0321180593 Artikel Using CLR Integration in SQL Server 2005 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql90/html/sqlclrguidance.asp Links SQL Server 2005 Developer Center http://www.msdn.microsoft.com/SQL/2005/ Virtual Lab: SQL Server 2005 SQL CLR Integration http://msdn.microsoft.com/virtuallabs/sql/default.aspx/