Date post: | 04-Apr-2015 |
Category: |
Documents |
Upload: | marin-lecuyer |
View: | 107 times |
Download: | 0 times |
2
Industrialisation des développements sur SQL Server avec Visual Studio 2010
Mardi 8 Février – 17h30
Karim Zegour – Winwise
Michel Perfetti – MVP VS ALM, Winwise
3
Agenda
IntroductionDéveloppementCycle de vieTestsDéploiementConclusion
4
Introduction
5
J’ai un problème de mise en prod….
• 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)
6
Un petit comparatif
C# avec VS/TFSSyntaxeCompilationIntellisenseRefactoringAnalyse de codeContrôle de sourceTests unitairesComparaison de codeHistoriqueDebugDéploiementBuild
SQL avec SSMSSyntaxeIntellisenseDebugContrôleur de source
7
2 modèles de développement
C#Programmation déclarative
Recompilation complète
SQLScripts
Alter
VS
8
?Comment avoir une expérience de développement proche de C# avec SQL?
9
Développement
10
Un petit comparatif
C# avec VS/TFSSyntaxeCompilationIntellisenseRefactoringAnalyse de codeTests unitairesComparaison de codeHistoriqueDebugDéploiementBuild
SQL avec SSMSSyntaxeIntellisenseDebug
11
Un petit comparatif
SQL avec VS/TFSSyntaxeCompilationIntellisenseRefactoringAnalyse de codeTests unitairesComparaison de codeHistoriqueDebugDéploiementBuild
12
Développement
• Projets « SQL Server 2008 »• Création de toutes pièces• Reverse engineering d’une base existante
13
Développement
• Compilation• Les scripts réunis dans un projet sont
compilables au format .dbschema.• 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
14
Développement
• Synchronisation des modèles• Database Projet VS 2010• Projet VS 2010 Database• Database Database• Projet VS 2010 Projet VS 2010
15
Développement
• Intellisense• 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
16
Développement
• Refactoring• Suppression des « * » dans les SP, les vues• Noms qualifiés / « Fully Qualified Names »• Renommage de tables, colonnes, procs…
17
Développement
• Code Analysis
18
En résumé
Les Database Projects apportent les fonctionnalités du développement C# au développement SQL
Notion de compilation avec vérification de la cohérence des donnéesIntellisenseRefactoringCode Analysis
19
Cycle de vie
20
DémoUne base vide ça sert à rien
21
DémoLa base de donnée et l’application évoluent ensemble dans le temps
22
En résumé
Génération de données (« Data compare », générateurs de données)HistoriqueComparaisons de bases et de projetsBuild
23
Tests
24
Tests
• Visual Studio 2010 fournit des Database Unit Tests• Tests unitaires
pour les bases de données
25
Tests
• Méthodes de validation proposées• Data Checksum• Empty ResultSet• Execution Time• Expected Schema• Non Empty ResultSet• Row Count• Scalar Value
26
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
27
Démo- Création de tests unitaires- Interfaçage avec SQL Server
28
En résumé
Visual Studio 2010 propose des tests pour les bases de données
Différents types d’assertionsInterfaçage avec les tests unitaires standards
29
Déploiement
30
Plusieurs scenarii
• L’équipe de dév fournit les scripts• Premier déploiement: script SQL• Génération d’un script différentiel par les
équipes de dév.• L’IT s’occupe de tout et l’IT n’a pas VS!
• Génération d’un script différentiel par l’IT
31
DémosAïe! Passage en prod!*
* Copyright tout le monde
32
En résumé
« Schema Compare » pour la génération de script.dbschema et VSDBCMD pour le déploiement sans VS
33
Conclusion
34
Conclusion
Mise en perspective avec SSMS: les 2 ensemble plutôt que l’un ou l’autre: ils se complètentOrganisation du travail: une base par équipe, une base par personneAutres types de projets
ServerData-tier Application
Paramétrage du projet pour 1 projet plusieurs environnements
35
Questions?
36
MSDN et TechNet : l’essentiel des ressources techniques à portée de clic
http://technet.com http://msdn.com
Portail administration et infrastructure pour informaticiens
Portail de ressources technique pour développeurs