Homogénéisez vos développements CRM 2011 en définissant : • Un ensemble de normes et bonnes pratiques de configuration et développement des composants d'une application CRM • Un macro-processus de développement inspiré de Sure Step et articulé autour des trois phases de cadrage, réalisation et livraison d'une solution CRM • Un processus de livraison de solution CRM de livraison adapté aux trois principaux scénarios que représentent la livraison d'une version majeure, mineure ou le support d'une version d'application CRM • Une instrumentation de l'environnement de développement permettant le contrôle de code source et l'automatisation des processus de génération et livraison de solution CRM
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
5. 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
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 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
11. Exploitation de la progression des
développements
Démonstration
Développement
14. 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
15. 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
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
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
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 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
35. 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
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
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