rejoignez la communauté. industrialisation des dev. avec sql server & vs/tfs prÉsent et futur...
TRANSCRIPT
![Page 2: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/2.jpg)
INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFSPRÉSENT ET FUTUR
Michel Perfetti – MVP Visual Studio ALM – Winwise[Twitter] @miiitch[Blog] http://www.buildmeimfamous.net
2
![Page 3: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/3.jpg)
AGENDA• Il était une fois, une procédure stockée •Ça n’arrive pas qu’aux autres•Pourquoi cela ne peut pas marcher comme cela• Industrialisation avec VS/TFS 2010•Server Server Data Tools (le futur proche)
3
![Page 4: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/4.jpg)
IL ÉTAIT UNE FOIS…
Main
CREATE PROCEDURE sp_getHeavyObjects
@minWeight decimal(8,2)ASBEGIN
SET NOCOUNT ON; SELECT * FROM
dbo.Product WHERE Weight >
@minWeightEND
Mise en prod
Prod
ALTER PROCEDURE [dbo].[sp_getHeavyObjects]
@minWeight decimal(8,2)ASBEGIN
SET NOCOUNT ON;SELECT TOP(10) * FROM
dbo.Product WHERE Weight >
@minWeightORDER BY Weight DESC
END
ALTER PROCEDURE sp_getHeavyObjects
@minWeight decimal(8,2)ASBEGIN
SET NOCOUNT ON; SELECT ProductID, Weight
FROM dbo.Product WHERE Weight > @minWeight
END
MAJ de la MAIN
!!!
![Page 5: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/5.jpg)
CA N’ARRIVE PAS QU’AUX AUTRES…
« Toute ressemblance avec une situation existante n’est pas vraiment fortuite »
5
![Page 6: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/6.jpg)
CA N’ARRIVE PAS QU’AUX AUTRES…
• Il manque une proc stoc/table pas à jour• Il manque des GO dans les scripts de mise à jour• J’ai trop de scripts de mise à jour et je ne sais pas dans quel
ordre les lancer• J’ai un script qui en écrase un autre.• Il y a un script (sur 15) qui ne passe pas!• MINCE il faut faire un rollback!• Il manque des données du référentiel• C’est quoi le script de la prod précédente?• J’ai écrasé une optim des DBA• J’ai perdu des grants (drop proc stock/index…)• Création avec le mauvais schéma (en fonction du user si
schéma par défaut n’est pas dbo)
![Page 7: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/7.jpg)
POURQUOI CELA NE PEUT PAS MARCHER COMME CELA
7
![Page 8: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/8.jpg)
2 MODELES DE PROGRAMMATIONDéclarative
• Tous les langages compilés
• Pas d’état antérieur à gérer
• On compile et on remplace
• Le compilateur vérifie la cohérence
Impérative
• Mise à jours par scripts à coups d’ALTER…
• Il faut tenir compte de l’état antérieur, des données
• Certaines validations au runtime
Il faut un modèle déclaratif pour la base de données
![Page 9: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/9.jpg)
INDUSTRIALISATION AVEC VS/TFS 2010
Présent
9
![Page 10: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/10.jpg)
PROJETS « DATABASES »
Développement
• Syntaxe• Compilation• Intellisense• Refactoring• Historique• Debug
Validation
• Analyse de code
• Tests
Livraison
• Comparaison de code
• Déploiement• Build
Equipe de dev DBA/QA/….
![Page 12: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/12.jpg)
DÉVELOPPEMENT•Projets « SQL Server 2005/2008 »• Création de toutes pièces• Reverse engineering d’une base existante• Supporte SQLCMD• Historisation via TFS• Offline: travaille sur un ensemble de scripts, pas sur une base
•« Compilation »• Les scripts réunis dans un projet sont compilables au
format .dbschema (fichier xml)• Les erreurs de cohérence sont détectées et relevées à la
compilation, sans exécution préalable sur une base de données• Le fichier .dbschema peut être utilisé pour les comparaisons
de schémas• Plus besoins de faire d’ALTER
![Page 13: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/13.jpg)
DÉVELOPPEMENT – SYNCHRO.• Projet VS 2010 Database• Projet VS 2010 Projet VS 2010
• Database Projet VS 2010• Database Database
Synchronisation de données ou de schémas
![Page 14: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/14.jpg)
Conséquences:•Vous contrôlez les mises à jours•Les scripts seront propres (transactions)
DÉVELOPPEMENT – SYNCHRO.
Vous reprenez le contrôle de vos bases
« You’ve got the power !» James Brown
![Page 15: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/15.jpg)
Plusieurs stratégies de développement:
•Une base en local pour chaque développeur (SqlExpress par exemple) le déploiement peut se faire à la compilation• Le développeur n’a pas à se soucier des développements des voisins • Difficile si il y a beaucoup de données nécessaires pour travailler
•Une base de dev pour tous les développeurs : une personne doit être en charge des mises à jours de la base: • pratique si les périmètres des développeurs sont disjoints avec un
cycle de dev rapide • Peut avoir une base qui marche par car il manque un dev pas terminé
DÉVELOPPEMENT – SYNCHRO.
![Page 16: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/16.jpg)
DÉVELOPPEMENT - INTELLISENCE•Saisie prédictive disponible dans SQL Server Management Studio et dans Visual Studio 2010
•Dans VS 2010, sans avoir exécuté les scripts sur une base de données
![Page 17: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/17.jpg)
DÉVELOPPEMENT - REFACTORING•Suppression des « * » dans les SP, les vues•Noms qualifiés / « Fully Qualified Names »•Renommage de tables, colonnes, procs…: se base sur l’analyse de dépendances à partir du schéma
![Page 19: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/19.jpg)
VALIDATION – ANALYSE STATIQUE• C’est-à-dire: détection de problèmes via
l’analyse du résultat de la compilation• Pour vous: un moyen de vous éviter des problèmes de bases sans avoir à lire tout les codes (surtout pour le legacy)
![Page 20: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/20.jpg)
VALIDATION - TESTS• Data checksum / Expected schema• Définition de la « forme » des données attendues: schéma de la
table, checksum des données retournées
• Empty resultset• Absence de données dans un Resultset
• Execution Time• Limite dans la durée d’exécution de la requête
•Non Empty Resultset• Resultset contenant des données
• Row Count• Nombre de lignes
• Scalar Value• Comparaison des valeurs retournées par la requête cellule de
Resultset par cellule
![Page 22: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/22.jpg)
DEPLOIEMENT – 2 SCENARII•L’équipe de dév (DBA inclus) fournit les scripts• Premier déploiement: script SQL• Génération d’un script différentiel par l’équipe
•La prod s’occupe de tout et la prod n’a pas VS!• Génération d’un script différentiel par la prod• A partir du schéma et de la base courante
![Page 24: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/24.jpg)
SQL SERVER DATA TOOLS « JUNEAU »
Le futur
24
![Page 25: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/25.jpg)
SSDT= SSMS + VS 2010 + SQL SERVER EXPRESS + DESIGNERS +…
25
![Page 26: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/26.jpg)
26
SSDT
SQL Server Object
Explorer
SQL Static Code Analysis
Database Publishing
SQL Language Services
Buffered Declarative
Editing
Table Designer
Schema Comparison
Isolated Local Database Runtime
SQL/CLR SQL Debugging
INTRODUCING SQL SERVER DATA TOOLS
SQL Server Database Project
![Page 27: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/27.jpg)
BASES DE DONNÉES SUPPORTÉES•SQL Server 2005•SQL Server 2008•SQL Server 2012•SQL Azure
•Permet de changer de version par configuration.
![Page 29: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/29.jpg)
POUR CONCLURE•Les projets Databases:• Point de synchro entre les « dev » et la base• Historisation des modifications• Simplifications des mises à jours
•Et l’ALM dans tout ça:• A vous de définir votre cycle de livraison• La base est un composant comme un autre• Pourquoi pas maintenir la compatibilité ascendante et livrée en décalé par rapport au « code »?• Découpler la modification de la base de la modification des binaires.
![Page 31: Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]](https://reader035.vdocuments.mx/reader035/viewer/2022062511/551d9d90497959293b8c690e/html5/thumbnails/31.jpg)
Merci à nos Sponsors
Rencontrez les dans l’espace partenaires