SlideShare une entreprise Scribd logo
1  sur  12
SharePoint Framework
Trucs et Astuces
Laurent Sittler
Microsoft 365 Architecte / Consultant
Laurent Sittler
Montréal, 🇨🇦
https://blog.lsonline.fr
@laul0_68
NVM
PACKAGES
PNPM
FRAMEWORK
DOCKER
PATTERNS
CACHE
UNIT TESTS
DOCUMENTATION
https://github.com/nvm-sh/nvm
Node Version Manager
nvm install 10.23.0
nvm use 10.23.0
nvm use
• Changer de version NodeJS simplement
• Changer de version selon l’environnement (Online vs On-Premise)
• Changer de version selon la version de SharePoint Framework
• Utiliser un fichier .nvmrc
Packages NPM
npm outdated
npm uninstall <package>
npm i package@1.0.0 --save
npm i packageDev@1.0.0 --save-dev
• Mettre à jour les packages
• Valider la compatibilité des packages
• Supprimer les packages obsolètes et inutiles
• Installer les packages dans les bonnes dépendances
NVM
PACKAGES
PNPM
FRAMEWORK
DOCKER
PATTERNS
CACHE
UNIT TESTS
DOCUMENTATION
Optimiser les modules NPM
npm i -g pnpm
find ./node_modules | wc -l
rm -R node_modules
pnpm i
find ./node_modules | wc -l
• Diminuer le nombre de fichiers
• Réduire la taille globale de la solution (.sppkg)
• Valider compatibilité (commencer avec NPM et lancer PNPM à la fin)
78478
128334
https://pnpm.js.org
https://github.com/pnpm/pnpm
NVM
PACKAGES
PNPM
FRAMEWORK
DOCKER
PATTERNS
CACHE
UNIT TESTS
DOCUMENTATION
Utiliser des Framework
• Pour faciliter les développements
• Pour ne pas refaire la roue
• Et Contribuer (issue, PR, doc, etc.)
• Pour prendre connaissance des samples SPFx Web Part et Extensions
Web Part
Extension
Microsoft Graph
NVM
PACKAGES
PNPM
FRAMEWORK
DOCKER
PATTERNS
CACHE
UNIT TESTS
DOCUMENTATION
Docker
docker run -td -v $(pwd):/MS365DevBootcamp20 node:10
docker run -td -v %cd%:/MS365DevBootcamp20 node:10
docker exec -it <container-id> bash
cd MS365DevBootcamp20
npm run build
• Tester sur d’autres environnements
• Valider les dépendances
• Tester les Builds
Linux
Windows
NVM
PACKAGES
PNPM
FRAMEWORK
DOCKER
PATTERNS
CACHE
UNIT TESTS
DOCUMENTATION
Utiliser des Design Patterns
public getSPList(i: Guid): Promise<Array<Object>> {
return new Promise((resolve, reject) => {
/* votre code asynchrone */
}).catch((e) => {
reject(e);
});
});
}
public static getInstance(): MyClass {
if (!this._instance) {
this._instance = new MyClass();
}
return this._instance;
}
• 23 Design Patterns
• Favoriser le code totalement asynchrone
• Code orienté objet
• Favoriser React même dans les extensions
https://www.tutorialspoint.com/design_pattern/index.htm
NVM
PACKAGES
PNPM
FRAMEWORK
DOCKER
PATTERNS
CACHE
UNIT TESTS
DOCUMENTATION
Optimiser vos requêtes
return sp.web.getFolderByServerRelativePath(folderRelativeUrl).listItemAllFields.select('id').get().then((r) => { return r.ID; });
const restRequest = siteUrl + '/_api/Web/Lists/GetByTitle(‘ + t + ')/?$select=Id’;
localStorage.setItem(CACHEKEY, JSON.stringify(c));
localStorage.getItem(CACHEKEY);
sessionStorage.setItem(CACHEKEY, JSON.stringify(c));
sessionStorage.getItem(CACHEKEY);
document.cookie
• Choisir
• LocalStorage ou SessionStorage: traitement des données
• Cookies: préférences visiteur
• Expiration adaptée
• Limiter le poids de la réponse ($select)
PnPJs
REST
NVM
PACKAGES
PNPM
FRAMEWORK
DOCKER
PATTERNS
CACHE
UNIT TESTS
DOCUMENTATION
Les Tests Unitaires avec Jest
• Valider la résistance de votre code
• Assurer un niveau de qualité du code
• Optimiser votre code
• Avoir des métriques
• Mettre en place des Mocks
• Automatisation des tests, des builds, des déploiements
NVM
PACKAGES
PNPM
FRAMEWORK
DOCKER
PATTERNS
CACHE
UNIT TESTS
DOCUMENTATION
Une documentation
• Contribution
• Développeurs (prérequis, point à prendre en considération)
• Template (bug, fonctionnalité, PR)
• Fonctionnelle / Usage (ex: wiki, page, doc)
• Typedoc (^0.16.11)
NVM
PACKAGES
PNPM
FRAMEWORK
DOCKER
PATTERNS
CACHE
UNIT TESTS
DOCUMENTATION
FIN
NVM
PACKAGES
PNPM
FRAMEWORK
DOCKER
PATTERNS
CACHE
UNIT TESTS
DOCUMENTATION

