SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.

17
SQL Server 2005 .NET Integration Sebastian Weber Sebastian Weber Developer Evangelist Developer Evangelist Microsoft Deutschland GmbH Microsoft Deutschland GmbH

Transcript of SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.

Page 1: SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.

SQL Server 2005.NET IntegrationSQL Server 2005.NET Integration

Sebastian WeberSebastian WeberDeveloper EvangelistDeveloper EvangelistMicrosoft Deutschland GmbHMicrosoft Deutschland GmbH

Page 2: SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.

AgendaAgenda

Übersicht CLR IntegrationÜbersicht CLR Integration

.NET Servercodeentwicklung.NET Servercodeentwicklung

ZusammenfassungZusammenfassung

Page 3: SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.

Was bietet die Was bietet die Integration?Integration? Serverseitige Routinen in C#, VB.NET, Serverseitige Routinen in C#, VB.NET,

……

Stored Procedures, Functions, Triggers, Stored Procedures, Functions, Triggers,

Data Types & AggregatesData Types & Aggregates

Erweitertes SicherheitsmodellErweitertes Sicherheitsmodell

Einheitliche EntwicklungsumgebungEinheitliche Entwicklungsumgebung

PerformancevorteilePerformancevorteile

Page 4: SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.

ImplementierungImplementierung

ImplementierungImplementierungServercodeServercode

Statische Statische Methoden mit Methoden mit „[Attribut]“„[Attribut]“

• Stored Procedures, Stored Procedures, Functions & Functions & TriggersTriggers

• AggregatesAggregates Implementierung Implementierung als Struct mit als Struct mit Attribut Attribut [SqlUserDefinedAggregate[SqlUserDefinedAggregate]]• TypesTypes Implementierung Implementierung als Klasse oder als Klasse oder Struct mit AttributStruct mit Attribut[SqlUserDefinedType][SqlUserDefinedType]

Page 5: SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.

So geht‘s!So geht‘s!

SQL Abfragen: SELECT GetOrderCount(region) FROM order

SQL Abfragen: SELECT GetOrderCount(region) FROM order

VS .NET

Projekt

VS .NET

Projekt

VB,C#,C++ Build

SQL Serve

r

SQL Definitionen: create assembly … create function … create procedure … create trigger …create type …

SQL Definitionen: create assembly … create function … create procedure … create trigger …create type …

Assembly

Page 6: SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.

Integration != IntegrationIntegration != IntegrationHier: SQL 2000 Extended Stored ProceduresHier: SQL 2000 Extended Stored Procedures

ClientClient

SqlServr.exeSqlServr.exe

Daten

Daten

Ext. SPSelect *Ext. SPSelect *

1. Connection

Select *Select *

2. Connection

2. Thread

Abbildung aus A First Look at SQL Server 2005 for Developers, AW

Page 7: SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.

SQL Server 2005SQL Server 2005Beste Integration der Welt!Beste Integration der Welt!

SqlServr.exeSqlServr.exe

Daten

Daten

SqlCommand cmd = ...cmd.ExecuteNonQuery

()

SqlCommand cmd = ...cmd.ExecuteNonQuery

()

Managed Code

Unmanaged Code

PInvoke

Abbildung aus A First Look at SQL Server 2005 for Developers, AW

ClientClient1. Connection

Zugriff auf Ausführungskontext:+ Connections+ Ausgabestrom zum Client+ Trigger-Kontext+ …

Page 8: SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.

SQLCLR ist standardmäßig deaktiviertSQLCLR ist standardmäßig deaktiviert

SQL Zugriffsrechte kontrollieren die SQL Zugriffsrechte kontrollieren die Erstellung von Assemblies und Erstellung von Assemblies und Routinen, sowie die AusführungRoutinen, sowie die Ausführung

Code Access Security (CAS) kontrolliert, Code Access Security (CAS) kontrolliert, was ein Assembly machen darfwas ein Assembly machen darf

SecuritySecurity

Page 9: SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.

SecuritySecurity Die 3 Permission SetsDie 3 Permission Sets

SafeSafe Zugriff auf lokale Daten, eingeschränktes Zugriff auf lokale Daten, eingeschränktes

Programmiermodell (keine Static Member), nur managed Programmiermodell (keine Static Member), nur managed CodeCode

External_accessExternal_access Wie Safe, jedoch Zugriff auf Dateien, Registry, NetzwerkWie Safe, jedoch Zugriff auf Dateien, Registry, Netzwerk

