SQL Server Data Tools SSDT

Werbung
SQL Server Data Tools
Die IDE für Datenbankentwickler
Constantin „Kostja“ Klein
Freudenberg Forschungsdienste SE & Co. KG
[email protected]
http://kostjaklein.wordpress.com
@KostjaKlein
DB Entwicklung ist mühsam
 Fokus auf ALTER scripts
 Abhängigkeiten machen selbst simple
Aktionen komplex
 Fehler werden spät bemerkt
 Schwierig App- und Datenbankversionen
zu harmonisieren
 Unterstützung unterschiedlicher DB
Editionen
SQL Server Data Tools SSDT
 Visual Studio Team Edition for Database
Professionals
 Data Dude
 TSData
 DB Pro
 Visual Studio 2010 SQL Server Database
Projects
 Project Juneau / SQL Server Developer
Tools
Was also ist SSDT?
 Eigentlich reden wir heute nur über SSDT
Database Projects:
SSDT DB ist das Tool für die Unterstützung eines
vollständigen Life Cycle Management für Ihre
Datenbanken über SQL Server Versionen hinweg
Download: http://msdn.microsoft.com/enus/data/hh297027
 SSDT DB ist daher kein Ersatz für BIDS!!
Der Ersatz für BIDS ist SSDT BI und das ist ein
separater Download:
http://www.microsoft.com/enus/download/details.aspx?id=36843
Was also ist SSDT DB?
Work:
• with and on SQL Server and SQL Azure
databases
• from within Visual Studio
• using activities and techniques familiar to
developers
Unser Programm für heute
Connected Development
Demo
Connected Development
SQL Server
Object
Explorer
T-SQL Editor
T-SQL
IntelliSense
Drift Detection
Table Designer
T-SQL
Debugging
Schema
Comparison
View Code
View/Edit Data
Data
Comparison
Error
Information
Project Based Development
Demo
Project Based Development
Go To Definition
Find All References
Refactoring
Source Code Based
F5 Debugging &
Testing with
LocalDB
Source Code
Control
Point-in-time
Snapshots
MSBuild
Visualize Schema
Differences
Headless
Command Line
Tools
T-SQL Static Code
Analysis
SSDT ermöglicht:
 Deklaratives, nicht Script-basiertes Arbeiten
 Model-basierte Entwicklung und Validierung
 mit denselben Tools online und offline
 Das Ermitteln von Schema-Unterschieden für
• inkrementellen Import und Deployment
• Drift Erkennung und Behebung
 Datenbank(schema) und Anwendung unter
Quellcodeverwaltung
 Lokales Testen vor dem Deployment (SQL
Server, Azure SQL DB)
Imperative Versionierung
Deklarativ
 Definition des gewünschten Zustandes in
einem Model
 Füllen des Models mit einer DSL (Domain
Specific Language)
• T-SQL
 Verwendung diese Models als „Blueprint“ für
alle weiteren Operationen
• Deploy/Publish startet mit einem Vergleich des
Zieles mit dem Blueprint (gewünschter Zustand)
• Mit dem Wissen über die Unterschiede wird
automatisch ein Deploymentplan generiert
• Eine Abfolge von SQL Statements wird generiert,
so dass das Zielsystem nach der Ausführung dem
Blueprint gleicht
Deklaratives Deployment
Warum DB Unit Testing?
TDD
Demo
Continuous Deployment / Continuous Integration
Demo
Vorteile von CI
 CI verhindert das „Works on my machine“
syndrom
 Die Änderungen aller Entwickler kommen in
das Deployment und keiner wird abgehängt
 Tests können kontinuierlich laufen und so im
Falle eines Fehlers früher informieren
 Größere Sichtbarkeit des Projektes
 Das Deployment wird unabhängig von den
Entwicklern
 Einfachere Bereitstellung einer Umgebung für
ein neues Teammitglied
Nachteile Hürden von CI
 Es benötigt Zeit den CI Prozess
aufzubauen
 Funktioniert besser mit Tests
 Kurze Buildzeiten helfen – daran
kann/muss man arbeiten
 Verletzter Stolz
CI Produkte
 CruiseControl
 JetBrains = TeamCity
 MSBuild / TFS
 Jenkins
 Redgate CI for databases
Beispielhafter CI Prozess
 Schritt 1: Check-In
 Schritt 2: der CI Prozess wird getriggert
 Schritt 3: CI baut die Solution
 Schritt 4: CI lässt alle Tests laufen
 Schritt 5: CI deployed auf die
Testumgebung
 Schritt 6: CI informiert darüber, dass ein
neuer Build zum Testen bereitsteht
Fragen ???
FAQ
1. Wie sieht es mit Data Generation aus?
Schlecht … hier wird man wohl (zunächst)
auf ein 3rd Party Tool angewiesen bleiben
(z.B. redgate SQL Data Generator )
2. Welche Visual Studio Versionen, welche SQL
Versionen?
VS 2010+ / SQL 2005+
3. Habe ich automatisch die neueste Version?
Nur mit VS 2013 (Professional, Premium,
Ultimate, Express 2013 Web und Windows
Desktop)
Wrap up
Was mir heute wichtig war:
 SSDT DB ist DAS SQL Server Developer
Tooling
 Überblick und Einstieg in die Themen:
• Connected Development
• Project Based Development
 Spass!!
SQLServerBlogs.de
 Informationsquelle für deutschsprachige
SQL Server Inhalte
http://SQLServerBlogs.de
Twitter:
http://www.twitter.com/SQLServerBlogs
Feedback !!!
Speakerinfo: Constantin Klein
Constantin arbeitet als Anwendungsarchitekt und Entwickler
bei der Freudenberg Forschungsdienste SE & Co. KG. Dort
beschäftigt er sich hauptsächlich mit dem Design und der
Entwicklung von Web-Informationssystemen und
Datenbanken. Seit seinem Studium der Wirtschaftsinformatik
gilt sein besonderes Interesse darüber hinaus allen aktuellen
Themen im Microsoft .NET Umfeld, insbesondere aber dem
Thema Softwarearchitektur. Er ist MCSD, MCITP Database
Developer und MCPD Web + Enterprise Application Developer.
Seit 2010 wurde er jährlich von Microsoft zum Most Valuable
Professional (MVP) für SQL Server ernannt. Er engagiert sich
zusätzlich im Vorstand des Just Community e.V. und als Leiter
der .NET User Group Frankfurt.
Sein Blog finden Sie unter
http://kostjaklein.wordpress.com
Ressourcen
 Red Gate Whitepaper
http://www.red-gate.com/products/sqldevelopment/entrypage/ssdt
 Jamie Thomson: Continuous deployment of SSDT
database projects
http://sqlblog.com/blogs/jamie_thomson/archive/2013/0
1/27/continuous-deployment-of-ssdt-database-projectsto-windows-azure-using-team-foundation-service.aspx
 Andrew Fenna: Introduction to SQL Server Data Tools
http://www.sqlservercentral.com/blogs/go-sql-blog-ablog-dedicated-for-sql-server-developersalike/2013/08/07/sql-training-introduction-to-sql-serverdata-tools/
Herunterladen