Industrialisation des
                                développements CRM
                                        Aymeric Mouillé, Philippe Laloum
                                           Consultants Microsoft Services
                                                         Tanguy Touzard
                                                  Consultant CRM Javista



                                   http://blogs.msdn.com/b/frmcsdynamics/
                                              http://mscrmtools.blogspot.fr/

                Développement
Développement
Agenda




Développement
Développement
Sommaire




Développement
Phases du cycle de vie
     Cadrage                    Réalisation             Livraison
         • Définition du          • Définition des        • Déploiement de
           périmètre                spécifications          la solution
           fonctionnel              fonctionnelles et     • Transfert
         • Définition de            techniques              d’exploitation de
           l’architecture         • Implémentation          la solution
           générale                 de la solution
         • Chiffrage par          • Test de la
           analyse d’écart          solution
         • Planning de            • Formation des
           réalisation global       Key Users


Développement
Livrables              • Document d’analyse des processus métier
                Cadrage     • Document d’analyse d’écart
                            • Document d’architecture générale
                            • Spécifications fonctionnelles détaillées
           Conception
                            • Spécifications techniques (d’infrastructure et de solution)
      Configuration et      • Composants de la solution CRM
      programmation         • Tests unitaires
                            • Plan de test UAT
                     Test   • Plan de test d’intégration
                            • Plan de test de performance
                            • Plan de déploiement et d’exploitation
                Livraison   • Plan de retour arrière
                            • Bilan de mise en production


Développement
Jalons d’assurance qualité
                 Revue    • Revue de l’architecture générale d’infrastructure
         d’architecture   • Revue de l’architecture générale de la solution


      Revue de design     • Revue des spécifications fonctionnelles et/ou techniques


             Revue de     • Revue des “customizations” CRM
       configuration et   • Revue de code des “plugins”, “activités de workflows”,
       programmation        JavaScript, Silverlight

                          • Collecte des métriques de performance de fonctionnement
             Revue de     • Optimisation de la configuration d’infrastructure (Web, SQL)
          performance     • Préconisation de remédiation aux problèmes de design et
                            d’implémentation

Développement
Equipe
                                       Responsable
                                                           Développeur
                                        technique

                         Architecte
                                                        « Personnalisateur »
   Directeur de projet                 Responsable
                                       fonctionnel
                                                              Testeur
                                      Responsable des
                                         livraisons




Développement
Définition des tâches             Work Item
                                        Work Item
                                          Work Item
                                            Work Item
                                               Work Item

                       Taches de
                      paramétrage


                                          Work Item
                                           Work Item
                                             Work Item
                                               Work Item         Team
                       Taches de
   Spécifications                                 Work Item    Foundation
                    personnalisation
                                                                 Server




                      Taches de            Work Item
                    développement           Work Item
                                              Work Item
                                                Work Item
                                                   Work Item




Développement
Exploitation de la progression des
     développements
       Team
     Foundation               Work Item
       Server                  Work Item
                                 Work Item
                                   Work Item
                                      Work Item




                                        Indicateurs                                        Reporting


                  Etat (ouvert, clos)                 Charge estimée
                                                                        Tableaux croisés
                                                                                                       Graphiques
                                                                          dynamiques

                   Charge restante                    Charge réalisée




Développement
Exploitation de la progression des
     développements



                Démonstration


Développement
Développement
Sommaire




Développement
Configuration d’une application CRM
                          • Entités
           Modèle de      • Attributs
            données       • Relations
                          • Connexions

             Interface    • Formulaires
            utilisateur   • Vues

                          • Workflows
            Processus     • Dialogs

                          • Divisions
           Modèle de      • Rôles de sécurité
             sécurité     • Profils de sécurité des champs
                          • Equipes


