La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]

Présentations similaires


Présentation au sujet: "Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]"— Transcription de la présentation:

1 Rejoignez la Communauté

2 INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Blog]http://www.buildmeimfamous.net 2

3 AGENDA Il était une fois, une procédure stockée Ça narrive pas quaux autres Pourquoi cela ne peut pas marcher comme cela Industrialisation avec VS/TFS 2010 Server Server Data Tools (le futur proche) 3

4 IL ÉTAIT UNE FOIS… Main CREATE PROCEDURE decimal(8,2) AS BEGIN SET NOCOUNT ON; SELECT * FROM dbo.Product WHERE Weight END CREATE PROCEDURE decimal(8,2) AS BEGIN SET NOCOUNT ON; SELECT * FROM dbo.Product WHERE Weight END Mise en prod Prod ALTER PROCEDURE decimal(8,2) AS BEGIN SET NOCOUNT ON; SELECT TOP(10) * FROM dbo.Product WHERE Weight ORDER BY Weight DESC END ALTER PROCEDURE decimal(8,2) AS BEGIN SET NOCOUNT ON; SELECT TOP(10) * FROM dbo.Product WHERE Weight ORDER BY Weight DESC END ALTER PROCEDURE decimal(8,2) AS BEGIN SET NOCOUNT ON; SELECT ProductID, Weight FROM dbo.Product WHERE Weight END ALTER PROCEDURE decimal(8,2) AS BEGIN SET NOCOUNT ON; SELECT ProductID, Weight FROM dbo.Product WHERE Weight END MAJ de la MAIN !!!

5 CA NARRIVE PAS QUAUX AUTRES… « Toute ressemblance avec une situation existante nest pas vraiment fortuite » 5

6 CA NARRIVE PAS QUAUX AUTRES… Il manque une proc stoc/table pas à jour Il manque des GO dans les scripts de mise à jour Jai trop de scripts de mise à jour et je ne sais pas dans quel ordre les lancer Jai 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 Cest quoi le script de la prod précédente? Jai écrasé une optim des DBA Jai perdu des grants (drop proc stock/index…) Création avec le mauvais schéma (en fonction du user si schéma par défaut nest pas dbo)

7 POURQUOI CELA NE PEUT PAS MARCHER COMME CELA 7

8 2 MODELES DE PROGRAMMATION Dé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 dALTER… 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

9 INDUSTRIALISATION AVEC VS/TFS 2010 Présent 9

10 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/….

11 DEVELOPPEMENT 11

12 DÉVELOPPEMENT Projets « SQL Server 2005/2008 » Création de toutes pièces Reverse engineering dune 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 dALTER

13 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

14 Conséquences: Vous contrôlez les mises à jours Les scripts seront propres (transactions) DÉVELOPPEMENT – SYNCHRO. Vous reprenez le contrôle de vos bases « Youve got the power !» James Brown

15 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 na 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.

16 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

17 DÉVELOPPEMENT - REFACTORING Suppression des « * » dans les SP, les vues Noms qualifiés / « Fully Qualified Names » Renommage de tables, colonnes, procs…: se base sur lanalyse de dépendances à partir du schéma

18 DEMO 18

19 VALIDATION – ANALYSE STATIQUE Cest-à-dire: détection de problèmes via lanalyse 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)

20 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 dexé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

21 DEMO 21

22 DEPLOIEMENT – 2 SCENARII Léquipe de dév (DBA inclus) fournit les scripts Premier déploiement: script SQL Génération dun script différentiel par léquipe La prod soccupe de tout et la prod na pas VS! Génération dun script différentiel par la prod A partir du schéma et de la base courante

23 DEMO 23

24 SQL SERVER DATA TOOLS « JUNEAU » Le futur 24

25 SSDT= SSMS + VS SQL SERVER EXPRESS + DESIGNERS +… 25

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/CLRSQL Debugging INTRODUCING SQL SERVER DATA TOOLS 26 SQL Server Database Project

27 BASES DE DONNÉES SUPPORTÉES SQL Server 2005 SQL Server 2008 SQL Server 2012 SQL Azure Permet de changer de version par configuration.

28 DEMO 28

29 POUR CONCLURE Les projets Databases: Point de synchro entre les « dev » et la base Historisation des modifications Simplifications des mises à jours Et lALM 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.

30 QUESTIONS? 30

31 Merci à nos Sponsors Rencontrez les dans lespace partenaires

32


Télécharger ppt "Rejoignez la Communauté. INDUSTRIALISATION DES DEV. AVEC SQL SERVER & VS/TFS PRÉSENT ET FUTUR Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter]"

Présentations similaires


Annonces Google