Contenu connexe

Tendances

XebiCon'17 : Comment recréer AWS dans votre Data Center - Pablo Lopez et Aur...
XebiCon'17 : Comment recréer AWS dans votre Data Center - Pablo Lopez et Aur...XebiCon'17 : Comment recréer AWS dans votre Data Center - Pablo Lopez et Aur...
XebiCon'17 : Comment recréer AWS dans votre Data Center - Pablo Lopez et Aur...Publicis Sapient Engineering
 
Load test & performance profiling
Load test & performance profilingLoad test & performance profiling
Load test & performance profilingMSDEVMTL
 
Realworld cd pipelines
Realworld cd pipelines Realworld cd pipelines
Realworld cd pipelines TREEPTIK
 
01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière 01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière Cellenza
 
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, LinuxYasmine Amrani
 
Faire une app en JS moderne
Faire une app en JS moderneFaire une app en JS moderne
Faire une app en JS moderneRaphaël Boucher
 
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
[Codeur en seine] Les Pipelines Jenkins dans la vraie vieJean-Philippe Briend
 
[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec Xamarin[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec XamarinCellenza
 
20140227 - injection de dépendances - mug lyon
20140227 - injection de dépendances - mug lyon20140227 - injection de dépendances - mug lyon
20140227 - injection de dépendances - mug lyonClement Bouillier
 
JavaScript dans l'usine logicielle
JavaScript dans l'usine logicielleJavaScript dans l'usine logicielle
JavaScript dans l'usine logiciellejollivetc
 
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vieJean-Philippe Briend
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidThibaud CAVIN
 
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...Publicis Sapient Engineering
 
ASP.NET Web API & Azure API Management
ASP.NET Web API & Azure API ManagementASP.NET Web API & Azure API Management
ASP.NET Web API & Azure API ManagementMicrosoft
 

Tendances (19)

XebiCon'17 : Comment recréer AWS dans votre Data Center - Pablo Lopez et Aur...
XebiCon'17 : Comment recréer AWS dans votre Data Center - Pablo Lopez et Aur...XebiCon'17 : Comment recréer AWS dans votre Data Center - Pablo Lopez et Aur...
XebiCon'17 : Comment recréer AWS dans votre Data Center - Pablo Lopez et Aur...
 
Load test & performance profiling
Load test & performance profilingLoad test & performance profiling
Load test & performance profiling
 
Realworld cd pipelines
Realworld cd pipelines Realworld cd pipelines
Realworld cd pipelines
 
Symposium TFS - DevOps avec Microsoft
Symposium TFS - DevOps avec MicrosoftSymposium TFS - DevOps avec Microsoft
Symposium TFS - DevOps avec Microsoft
 
Azure devops
Azure devopsAzure devops
Azure devops
 
Android installation
Android installationAndroid installation
Android installation
 
01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière 01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière
 
Symposium scrum
Symposium scrumSymposium scrum
Symposium scrum
 
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
 
Meetup aix-js-28-08-2017
Meetup aix-js-28-08-2017Meetup aix-js-28-08-2017
Meetup aix-js-28-08-2017
 
Faire une app en JS moderne
Faire une app en JS moderneFaire une app en JS moderne
Faire une app en JS moderne
 
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
 
[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec Xamarin[XamarinDay] Développez de manière 100% native avec Xamarin
[XamarinDay] Développez de manière 100% native avec Xamarin
 
20140227 - injection de dépendances - mug lyon
20140227 - injection de dépendances - mug lyon20140227 - injection de dépendances - mug lyon
20140227 - injection de dépendances - mug lyon
 
JavaScript dans l'usine logicielle
JavaScript dans l'usine logicielleJavaScript dans l'usine logicielle
JavaScript dans l'usine logicielle
 
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & Android
 
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
 
ASP.NET Web API & Azure API Management
ASP.NET Web API & Azure API ManagementASP.NET Web API & Azure API Management
ASP.NET Web API & Azure API Management
 

Similaire à MS365 Developer Bootcamp 2020 à Montréal - Trucs & Astuces SharePoint Framework

Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+ekino
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Silicon Comté
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Microsoft
 
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011Henri Gomez
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Cédric Leblond
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdfJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdfqsdqsd4
 
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging Anne Nicolas
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement MicrosoftChristophe HERAL
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...XavierPestel
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifkemenaran
 
JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924Gregory Boissinot
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et DockerStephane Manciot
 
Integrons en mode continu
Integrons en mode continuIntegrons en mode continu
Integrons en mode continuneuros
 
Python application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgentsPython application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgentsNicolas Mussat
 
SkillValue LesJeudis Master Class React Native
SkillValue LesJeudis Master Class React NativeSkillValue LesJeudis Master Class React Native
SkillValue LesJeudis Master Class React NativeBenoit Fillon
 

Similaire à MS365 Developer Bootcamp 2020 à Montréal - Trucs & Astuces SharePoint Framework (20)

Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+
 
REX Openshift à la Poste
REX Openshift à la PosteREX Openshift à la Poste
REX Openshift à la Poste
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
 
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdfJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-grâce-à-Docker.pdf
 
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
Open Recipes - hubs : du packaging en solo à l'industrialisation du packaging
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
 
R Devtools
R DevtoolsR Devtools
R Devtools
 
Maven
MavenMaven
Maven
 
Nagios
NagiosNagios
Nagios
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratif
 
Pm2 pres
Pm2 presPm2 pres
Pm2 pres
 
JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et Docker
 
Integrons en mode continu
Integrons en mode continuIntegrons en mode continu
Integrons en mode continu
 
Python application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgentsPython application packaging @ MeilleursAgents
Python application packaging @ MeilleursAgents
 
SkillValue LesJeudis Master Class React Native
SkillValue LesJeudis Master Class React NativeSkillValue LesJeudis Master Class React Native
SkillValue LesJeudis Master Class React Native
 

Plus de Laurent Sittler

Sécurité & Gestion des sites SharePoint, OneDrive et Teams
Sécurité & Gestion des sites SharePoint, OneDrive et TeamsSécurité & Gestion des sites SharePoint, OneDrive et Teams
Sécurité & Gestion des sites SharePoint, OneDrive et TeamsLaurent Sittler
 
Canadian Cloud Summit 2022 - SharePoint Framework Tests Introduction
Canadian Cloud Summit 2022 - SharePoint Framework Tests IntroductionCanadian Cloud Summit 2022 - SharePoint Framework Tests Introduction
Canadian Cloud Summit 2022 - SharePoint Framework Tests IntroductionLaurent Sittler
 
aMS 2021 - De bonnes pratiques pour rendre SharePoint plus ludique
aMS 2021 - De bonnes pratiques pour rendre SharePoint plus ludiqueaMS 2021 - De bonnes pratiques pour rendre SharePoint plus ludique
aMS 2021 - De bonnes pratiques pour rendre SharePoint plus ludiqueLaurent Sittler
 
MWCP21 - Introduction GitHub et SharePoint Framework
MWCP21 - Introduction GitHub et SharePoint FrameworkMWCP21 - Introduction GitHub et SharePoint Framework
MWCP21 - Introduction GitHub et SharePoint FrameworkLaurent Sittler
 
Getting Started with SharePoint solutions and GitHub
Getting Started with SharePoint solutions and GitHubGetting Started with SharePoint solutions and GitHub
Getting Started with SharePoint solutions and GitHubLaurent Sittler
 
Matomo Analytics avec SharePoint Online
Matomo Analytics avec SharePoint OnlineMatomo Analytics avec SharePoint Online
Matomo Analytics avec SharePoint OnlineLaurent Sittler
 

Plus de Laurent Sittler (6)

Sécurité & Gestion des sites SharePoint, OneDrive et Teams
Sécurité & Gestion des sites SharePoint, OneDrive et TeamsSécurité & Gestion des sites SharePoint, OneDrive et Teams
Sécurité & Gestion des sites SharePoint, OneDrive et Teams
 
Canadian Cloud Summit 2022 - SharePoint Framework Tests Introduction
Canadian Cloud Summit 2022 - SharePoint Framework Tests IntroductionCanadian Cloud Summit 2022 - SharePoint Framework Tests Introduction
Canadian Cloud Summit 2022 - SharePoint Framework Tests Introduction
 
aMS 2021 - De bonnes pratiques pour rendre SharePoint plus ludique
aMS 2021 - De bonnes pratiques pour rendre SharePoint plus ludiqueaMS 2021 - De bonnes pratiques pour rendre SharePoint plus ludique
aMS 2021 - De bonnes pratiques pour rendre SharePoint plus ludique
 
MWCP21 - Introduction GitHub et SharePoint Framework
MWCP21 - Introduction GitHub et SharePoint FrameworkMWCP21 - Introduction GitHub et SharePoint Framework
MWCP21 - Introduction GitHub et SharePoint Framework
 
Getting Started with SharePoint solutions and GitHub
Getting Started with SharePoint solutions and GitHubGetting Started with SharePoint solutions and GitHub
Getting Started with SharePoint solutions and GitHub
 
Matomo Analytics avec SharePoint Online
Matomo Analytics avec SharePoint OnlineMatomo Analytics avec SharePoint Online
Matomo Analytics avec SharePoint Online
 

MS365 Developer Bootcamp 2020 à Montréal - Trucs & Astuces SharePoint Framework

  • 1. SharePoint Framework Trucs et Astuces Laurent Sittler
  • 2. Microsoft 365 Architecte / Consultant Laurent Sittler Montréal, 🇨🇦 https://blog.lsonline.fr @laul0_68
  • 3. NVM PACKAGES PNPM FRAMEWORK DOCKER PATTERNS CACHE UNIT TESTS DOCUMENTATION https://github.com/nvm-sh/nvm Node Version Manager nvm install 10.23.0 nvm use 10.23.0 nvm use • Changer de version NodeJS simplement • Changer de version selon l’environnement (Online vs On-Premise) • Changer de version selon la version de SharePoint Framework • Utiliser un fichier .nvmrc
  • 4. Packages NPM npm outdated npm uninstall <package> npm i package@1.0.0 --save npm i packageDev@1.0.0 --save-dev • Mettre à jour les packages • Valider la compatibilité des packages • Supprimer les packages obsolètes et inutiles • Installer les packages dans les bonnes dépendances NVM PACKAGES PNPM FRAMEWORK DOCKER PATTERNS CACHE UNIT TESTS DOCUMENTATION
  • 5. Optimiser les modules NPM npm i -g pnpm find ./node_modules | wc -l rm -R node_modules pnpm i find ./node_modules | wc -l • Diminuer le nombre de fichiers • Réduire la taille globale de la solution (.sppkg) • Valider compatibilité (commencer avec NPM et lancer PNPM à la fin) 78478 128334 https://pnpm.js.org https://github.com/pnpm/pnpm NVM PACKAGES PNPM FRAMEWORK DOCKER PATTERNS CACHE UNIT TESTS DOCUMENTATION
  • 6. Utiliser des Framework • Pour faciliter les développements • Pour ne pas refaire la roue • Et Contribuer (issue, PR, doc, etc.) • Pour prendre connaissance des samples SPFx Web Part et Extensions Web Part Extension Microsoft Graph NVM PACKAGES PNPM FRAMEWORK DOCKER PATTERNS CACHE UNIT TESTS DOCUMENTATION
  • 7. Docker docker run -td -v $(pwd):/MS365DevBootcamp20 node:10 docker run -td -v %cd%:/MS365DevBootcamp20 node:10 docker exec -it <container-id> bash cd MS365DevBootcamp20 npm run build • Tester sur d’autres environnements • Valider les dépendances • Tester les Builds Linux Windows NVM PACKAGES PNPM FRAMEWORK DOCKER PATTERNS CACHE UNIT TESTS DOCUMENTATION
  • 8. Utiliser des Design Patterns public getSPList(i: Guid): Promise<Array<Object>> { return new Promise((resolve, reject) => { /* votre code asynchrone */ }).catch((e) => { reject(e); }); }); } public static getInstance(): MyClass { if (!this._instance) { this._instance = new MyClass(); } return this._instance; } • 23 Design Patterns • Favoriser le code totalement asynchrone • Code orienté objet • Favoriser React même dans les extensions https://www.tutorialspoint.com/design_pattern/index.htm NVM PACKAGES PNPM FRAMEWORK DOCKER PATTERNS CACHE UNIT TESTS DOCUMENTATION
  • 9. Optimiser vos requêtes return sp.web.getFolderByServerRelativePath(folderRelativeUrl).listItemAllFields.select('id').get().then((r) => { return r.ID; }); const restRequest = siteUrl + '/_api/Web/Lists/GetByTitle(‘ + t + ')/?$select=Id’; localStorage.setItem(CACHEKEY, JSON.stringify(c)); localStorage.getItem(CACHEKEY); sessionStorage.setItem(CACHEKEY, JSON.stringify(c)); sessionStorage.getItem(CACHEKEY); document.cookie • Choisir • LocalStorage ou SessionStorage: traitement des données • Cookies: préférences visiteur • Expiration adaptée • Limiter le poids de la réponse ($select) PnPJs REST NVM PACKAGES PNPM FRAMEWORK DOCKER PATTERNS CACHE UNIT TESTS DOCUMENTATION
  • 10. Les Tests Unitaires avec Jest • Valider la résistance de votre code • Assurer un niveau de qualité du code • Optimiser votre code • Avoir des métriques • Mettre en place des Mocks • Automatisation des tests, des builds, des déploiements NVM PACKAGES PNPM FRAMEWORK DOCKER PATTERNS CACHE UNIT TESTS DOCUMENTATION
  • 11. Une documentation • Contribution • Développeurs (prérequis, point à prendre en considération) • Template (bug, fonctionnalité, PR) • Fonctionnelle / Usage (ex: wiki, page, doc) • Typedoc (^0.16.11) NVM PACKAGES PNPM FRAMEWORK DOCKER PATTERNS CACHE UNIT TESTS DOCUMENTATION