Développement
Programmation d’une application CRM
                                •Xrm.Page
                                •Web resources
        Interface utilisateur   •Evènements de formulaires et champs
                                •Points de terminaison SOAP et REST
                                •Interaction avec applications web externes

                                •Framework d’évènements
                                •Référencement de DLLs
                                •Interface Iplugin
                                •Paramètres d’entrée sortie
                    Plug-ins    •Images
                                •Niveaux d’isolation
                                •Modes d’exécution
                                •Phases
                                •Types de déploiement

                  Processus     •Activités spécifiques de workflow

                                •Configuration XML du ruban
                      Ruban     •Extension JavaScript du ruban

                Plan de site    •Configuration XML du plan de site

Développement
Contrôle de qualité

           Respect des     • Définition des bonnes pratiques
             bonnes        • Passage de certifications
            pratiques      • Revues de code régulières


           Validation du   • Mise en place et exécution de tests unitaires
         fonctionnement    • Automatisation des processus (build)




Développement
Build           Build notification




           Compilation             • Validation du code


          Exécution des            • Validation l’exécution des règles de gestion
          tests unitaires          • Validation de la non régression

         Construction de
                                   • Validation de la cohérence de la solution CRM
         la solution CRM

         Déploiement de
                                   • Validation de l’import de la solution dans CRM
         la solution CRM


Développement
Développement
Sommaire




Développement
Packaging des composants
    Proposition de découpage des solutions pour un gros projet
       Ressources        Processus &                            Rôles de
                                                Rapports                             Principale
          Web              Plugins                              sécurité
    • Ressources Web   • Processus          • Rapports     • Rôles de sécurité   • Entités
                       • Dll de Plug-in                                          • Option Sets
                       • Steps de plugins                                        • Extensions client
                                                                                 • Endpoints Azure
                                                                                 • Tableaux de bord
                                                                                 • Rôles de
                                                                                   connexion
                                                                                 • Templates de
                                                                                   mail
                                                                                 • Templates de
                                                                                   publipostage
                                                                                 • Profils de sécurité
                                                                                   des champs


Développement
Packages et couches (Non gérés)




                         Livre   Ville   Pays            Configuration
                                                        (couche non gérée)
                Solution A
                                           Solution B


Développement
Packages et couches (Gérés)




Développement
Scénarios de livraison




Développement
Livraison d’une version majeure - 1




Développement
Livraison d’une version majeure - 2




Développement
Livraison d’une version majeure - 3




Développement
Livraison d’une version majeure - 4




Développement
Livraison d’une version majeure - 5




Développement
Développement
Sommaire




Développement
Architecture technique


                Organization A


  Developer 1


                                 CRM Server
                Organization A



  Developer 2



                Organization A


  Developer 3




Développement
Architecture technique


                         Virtualization Host                          Virtualization Host


                                                                         CRM Server

                                           CRM Server
                                             Dev 1      Developer 1
    Developer 1                                                       Virtualization Host


                  CRM Server                                             CRM Server
                    Dev 2
                                                                                              CRM Server
                                                        Developer 2                          Central Config
    Developer 2                     CRM Server                        Virtualization Host
                                   Central Config

                                                                         CRM Server
                                                                                            Virtualization Host
                  CRM Server
                                                        Developer 3
    Developer 3     Dev 3




Développement
Dev 1



       VM CRM - Dev 1
                                       Architecture technique choisie
             CRM 2011
             SQL Server
            Visual Studio
             CRM SDK


                                              Team Foundation                CRM
                            Dev 2                      Server               central




             VM CRM - Dev 2



                            Dev n
                             Dev n                              Testeur
                               Dev n                              Testeur
                                                                    Testeur
                                                                      Testeur
             VM CRM - Dev n
              VM CRM - Dev n
                VM CRM - Dev n


Développement
Contrôle de code source d’une solution
    CRM
       Structuration    •   CRM
     des solutions et   •   Solutions
       projets Visual   •   Ressources
              Studio    •   Workflows

     Plan de gestion    • Branche principale
     de branches de
                        • Branche de service de version majeure
     développement
                 TFS    • Branches de service de version de production


