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 Introduction Développement Cycle de vie Tests Déploiement Conclusion
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/TFS Syntaxe Compilation Intellisense Refactoring Analyse de code Contrôle de source Tests unitaires Comparaison de code Historique Debug Déploiement Build SQL avec SSMS Syntaxe Intellisense Debug Contrôleur de source
7 2 modèles de développement C# Programmation déclarative Recompilation complète SQL Scripts 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/TFS Syntaxe Compilation Intellisense Refactoring Analyse de code Tests unitaires Comparaison de code Historique Debug Déploiement Build SQL avec SSMS Syntaxe Intellisense Debug
11 Un petit comparatif SQL avec VS/TFS Syntaxe Compilation Intellisense Refactoring Analyse de code Tests unitaires Comparaison de code Historique Debug Déploiement Build
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ées Intellisense Refactoring Code Analysis
19 Cycle de vie
20 Démo Une base vide ça sert à rien
21 Démo La 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) Historique Comparaisons de bases et de projets Build
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’assertions Interfaç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émos Aï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ètent Organisation du travail: une base par équipe, une base par personne Autres types de projets Server Data-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 Portail administration et infrastructure pour informaticiens Portail de ressources technique pour développeurs