2 industrialisation des développements sur sql server avec visual studio 2010 mardi 8 février –...

37

Upload: marin-lecuyer

Post on 04-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

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