2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février –...

37

Transcript of 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février –...

Page 1: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.
Page 2: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

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

Page 3: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

3

Agenda

IntroductionDéveloppementCycle de vieTestsDéploiementConclusion

Page 4: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

4

Introduction

Page 5: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

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)

Page 6: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

6

Un petit comparatif

C# avec VS/TFSSyntaxeCompilationIntellisenseRefactoringAnalyse de codeContrôle de sourceTests unitairesComparaison de codeHistoriqueDebugDéploiementBuild

SQL avec SSMSSyntaxeIntellisenseDebugContrôleur de source

Page 7: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

7

2 modèles de développement

C#Programmation déclarative

Recompilation complète

SQLScripts

Alter

VS

Page 8: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

8

?Comment avoir une expérience de développement proche de C# avec SQL?

Page 9: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

9

Développement

Page 10: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

10

Un petit comparatif

C# avec VS/TFSSyntaxeCompilationIntellisenseRefactoringAnalyse de codeTests unitairesComparaison de codeHistoriqueDebugDéploiementBuild

SQL avec SSMSSyntaxeIntellisenseDebug

Page 11: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

11

Un petit comparatif

SQL avec VS/TFSSyntaxeCompilationIntellisenseRefactoringAnalyse de codeTests unitairesComparaison de codeHistoriqueDebugDéploiementBuild

Page 12: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

12

Développement

• Projets « SQL Server 2008 »• Création de toutes pièces• Reverse engineering d’une base existante

Page 13: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

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

Page 14: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

14

Développement

• Synchronisation des modèles• Database Projet VS 2010• Projet VS 2010 Database• Database Database• Projet VS 2010 Projet VS 2010

Page 15: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

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

Page 16: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

16

Développement

• Refactoring• Suppression des « * » dans les SP, les vues• Noms qualifiés / « Fully Qualified Names »• Renommage de tables, colonnes, procs…

Page 17: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

17

Développement

• Code Analysis

Page 18: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

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

Page 19: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

19

Cycle de vie

Page 20: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

20

DémoUne base vide ça sert à rien

Page 21: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

21

DémoLa base de donnée et l’application évoluent ensemble dans le temps

Page 22: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

22

En résumé

Génération de données (« Data compare », générateurs de données)HistoriqueComparaisons de bases et de projetsBuild

Page 23: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

23

Tests

Page 24: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

24

Tests

• Visual Studio 2010 fournit des Database Unit Tests• Tests unitaires

pour les bases de données

Page 25: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

25

Tests

• Méthodes de validation proposées• Data Checksum• Empty ResultSet• Execution Time• Expected Schema• Non Empty ResultSet• Row Count• Scalar Value

Page 26: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

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

Page 27: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

27

Démo- Création de tests unitaires- Interfaçage avec SQL Server

Page 28: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

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

Page 29: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

29

Déploiement

Page 30: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

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

Page 31: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

31

DémosAïe! Passage en prod!*

* Copyright tout le monde

Page 32: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

32

En résumé

« Schema Compare » pour la génération de script.dbschema et VSDBCMD pour le déploiement sans VS

Page 33: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

33

Conclusion

Page 34: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

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

Page 35: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

35

Questions?

Page 36: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.

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

Page 37: 2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.