UnsafeUnsafe Voller Zugriff, Unmanaged Code, keine Überprüfungen, Voller Zugriff, Unmanaged Code, keine Überprüfungen,

keine Einschränkungenkeine Einschränkungen

Einstellung wird bei Erstellung Einstellung wird bei Erstellung festgelegtfestgelegtcreate assembly MyAsm from ‘c:\foo.dll’create assembly MyAsm from ‘c:\foo.dll’

with permission_set = safewith permission_set = safe

Page 10: SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.

.NET oder T-SQL?.NET oder T-SQL?

Verwenden Sie .NET Routinen …Verwenden Sie .NET Routinen … … … wenn es mit T-SQL nicht möglich istwenn es mit T-SQL nicht möglich ist … … für aufwendige Rechenoperationenfür aufwendige Rechenoperationen … … um Logik zu implementierenum Logik zu implementieren … … wenn auf wenige Daten zugegriffen wenn auf wenige Daten zugegriffen

wirdwird

Verwenden Sie T-SQL …Verwenden Sie T-SQL … … … bei datenintensiven Abfragenbei datenintensiven Abfragen

Fallweise Unterscheidung notwendig!!Fallweise Unterscheidung notwendig!!

Page 11: SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.

AgendaAgenda

Übersicht CLR IntegrationÜbersicht CLR Integration

.NET Servercodeentwicklung.NET Servercodeentwicklung

ZusammenfassungZusammenfassung

Page 12: SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.

.NET Integration.NET Integration

Page 13: SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.

AgendaAgenda

Übersicht CLR IntegrationÜbersicht CLR Integration

.NET Servercodeentwicklung.NET Servercodeentwicklung

Zusammenfassung

Page 14: SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.

ZusammenfassungZusammenfassung

Implementierung erfolgt in Implementierung erfolgt in gewohnter Umgebung mit gewohnter gewohnter Umgebung mit gewohnter .NET Klassenbibliothek.NET Klassenbibliothek

Integration ermöglicht Zugriff auf den Integration ermöglicht Zugriff auf den AusführungskontextAusführungskontext

Von der CLR-Integration gezielt Von der CLR-Integration gezielt Gebrauch machen, kein Ersatz für T-Gebrauch machen, kein Ersatz für T-SQLSQL Bspw. für die Implementierung von Bspw. für die Implementierung von

Business Logik und rechenintensiven Business Logik und rechenintensiven OperationenOperationen

Page 15: SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.

MSDN Online – Alles für den EntwickleralltagMSDN Online – Alles für den Entwickleralltag Stets auf dem Laufenden mit dem Stets auf dem Laufenden mit dem MSDN NewsletterMSDN Newsletter, , RSS-RSS-

FeedsFeeds sowie personalisierten Infos & Services via sowie personalisierten Infos & Services via MSDN MSDN ConnectionConnection

Technische Informationen über die Technische Informationen über die MSDN Developer CenterMSDN Developer Center(z.B. Security), (z.B. Security), MSDN WebcastsMSDN Webcasts und der und der MSDN BibliothekMSDN Bibliothek

Informationen zu Produkten und begleitenden Services wie Informationen zu Produkten und begleitenden Services wie Training & ZertifizierungTraining & Zertifizierung, , technischem Supporttechnischem Support und und DownloadsDownloads

www.microsoft.com/germany/msdnwww.microsoft.com/germany/msdn

www.ineta.orgwww.ineta.org

www.codezone.dewww.codezone.deDas Developer Knowledge Network – Von Das Developer Knowledge Network – Von Entwicklern für Entwickler. Die Meta-Entwicklern für Entwickler. Die Meta-Suchmaschine mit über 10.000 Ressourcen, Suchmaschine mit über 10.000 Ressourcen, RSS-Feeds und vielem mehrRSS-Feeds und vielem mehr

INETA User GroupsINETA User Groups – Treffen Sie – Treffen Sie Gleichgesinnte in einer der mehr als 40 Gleichgesinnte in einer der mehr als 40 bundesweit vertretenen INETA User Groups mit bundesweit vertretenen INETA User Groups mit über 4.500 Mitgliedernüber 4.500 Mitgliedern

Ressourcen für Ihren ErfolgRessourcen für Ihren ErfolgVon Microsoft und den CommunitiesVon Microsoft und den Communities

Page 16: SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.

Vielen Dank!Vielen Dank!

Sebastian WeberSebastian [email protected]@microsoft.com

http://sebastianweber.orghttp://sebastianweber.org

Page 17: SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.