SQLSaturday Paris 2015 SSDT-DB pour les sceptiques! Cédric L. Charlier
SQLSaturday Paris 2015 Merci à nos sponsors…
SQLSaturday Paris 2015 Merci à nos volontaires…
SQLSaturday Paris 2015 Qui est-il? Business Intelligence, Data & Information Architect MVP SQL Server en provenance directe de Belgique Créateur du projet NBi (solution de testing BI - Open-Source) Contributeur sur d’autres projets Open-Source Fondamentalement agile
SQLSaturday Paris 2015 Pourquoi une session sur SSDT-DB? Pas de support pour le refactoring On a déjà Redgate SQL Compare ® On a toujours fait ainsi! …
SQLSaturday Paris 2015 Agenda C’est quoi un DacPac? Refactoring Gérer des variantes d’une db Validation de règles (conventions) Templates et génération automatique de code
SQLSaturday Paris 2015 “Online” ou “… de mon temps …” Maintenir ou générer des scripts ALTER Gestion de versions Comment je saute la version x.y?
SQLSaturday Paris 2015 Modèle déclaratif Modèle dans son stade final T-SQL géré comme autre codes DacPAC ~== dll
SQLSaturday Paris 2015 Démo sur … DacPac
SQLSaturday Paris 2015 Détection de drifts
SQLSaturday Paris 2015 SSMS ou ligne de commande
SQLSaturday Paris 2015 Passage vers (plus) d’agilité CodeBuildTestReleaseDeploy Continuous Integration Continuous Delivery Continuous Deployment
SQLSaturday Paris 2015 Renommer un champ CREATE TABLE Customer ( CustomerId int not null, CustomerCode char(8), DisplayName varchar(120) ) INSERT INTO Customer ( CustomerCode, DisplayName ) VALUES ( … ) Renommage CustomerRef Propagation automatique
SQLSaturday Paris 2015 La fonctionnalité existe!
SQLSaturday Paris 2015 Démo de refactorisation
SQLSaturday Paris 2015 Autres actions de refactoring Renommer Déplacer un objet vers un autre schema Remplacer “*” par le nom effectif des champs Indiquer le nom complet des champs
SQLSaturday Paris 2015 C’est quoi une variante? Deux dbs quasiment identiques … avec des petits ajouts
SQLSaturday Paris 2015 Database unique Variante de base de données Extension du modèle Monthly Order Daily Order Customer Country Modèle principal Table-Valued Function
SQLSaturday Paris 2015 Démo de variantes
SQLSaturday Paris 2015 Comment faire?
SQLSaturday Paris 2015 Règles ou conventions de développement Le grand schtroumpf a dit que … Design, Naming, Performance
SQLSaturday Paris 2015 C’est quoi des règles ou des conventions? Design: Toutes les tables doivent avoir au moins un index Pas de colonne de type CHAR avec plus de 10 positions Naming: Pas de table se terminant par “view” Les colonnes IDENTITY doivent terminer par “Id” Model: Pas plus de 50 roles dans la base de données
SQLSaturday Paris 2015 A l’attaque … Un peu de C# API faiblement couplée de SSDT TSqlRule, TSqlModel GetReferenced GetReferencing
SQLSaturday Paris 2015 Démo de refactorisation
SQLSaturday Paris 2015 … Sur le champs de bataille Références à SSDT Copier les dlls vers “extension” Debug via Start autre VS Activer “Rules check”
SQLSaturday Paris 2015 Templates T-SQL Pas de répétition de code “identique” Pas de code “dynamique” Maintenance facilitée
SQLSaturday Paris 2015 Comment cela fonctionne? Mixte entre code C# et T-SQL Héritage possible A la compilation du modèle Chaque fichier “tt” est transformé en un fichier “sql” Le fichier “sql” fait partie du modèle.
SQLSaturday Paris 2015 T4 Item fourni avec SSDT-DB Standard sur le marché (C#, ASP.Net, …) Intégré avec l’API de SSDT-DB Ajouter les références nécessaires Utiliser la variable TSqlModel Model Le modèle est celui qui est compilé pas le modèle live!
SQLSaturday Paris 2015 Exemples d’utilisation Stored procedure Insert/Update Search queries (many parameters) Chargement de tables “fixes” à partir de fichier TXT
SQLSaturday Paris 2015 Demo Template MERGE VALUES (non-identity-fields) ON unique-constraint-fields INSERT non-identity-fields UPDATE non-unique-constraint-fields
SQLSaturday Paris 2015 Encore plus loin … Build, deploy contributor Continuous integration Custom Unit Tests
SQLSaturday Paris 2015 Bénéfices de SSDT-DB Intégré à Visual Studio Source-control Build-check de la solution Build, Intégration ou déploiement continu Templates pour générer du code T-SQL L’API de SSDT Points d’extensibilité
SQLSaturday Paris 2015 …Et en plus on peut gagner des cadeaux