Développement
Plan de gestion de branches
                                                                              (M+1).0


                  R       F                         R       F
                  I       I                         I       I       (M-1).m   M.0

                                 Hotfix                         Hotfix
                 (M-1).(m-2)                  (M-1).(m-1)


        Branche de développement des versions majeures
        Branche de service des versions majeures

        Branche de service de la version de production

        Historisation de la branche
Développement
Synchronisation des développements
 CRM    Team Foundation Server
                                             2) Obtention de la dernière
                                             version des sources                                                      Microsoft Dynamics CRM
                                                                                                                         (machine virtuelle)




                                                                              3) Construction de la solution et
                                                                              déploiement sur CRM
         6) Archivage des modifications et
         association du Work Item
                                                                                                            4) Ajout du champ sur le formulaire contact +
                                                                                                            enregistrement + publication
                                                                  Visual Studio
                                                                (machine virtuelle)



  1) Assignation d’un Work Item


            Work Item 1                                  Développeur
     Ajout d’un champ sur le
        formulaire contact



                                                   5) Export de la solution, décomposition et intégration
                                                   à Visual Studio
Développement
Gestion des conflits
                         Visual Studio – Archivage TFS - Gestion de conflit


                            Version serveur                                                                    Version locale
                             <formulaire>                                             <formulaire>
                              <champ id=« champ1 »>                                    <champ id=« champ1 »>
                              <champ id=« champ2 »>                                    <champ id=« champ2 »>
                              <champ id=« test 1»>                                     <champ id=« test 2»>
                             </formulaire>                                            </formulaire>

 Développeur 2



                                                                                                     Conflit
     1           2   3         4         5        6         7                 8   9        10                          11       12
                            Version finale


                             <formulaire>
                              <champ id=« champ1 »>
                              <champ id=« champ2 »>
                              <champ id=« test 1»>
                              <champ id=« test 2»>
                             </formulaire>




 Développeur 1


Développement
Les outils

                               Faciliter les tâches du développeur
     Outils de développement
                               Visual Studio  Dynamics CRM

                               Permettre les échanges TFS – Dynamics CRM – TFS
                               pour s’assurer que les personnalisations et
     Outils de déploiement     développements Dynamics CRM soient sous
                               contrôle de code source




Développement
Outils de développement
     Mise à jour des ressources web
     •   Faciliter l’écriture (Visual Studio)
     •   Faciliter la mise à jour tout en respectant les bonnes pratiques de nommage
         (WebResourceImportTool)




Développement
Outils de développement
     Mise à jour des plugins et activités de workflow
     •   Automatisation du déploiement (PluginImportTool)
                • Librairies de code
                • Fichiers de débogage
     •   Utilisation d’un fichier de configuration commun




Développement
Outils de déploiement
     Dynamics CRM vers Team Foundation Server

     Connexion au contrôleur de code source                  Application TFS (tf.exe)

     Exportation de la solution CRM                          SDK Dynamics CRM

     Décomposition de la solution en répertoires et
                                                             Solution Packager
     fichiers
     Comparaison des fichiers entre le serveur TFS et
                                                             TFS Power Tools (tfpt.exe)
     l’espace de travail local
     Archivage (première passe) et résolution des conflits
                                                             Application TFS (tf.exe)
     Archivage (seconde passe)

Développement
Solution Packager - Décomposition
     Permet de convertir une solution CRM au format zip en une structure de
     répertoires et de fichiers




Développement
Solution Packager - Mapping
     Les éléments de code n’ont pas besoin d’être extraits de la solution
     Ils sont déjà sous contrôle de code source!

     Utilisation d’un fichier de mappage utilisé par SolutionPackager
     On indique à solution packager où se trouvent les éléments de code




Développement
Outils de déploiement
     Team Foundation Server vers Dynamics CRM

     Recomposition de la solution Dynamics CRM   Solution Packager

     Importation de la solution CRM              SDK Dynamics CRM




Développement
Solution Packager - Recomposition


                                                                          Intégration
                              Plug-in
                             assembly
                                                                                                        Solutions.xml

                                                                   .xap                               [content types].xml   Intégration
  Contrôle de code source




                                                                                        Intégration
                                                  compilation

                            Sources C# (plugins, activités       Sources           JavaScript, HTML,
                                   de workflow)                 Silverlight          CSS & Images




