Industrialisation des Dev. Avec SQL SERVER & VS/TFS Présent et futur

Slides:



Advertisements
Présentations similaires
Linq, fonctionnement et architecture
Advertisements

« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
19 septembre 2006 Tendances Logicielles IBM Rational Data Architect Un outil complet de modélisation et de conception pour SGBD Isabelle Claverie-Berge.
Dimensions et Java : Plug-in, Build et EAR Elisabeth BAUDOIN STIME CLUB UTILISATEURS ALMA DU 23 NOVEMBRE 2010.
SQL - Subtilités.
Autorisations Utilisation eCATT
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Les Ateliers de Génie Logiciel
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Développement d’applications web
Gestion du cycle de vie des applications Lotus Notes Ady Makombo Directeur Teamstudio France
Mitsuru FURUTA Relations techniques développeurs Microsoft France
Contrôles d'accès aux données
PostGIS – Création d'une base spatiale
Développement Rapide dApplications Web avec.NET « Mon premier site »
Juin 2013 – Query memory grants
Configuration de Windows Server 2008 Active Directory
L’utilisation des bases de données
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
SYSTEME DE GESTION DE BASES DE DONNEES
Connecteur Team Foundation Server Project Server
SQL Server et PowerShell
Développer en C avec Eclipse Introduction Création d'un projet Ajout de fichiers Compilation Exécution Utiliser le débogueur Département dinformatique.
SQL: Contraintes et Triggers
Création de bases de données
Les concepts et les méthodes des bases de données
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 SQL jointure PHILIPPE BANCQUART.
•Présentation de Team Edition for Database Professionals •La méthodologie •Etude de cas.
Entity Framework 4 Mitsuru FURUTA Relations techniques développeurs
2 Industrialisation des développements sur SQL Server avec Visual Studio 2010 Mardi 8 Février – 17h30 Karim Zegour – Winwise Michel Perfetti – MVP VS.
1 journée, 5 sessions, 1 réalisation.NET Enterprise Realization Day.
Azure – Outils et bonnes pratiques
Introduction.
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Université de Sherbrooke
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
Cours techonologies .NET
Créer des packages.
Module 12 : Implémentation de procédures stockées.
Optimisation de requêtes
La sécurité dans SQL Server 2005
05/02/98WEB ESNIG Modèle logique de données Oracle Designer/2000 & Oracle Web Server.
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Module 4 : Implémentation de l'intégrité des données.
Module 13 : Implémentation de déclencheurs. Vue d'ensemble Présentation des déclencheurs Définition de déclencheurs Exemples de déclencheurs Performances.
2 TFS Basic, en route vers L’ALM 08/02/2011 Alain MartyBenoit Laut ConsultantMVP ALM BewiseBewise.
 Formulaires HTML : traiter les entrées utilisateur
21/04/2015© Robert Godin. Tous droits réservés.1 6Gestion des contraintes d’intégrité en SQL n Contrainte d'intégrité statique – respectée pour chacun.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
22 Lag110 : Le développement SharePoint 2010 avec Visual Studio 2010 Mardi 9 février 2010 Frédéric Wickert Partner Technical Specialist Microsoft.
Création et Gestion de Tables
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
4 Copyright © Oracle Corporation, Tous droits réservés. Gérer les sous-programmes.
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
Structured Query Language 1/34. SQL Types de données Langage de Définition de Données (LDD) Langage de Manipulation de Données (LDM) Langage de Contrôle.
Les bases de données Séance 8 Jointures.
Le Langage de Manipulation de Données LMD. 2 Les ordres SQL de manipulation INSERT –Insertion (ajout) de ligne(s) dans une table –Utiliser SQL*LOAD pour.
#JSS2013 Les journées SQL Server 2013 Un événement organisé par GUSS.
Les vues, indexes, séquences.  Qu’est ce qu’une vue 1. Une vue est une vision partielle ou particulière des données d'une ou plusieurs tables de la base.
Le Langage de Manipulation de Données LMD Module 6.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
SQLSaturday Paris 2015 SSDT-DB pour les sceptiques! Cédric L. Charlier.
Transcription de la présentation:

Industrialisation des Dev. Avec SQL SERVER & VS/TFS Présent et futur Michel Perfetti – MVP Visual Studio ALM – Winwise [Twitter] @miiitch [Blog] http://www.buildmeimfamous.net

Agenda Il était une fois, une procédure stockée Ça n’arrive pas qu’aux autres Pourquoi cela ne peut pas marcher comme cela Industrialisation avec VS/TFS 2010 Server Server Data Tools (le futur proche)

Il était une foiS… !!! Main Mise en prod MAJ de la MAIN Prod CREATE PROCEDURE sp_getHeavyObjects @minWeight decimal(8,2) AS BEGIN SET NOCOUNT ON; SELECT * FROM dbo.Product WHERE Weight > @minWeight END ALTER PROCEDURE sp_getHeavyObjects @minWeight decimal(8,2) AS BEGIN SET NOCOUNT ON; SELECT ProductID, Weight FROM dbo.Product WHERE Weight > @minWeight END !!! Main Mise en prod MAJ de la MAIN Prod ALTER PROCEDURE [dbo].[sp_getHeavyObjects] @minWeight decimal(8,2) AS BEGIN SET NOCOUNT ON; SELECT TOP(10) * FROM dbo.Product WHERE Weight > @minWeight ORDER BY Weight DESC END

Ca n’arrive pas qu’aux autres… « Toute ressemblance avec une situation existante n’est pas vraiment fortuite »

Ca n’arrive pas qu’aux autres… 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)

Pourquoi cela ne peut pas marcher comme cela

2 modeles de programmation Déclarative Impérative Tous les langages compilés Pas d’état antérieur à gérer On compile et on remplace Le compilateur vérifie la cohérence Mise à jours par scripts à coups d’ALTER… 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

Industrialisation avec VS/TFS 2010 Présent

Projets « Databases » DBA/QA/…. Equipe de dev 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/….

Developpement

Développement Projets « SQL Server 2005/2008 » « Compilation » Création de toutes pièces Reverse engineering d’une 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 d’ALTER

Développement – SYnchRO. Database  Projet VS 2010 Database  Database Projet VS 2010  Database Projet VS 2010  Projet VS 2010 Synchronisation de données ou de schémas

Développement – SYnchRO. Conséquences: Vous contrôlez les mises à jours Les scripts seront propres (transactions) Vous reprenez le contrôle de vos bases « You’ve got the power !» James Brown

Développement – SYnchRO. 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 n’a 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 - 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

Développement - Refactoring Suppression des « * » dans les SP, les vues Noms qualifiés / « Fully Qualified Names » Renommage de tables, colonnes, procs…: se base sur l’analyse de dépendances à partir du schéma

DEMO

Validation – Analyse statique C’est-à-dire: détection de problèmes via l’analyse 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)

Validation - Tests Data checksum / Expected schema Empty resultset 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

DEMO

Deploiement – 2 scenarii L’équipe de dév (DBA inclus) fournit les scripts Premier déploiement: script SQL Génération d’un script différentiel par l’équipe La prod s’occupe de tout et la prod n’a pas VS! Génération d’un script différentiel par la prod A partir du schéma et de la base courante

DEMO

SQL Server Data TOOLs « Juneau » Le futur

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

Introducing SQL Server Data Tools SSDT SQL Server Database Project 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/CLR SQL Debugging

Bases de données supportées SQL Server 2005 SQL Server 2008 SQL Server 2012 SQL Azure Permet de changer de version par configuration.

DEMO

Pour conclure Les projets Databases: Et l’ALM dans tout ça: Point de synchro entre les « dev » et la base Historisation des modifications Simplifications des mises à jours Et l’ALM 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.

QUESTIONS?

Merci à nos Sponsors Rencontrez les dans l’espace partenaires