Moderne Datenbankentwicklung mit Hilfe von SQL Server Data Tools David Schäfer
Vorstellung: HMS Analytical Software Anwendungs-Know-how, u.a. Banken und Versicherungen Pharma- und Medizinprodukte Technologie-Know-how, u.a. Analytics: Microsoft Business Intelligence, SAS, R Anwendungsentwicklung: Microsoft.NET und Java Methoden-Know-how, u.a. Business Intelligence Data Warehousing Software Engineering
Agenda Einführung: Warum? Entwicklung mit SQL Data Tools Continous Integration Möglichkeiten Deployment Weiterentwicklung bestehender Datenbanken
Einführung: Problemstellung Softwaresysteme (und deren Entwicklung) werden immer komplexer Prominente Probleme bei der Entwicklung sind mangelnde Qualität unvollständige Umsetzung der Anforderungen fehlende Termintreue Budgetüberschreitungen mangelnde Wart- und Erweiterbarkeit
Werkzeuge der Softwareentwicklung im Überblick und Zusammenhang
Web-Server Kompilierung Testdurchführung Berechnung von Metriken Integration Erstellung der Dokumentation Setup Veröffentlichung der Ergebnisse CI-Server Holt Codeänderungen Holt/überträgt Codeänderungen Versionsverwaltung Holt/überträgt Codeänderungen Feedback tool Feedback tool Detaillierte Ergebnisse und Reports Entwickler 1 Entwickler 2
DB Entwicklung Herausforderungen Wie setzt man schnell eine Entwicklungsumgebung auf? Wie versioniert man die Datenbank? Wie testet man die Datenbank? Wie aktualisiert man bestehende Datenbanken?
SQL Server DataTools (SSDT) Integriert in Visual Studio Schneller Start der Entwicklung Vielfältige Möglichkeiten & Unterstützung: Intellisense Debugging Unit Tests kostenfrei
SSDT: Hilfestellungen Code Analyse SQL Server Objekt Explorer ( Entwickler benötigt kein SQL Server Management Studio mehr) Verschiedene Zielplattformen möglich
SSDT: Entwicklungsmodel LocalDB SQL Server Data Tools Tabellen Views F5: deployment Tabellen Views Func & Procs Debugging Func & Procs DacPacs Auslesen Definition Deployment SQL Server Tabellen Views Func & Procs
SQL Express LocalDB Datenbank startet und stoppt bei Bedarf Läuft als eigenständiger Prozess Basiert auf SQL Express (gleiche EXE) Nachfolger von SQL Compact SQL Server Compact DLL 4MB (binaries) Basis RDBMS Funktionalität SQL Express LocalDB Eigenständiger Prozess 140MB (Installation) Mehr Funktionen: Stored Procedures Geometry & Geography Datentypen
SSDT: Demo I Projekt auf der grünen Wiese Debuggen von Funktionen Unit Tests Statische Daten
Continuous Integration: Möglichkeiten Integration in Team Foundation Server möglich Build, Deployment und Test über Kommandozeile möglich Einbindung in andere CI Server gegeben
Automatisierung: Parametrisierung Variablen auf Projektebene Zugriff über Publish Profile Zugriff über msbuild möglich
SSDT: Demo II Build von DacPac via msbuild Ausführung der Unit Test via mstest
Data-Tier Application Austausch Container zwischen Entwickler und DBA Framework für Erkennung von notwendigen Änderungen Integrierter Versionsmechanismus
Data-Tier Application (DAC): Terminologie Dac: Name der Technologie DacFx: Name für Framework (DLLs) DacPac: Kontainerdatei (ähnlich ZIP), die das Schema enthält BacPac: Kontainerdatei, die Schema und Daten enthält
Dac Werkzeuge GUI Werkzeuge: SQL Server Management Studio SQL Data Tools Kommandozeilen Werkzeuge Power Shell SQLPackage.exe.Net API
SSDT: Demo III DacPac Deployment DacPac Upgrade
SSDT: bestehende Projekte Unterstützung für bereits bestehende Projekte vorhanden: Projekt auf Basis von DB starten Bearbeitung der DB über SQL Server-Objekt-Explorer
SSDT: Vergleichswerkzeuge Schema- und Datenvergleich möglich Quelle/Ziel: Projektdatei Datenbank DacPac Änderungsskript Erstellung möglich
SSDT: Demo IV Datenbank importieren Schemavergleich Datenvergleich SQL Data Explorer
Weiterführende Links Offizieller Einstieg (Dowloads, Guides): http://msdn.microsoft.com/en-us/data/tools.aspx SQL Server Data Tools Team Blog: http://blogs.msdn.com/b/ssdt/ MSDN Docu: http://msdn.microsoft.com/enus/library/hh272686%28v=vs.103%29.aspx Introduction Guide: http://www.codeproject.com/articles/357905/eva luating-sql-server-data-tools
FRAGEN?
VIELEN DANK!