Développement
Développement
Donnez votre avis !
                                   Depuis votre smartphone, sur :
                                    http://notes.mstechdays.fr

                    De nombreux lots à gagner toutes les heures !!!
                               Claviers, souris et jeux Microsoft…

                       Merci de nous aider à améliorer les TechDays

                http://notes.mstechdays.fr
Développement
Développeurs                                                         Pros de l’IT
  http://aka.ms/generation-app       Formez-vous en ligne        www.microsoftvirtualacademy.com

     http://aka.ms/evenements-
                  developpeurs     Retrouvez nos évènements      http://aka.ms/itcamps-france


             Les accélérateurs
                                   Faites-vous accompagner
 Windows Azure, Windows Phone,
                                   gratuitement
                    Windows 8


                                    Essayer gratuitement nos     http://aka.ms/telechargements
                                                  solutions IT

          La Dev’Team sur MSDN       Retrouver nos experts       L’IT Team sur TechNet
           http://aka.ms/devteam           Microsoft             http://aka.ms/itteam

Développement

Industrialisation des développements CRM 2011

  • 1.
    Industrialisation des développements CRM Aymeric Mouillé, Philippe Laloum Consultants Microsoft Services Tanguy Touzard Consultant CRM Javista http://blogs.msdn.com/b/frmcsdynamics/ http://mscrmtools.blogspot.fr/ Développement Développement
  • 2.
  • 3.
  • 4.
  • 5.
    Phases du cyclede vie Cadrage Réalisation Livraison • Définition du • Définition des • Déploiement de périmètre spécifications la solution fonctionnel fonctionnelles et • Transfert • Définition de techniques d’exploitation de l’architecture • Implémentation la solution générale de la solution • Chiffrage par • Test de la analyse d’écart solution • Planning de • Formation des réalisation global Key Users Développement
  • 6.
    Livrables • Document d’analyse des processus métier Cadrage • Document d’analyse d’écart • Document d’architecture générale • Spécifications fonctionnelles détaillées Conception • Spécifications techniques (d’infrastructure et de solution) Configuration et • Composants de la solution CRM programmation • Tests unitaires • Plan de test UAT Test • Plan de test d’intégration • Plan de test de performance • Plan de déploiement et d’exploitation Livraison • Plan de retour arrière • Bilan de mise en production Développement
  • 7.
    Jalons d’assurance qualité Revue • Revue de l’architecture générale d’infrastructure d’architecture • Revue de l’architecture générale de la solution Revue de design • Revue des spécifications fonctionnelles et/ou techniques Revue de • Revue des “customizations” CRM configuration et • Revue de code des “plugins”, “activités de workflows”, programmation JavaScript, Silverlight • Collecte des métriques de performance de fonctionnement Revue de • Optimisation de la configuration d’infrastructure (Web, SQL) performance • Préconisation de remédiation aux problèmes de design et d’implémentation Développement
  • 8.
    Equipe Responsable Développeur technique Architecte « Personnalisateur » Directeur de projet Responsable fonctionnel Testeur Responsable des livraisons Développement
  • 9.
    Définition des tâches Work Item Work Item Work Item Work Item Work Item Taches de paramétrage Work Item Work Item Work Item Work Item Team Taches de Spécifications Work Item Foundation personnalisation Server Taches de Work Item développement Work Item Work Item Work Item Work Item Développement
  • 10.
    Exploitation de laprogression des développements Team Foundation Work Item Server Work Item Work Item Work Item Work Item Indicateurs Reporting Etat (ouvert, clos) Charge estimée Tableaux croisés Graphiques dynamiques Charge restante Charge réalisée Développement
  • 11.
    Exploitation de laprogression des développements Démonstration Développement
  • 12.
  • 13.
  • 14.
    Configuration d’une applicationCRM • Entités Modèle de • Attributs données • Relations • Connexions Interface • Formulaires utilisateur • Vues • Workflows Processus • Dialogs • Divisions Modèle de • Rôles de sécurité sécurité • Profils de sécurité des champs • Equipes Développement
  • 15.
    Programmation d’une applicationCRM •Xrm.Page •Web resources Interface utilisateur •Evènements de formulaires et champs •Points de terminaison SOAP et REST •Interaction avec applications web externes •Framework d’évènements •Référencement de DLLs •Interface Iplugin •Paramètres d’entrée sortie Plug-ins •Images •Niveaux d’isolation •Modes d’exécution •Phases •Types de déploiement Processus •Activités spécifiques de workflow •Configuration XML du ruban Ruban •Extension JavaScript du ruban Plan de site •Configuration XML du plan de site Développement
  • 16.
    Contrôle de qualité Respect des • Définition des bonnes pratiques bonnes • Passage de certifications pratiques • Revues de code régulières Validation du • Mise en place et exécution de tests unitaires fonctionnement • Automatisation des processus (build) Développement
  • 17.
    Build Build notification Compilation • Validation du code Exécution des • Validation l’exécution des règles de gestion tests unitaires • Validation de la non régression Construction de • Validation de la cohérence de la solution CRM la solution CRM Déploiement de • Validation de l’import de la solution dans CRM la solution CRM Développement
  • 18.
  • 19.
  • 20.
    Packaging des composants Proposition de découpage des solutions pour un gros projet Ressources Processus & Rôles de Rapports Principale Web Plugins sécurité • Ressources Web • Processus • Rapports • Rôles de sécurité • Entités • Dll de Plug-in • Option Sets • Steps de plugins • Extensions client • Endpoints Azure • Tableaux de bord • Rôles de connexion • Templates de mail • Templates de publipostage • Profils de sécurité des champs Développement
  • 21.
    Packages et couches(Non gérés) Livre Ville Pays Configuration (couche non gérée) Solution A Solution B Développement
  • 22.
    Packages et couches(Gérés) Développement
  • 23.
  • 24.
    Livraison d’une versionmajeure - 1 Développement
  • 25.
    Livraison d’une versionmajeure - 2 Développement
  • 26.
    Livraison d’une versionmajeure - 3 Développement
  • 27.
    Livraison d’une versionmajeure - 4 Développement
  • 28.
    Livraison d’une versionmajeure - 5 Développement
  • 29.
  • 30.
  • 31.
    Architecture technique Organization A Developer 1 CRM Server Organization A Developer 2 Organization A Developer 3 Développement
  • 32.
    Architecture technique Virtualization Host Virtualization Host CRM Server CRM Server Dev 1 Developer 1 Developer 1 Virtualization Host CRM Server CRM Server Dev 2 CRM Server Developer 2 Central Config Developer 2 CRM Server Virtualization Host Central Config CRM Server Virtualization Host CRM Server Developer 3 Developer 3 Dev 3 Développement
  • 33.
    Dev 1 VM CRM - Dev 1 Architecture technique choisie CRM 2011 SQL Server Visual Studio CRM SDK Team Foundation CRM Dev 2 Server central VM CRM - Dev 2 Dev n Dev n Testeur Dev n Testeur Testeur Testeur VM CRM - Dev n VM CRM - Dev n VM CRM - Dev n Développement
  • 34.
    Contrôle de codesource d’une solution CRM Structuration • CRM des solutions et • Solutions projets Visual • Ressources Studio • Workflows Plan de gestion • Branche principale de branches de • Branche de service de version majeure développement TFS • Branches de service de version de production Développement
  • 35.
    Plan de gestionde branches (M+1).0 R F R F I I I I (M-1).m M.0 Hotfix Hotfix (M-1).(m-2) (M-1).(m-1) Branche de développement des versions majeures Branche de service des versions majeures Branche de service de la version de production Historisation de la branche Développement
  • 36.
    Synchronisation des développements CRM Team Foundation Server 2) Obtention de la dernière version des sources Microsoft Dynamics CRM (machine virtuelle) 3) Construction de la solution et déploiement sur CRM 6) Archivage des modifications et association du Work Item 4) Ajout du champ sur le formulaire contact + enregistrement + publication Visual Studio (machine virtuelle) 1) Assignation d’un Work Item Work Item 1 Développeur Ajout d’un champ sur le formulaire contact 5) Export de la solution, décomposition et intégration à Visual Studio Développement
  • 37.
    Gestion des conflits Visual Studio – Archivage TFS - Gestion de conflit Version serveur Version locale <formulaire> <formulaire> <champ id=« champ1 »> <champ id=« champ1 »> <champ id=« champ2 »> <champ id=« champ2 »> <champ id=« test 1»> <champ id=« test 2»> </formulaire> </formulaire> Développeur 2 Conflit 1 2 3 4 5 6 7 8 9 10 11 12 Version finale <formulaire> <champ id=« champ1 »> <champ id=« champ2 »> <champ id=« test 1»> <champ id=« test 2»> </formulaire> Développeur 1 Développement
  • 38.
    Les outils Faciliter les tâches du développeur Outils de développement Visual Studio  Dynamics CRM Permettre les échanges TFS – Dynamics CRM – TFS pour s’assurer que les personnalisations et Outils de déploiement développements Dynamics CRM soient sous contrôle de code source Développement
  • 39.
    Outils de développement Mise à jour des ressources web • Faciliter l’écriture (Visual Studio) • Faciliter la mise à jour tout en respectant les bonnes pratiques de nommage (WebResourceImportTool) Développement
  • 40.
    Outils de développement Mise à jour des plugins et activités de workflow • Automatisation du déploiement (PluginImportTool) • Librairies de code • Fichiers de débogage • Utilisation d’un fichier de configuration commun Développement
  • 41.
    Outils de déploiement Dynamics CRM vers Team Foundation Server Connexion au contrôleur de code source Application TFS (tf.exe) Exportation de la solution CRM SDK Dynamics CRM Décomposition de la solution en répertoires et Solution Packager fichiers Comparaison des fichiers entre le serveur TFS et TFS Power Tools (tfpt.exe) l’espace de travail local Archivage (première passe) et résolution des conflits Application TFS (tf.exe) Archivage (seconde passe) Développement
  • 42.
    Solution Packager -Décomposition Permet de convertir une solution CRM au format zip en une structure de répertoires et de fichiers Développement
  • 43.
    Solution Packager -Mapping Les éléments de code n’ont pas besoin d’être extraits de la solution Ils sont déjà sous contrôle de code source! Utilisation d’un fichier de mappage utilisé par SolutionPackager On indique à solution packager où se trouvent les éléments de code Développement
  • 44.
    Outils de déploiement Team Foundation Server vers Dynamics CRM Recomposition de la solution Dynamics CRM Solution Packager Importation de la solution CRM SDK Dynamics CRM Développement
  • 45.
    Solution Packager -Recomposition Intégration Plug-in assembly Solutions.xml .xap [content types].xml Intégration Contrôle de code source Intégration compilation Sources C# (plugins, activités Sources JavaScript, HTML, de workflow) Silverlight CSS & Images Développement
  • 46.
  • 47.
    Donnez votre avis! Depuis votre smartphone, sur : http://notes.mstechdays.fr De nombreux lots à gagner toutes les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les TechDays http://notes.mstechdays.fr Développement
  • 48.
    Développeurs Pros de l’IT http://aka.ms/generation-app Formez-vous en ligne www.microsoftvirtualacademy.com http://aka.ms/evenements- developpeurs Retrouvez nos évènements http://aka.ms/itcamps-france Les accélérateurs Faites-vous accompagner Windows Azure, Windows Phone, gratuitement Windows 8 Essayer gratuitement nos http://aka.ms/telechargements solutions IT La Dev’Team sur MSDN Retrouver nos experts L’IT Team sur TechNet http://aka.ms/devteam Microsoft http://aka.ms/itteam Développement

Notes de l'éditeur