Le Cloud de Vincent

Découvertes, astuces et curiosités de l'ère du cloud
    • 25/4/2017

    Conférencier au SharePoint Saturday Monaco 2017

    J’ai le plaisir de vous annoncer que j’ai été sélectionné comme conférencier pour le SPS Monaco 2017. J’animerai une session autour de l’ALM des développements SharePoint/Office 365 avec Azure « Mise en place de votre processus DevOps Office/Office 365/SharePoint » (aka DevOps).

    Si vous êtes dans le coin le Samedi 3 Juin n’hésitez pas à vous inscrire et à participer. Pour rappel les SPS ce sont des évènements gratuits organisés par la communauté avec des sessions de qualité. Une très bonne occasion de réseauter, d’apprendre plein de choses et de passer une bonne journée.

     

    En espérant vous voir là-bas.

    http://www.spsevents.org/city/monaco/monaco2017

    • 20/4/2017

    Global Azure Bootcamp 2017 – Edition de Montréal

    Chaque année Microsoft organise in évènement mondial sur Azure. La particularité de cet évènement c’est qu’il dure 24h et est représenté localement dans le monde entier par les groupes usagers.

    Le groupe MSDevMtl en organise un chez Microsoft Montréal (2000 McGill College) le 22 Avril (Samedi).

    Au programme :

    -          Le portail Azure

    -          Web Apps

    -          Stockage

    -          Fonctions

    -          Cognitive Services

    -          DocumentDB

    -          Application Insights

     

    La journée est animée par des conférenciers de Microsoft et des MVP et sera en Français

    J’aurais la chance de présenter la partie sur Azure Functions ou comment mettre à disposition des services web en se concentrant uniquement sur le code.

    Pour s’inscrire, c’est par ici https://www.meetup.com/fr-FR/msdevmtl/events/237451600/

    Pour avoir plus d’informations sur le sujet c’est par là https://global.azurebootcamp.net/

    En espérant vous y voire.

    • 20/4/2017

    Publier des Image renditions pour SharePoint à l’aide de PnP Provisioning

    Il y a quelques jours, j’ai dû travailler à nouveau avec les « images renditions » de SharePoint. Nous sommes en train de développer un intranet pour l’un de nos clients qui dépend partiellement des fonctionnalités de publication.

    Court rappel : les « image renditions » ont été introduites en 2013 pour vous aider à utiliser une version optimisée d’une image sans que les créateurs de contenu aient besoin de se soucier de la taille des images ou autres ou bien que vous ailliez à redimensionner les images vous-même en implémentant du code.

    Si vous n’avez pas déjà lu les excellents blogs pots introductifs sur le sujet, je vous invite à y jeter un œil.

    http://www.eliostruyf.com/provision-image-renditions-to-your-sharepoint-2013-site/

    https://www.eliostruyf.com/image-renditions-december-cumulative-update-sharepoint-2013/

    Dans notre cas nous utilisons PnP provisioning de manière intensive afin de simplifier les opérations de déploiement telles que créer des colonnes de sites, types de contenu, fichiers, etc… D’où la question : est-il possible de configurer les « image renditions » en utilisant PnP provisioning ?

    C’est en effet possible, vous pouvez configurer vos renditions sur votre tenant de développement depuis les paramètres du puis récupérez le fichier situé à cette adresse ~/SiteCollection/_catalogs/masterpage/PublishingImageRenditions.xml

    La dernière action à effectuer consiste à mettre à jour votre template pnp pour qu’il déploie ce fichier pour vous à l’aide de cet exemple :

    <pnp:Files>

            <pnp:File Src="PublishingImageRenditions.xml" Folder="{SiteCollection}/_catalogs/masterpage" Overwrite="true" Level="Published">

            <pnp:Properties>

                <pnp:Property Key="ContentTypeId" Value="0x01010012BCF119622FF14793A8A38D5831F25C" />

                <pnp:Property Key="ContentType" Value="Document" />

              </pnp:Properties>

            </pnp:File>

          </pnp:Files>

     

    Bonus : les « image renditions » se reposent sur les fonctionnalités de publication, il est préférable de s’assurer que ces fonctionnalités sont activées avant de les utiliser et voici un exemple pour pnp.

    <pnp:Features>

            <pnp:SiteFeatures>

              <pnp:Feature ID="f6924d36-2fa8-4f0b-b16d-06b7250180fa" Description="SharePoint Server Publishing Infrastructure" />

            </pnp:SiteFeatures>

            <pnp:WebFeatures>

              <pnp:Feature ID="94c94ca6-b32f-4da9-a9e3-1f3d343d7ecb" Description="SharePoint Server Publishing" />

            </pnp:WebFeatures>

          </pnp:Features>

     

    • 5/1/2017

    Conférencier au Aos Tours Montréal et Québec

    J’aurai le privilège d’être conférencier aux prochains AOS (Azure, Office 365, SharePoint) de Québec (6 Février) et de Montréal (7).

    J’aurai le privilège de présenter en Français : Introduction à Azure Fonctions et Flow

    Flow et Azure Functions sont deux outils de développement rapides qui viennent changer le paradigme d’architecture des applications modernes. Au lieu de livrer les solutions d’un seul bloc ce qui peut prendre plusieurs mois, nous allons voir comment livrer des solutions par fonctionnalités.

    Lors de cette session nous ferons une introduction aux deux services et verrons à l’aide de démonstrations pratiques et de cas concrets comment les utiliser.

     

    Pour vous inscrire à l’évènement c’est par ici http://canada.aos.community/

    Au plaisir de vous voir là-bas !

    • 23/12/2016

    Je rejoins 2ToLead

    Une page se tourne en cette fin d’année 2016 puisque j’ai pris la décision de quitter Negotium pour rejoindre 2ToLead.

    Au revoir Negotium

    Entre le moment où je suis arrivé chez AlphaMosaik il y a plus de 4 ans (parti pour 18 mois à la base hein…), le rachat par Negotium et aujourd’hui mon environnement de travail et la société dont je faisais partie ont beaucoup évolué.

    Cette structure m’a aussi permis de beaucoup grandir et d’apprendre sur un plan culturel, personnel et professionnel. J’en profite pour remercier l’ensemble des personnes avec qui j’ai pu collaborer durant cette période.

    Bonjour 2ToLead

    Je rejoins donc une structure jeune, innovante, à forte croissance en tant que « Office 365 and Azure Developer ». J’aurais la chance de travailler avec de nombreuses personnes brillantes que j’ai déjà eu l’occasion de côtoyer au sein des communautés.

    Ces gars sont justes impressionnants, whitepapers avec des dizaines de milliers de téléchargements, sessions à l’ignite, croissance forte… J’espère être à niveau.

    Je serais le 3eme MVP à faire partie de la compagnie aussi composée d’anciens de Microsoft.

    Au-delà de mon expertise technique directe, je souhaite aussi pouvoir faire bénéficier ma nouvelle famille de mes connaissances autour des processus devops.

    A très bientôt, et merci d’être aussi nombreux à me lire.

    • 15/12/2016

    Update : SonarQube : Endpoints et tâches

    Peu après la fin de la publication des articles à propos de SonarQube sur mon blog, Microsoft et SonarQube ont décidé d’effectuer des modifications.

    Les tâches VSTS d’analyse SonarQube avaient été conçues par Microsoft avant que le Markeplace pour Visual Studio Team Services existe.

    Ils ont récemment décidé que ce serait SonarQube qui maintiendrait les tâches maintenant pour plus de flexibilité. Quel impact pour vous :

    -          Si vous avez déjà mis en place de l’analyse statique en suivant mes posts, il va falloir mettre à jour vos définitions de build

    -          Si vous n’avez pas encore commencé, il faudra installer une extension avant de commencer

     

    Installation de l’extension

    Je n’en avais pas encore parlé mais Visual Studio Team Services bénéficie d’un marketplace qui permet à des éditeurs tiers ou à la communauté d’étendre ses fonctionnalités.

    Certaines sont payantes, la plupart sont gratuites.

    L’extension SonarQube va ajouter les définitions de tâches dont nous auront besoin et la définition de type de endpoint pour SQ.

    Pour l’installer il suffit de se rendre ici et de cliquer sur next next next… https://marketplace.visualstudio.com/items?itemName=SonarSource.sonarqube

    Création du endpoint

    Vous le savez déjà mais pour accéder au serveur SQ, VSTS va avoir besoin d’un endpoint. Pour cela rendez-vous dans la section paramètres, services et ajoutez un nouveau point de type SonarQube.

    Vous pouvez voir que ça fonctionne maintenant à l’aide de token et non plus de compte de services comme je l’avais expliqué auparavant. C’est meilleur en termes de sécurité.

    Pour savoir comment générer un token vous pouvez vous référer à l’article sur la configuration de SonarLint.

    http://microsofttouch.fr/default/b/vincent/posts/determinez-votre-dette-technique-a-l-aide-de-sonarqube-13---bonus-configuration-de-l-extension-sonarlint

     

    Remplacement des tâches

    Au moment où je rédige l’article j’ai donc 5 tâches SQ disponibles :

    -          2 anciennes dépréciées

    -          3 nouvelles

    Le but est simplement de remplacer les anciennes dans vos définitions de build par les nouvelles.

     

    Le tour est joué ! Bonne analyse statique !

     

    Note : cet article met à jour les suivants :

    http://microsofttouch.fr/default/b/vincent/posts/determinez-votre-dette-technique-a-l-aide-de-sonarqube-12---mise-a-jour-de-votre-definition-de-build

    http://microsofttouch.fr/default/b/vincent/posts/determinez-votre-dette-technique-a-l-aide-de-sonarqube-10---creation-d-un-compte-de-service-et-referencement-dans-vsts

    • 13/12/2016

    Diagnotiquer les problèmes de load balancing sous SharePoint

    Il y a quelques semaines j’ai eu l’occasion d’intervenir sur une ferme cliente qui posait des problèmes de performances. Il y avait aussi des problèmes de consistances des données affichées entre plusieurs appels.

    J’ai très rapidement suspecté un problème de configuration du load balancer qui répartissait les appels entre les différents serveurs. Cependant n’ayant accès uniquement à la ferme SharePoint, j’ai dû fournir une preuve à l’équipe réseau pour qu’ils déclenchent un incident.

    La question suivante s’est donc posée, comment entre deux appels http peut-on déterminer quel serveur a répondu ?

    La plupart de la documentation propose de mettre un fichier texte contenant le nom du serveur à la racine des applications web. Cependant je n’aime pas cette solution pour plusieurs raisons:

    -          Ajouter/supprimer des fichiers à SharePoint n’est pas une chose à faire à la légère, surtout si on connait mal SharePoint

    -          Il est possible, selon la configuration du load balancer, qu’un serveur réponde à une requête, et un autre à la suivante (justement s’il est mal configuré). Il faudrait donc déterminer le serveur répondant pour chaque requête.

    Je fais évidemment l’impasse sur les solutions de types « déployer une solution contenant un webpart qui l’affichera ».

    J’ai donc choisi d’ajouter un en-tête http de réponse qui sera envoyé par le serveur à chaque requête http.

    L’unique inconvénient de ce genre de solution c’est que ça induit un recyclage du pool applicatif, et donc une interruption de service.

    Pour cela rendez-vous dans la console IIS et sélectionnez l’application web qui vous intéresse.

    Cliquez ensuite sur « http response headers »

    Ajoutez en un avec le nom que vous voulez et le nom du serveur en valeur.

     

    (répétez l’opération pour chacun des serveurs)

    A l’aide de n’importe quel navigateur, si vous ouvrez les outils de développeur (généralement F12), que vous activez le suivit des requêtes et que vous allez dans la section en-tête de réponse, vous pourrez voir votre en-tête.

    Une fois que vous avez terminé, n’oubliez pas d’enlever votre en-tête pour deux raisons :

    -          Les en-tête http, avant HTTP2 (qui n’est pas implémenté dans la plupart des cas), ne sont pas compressé, le trafic réseau va donc augmenter

    -          Pour des raisons des sécurité, vous ne devriez pas exposer les noms de vos serveurs

     

    Bon troubleshooting de load balancers.

    • 2/12/2016

    Déterminez votre dette technique à l’aide de SonarQube : 14 - Conclusion

    L’installation et la mise en place de SonarQube peut paraitre assez complexe et fastidieuse.

    J’espère que cette suite d’articles et les scripts que je vous ai fournis vous ont permis d’aller plus vite dans sa mise en place.

    Vous avez maintenant la capacité de déterminer clairement votre dette technique et d’y remédier pour améliorer la qualité de vos développements.

    Il est évident que voir apparaitre un millier de problèmes dans le code peut être décourageant, gardez simplement cela en tête :

    -          Il y a des faux positifs, faites une première passe pour les exclure

    -          Essayez d’avoir une politique du genre « aucun commit ne doit empirer la situation » ou même mieux « chaque commit doit corriger l’ensemble des problèmes sur les fichiers modifiés ». Ce qui vous permettra d’améliorer la situation au fur et à mesure.

    -          Certaines organisations préféreront faire un ou deux sprints de résolution de dette pour partir sur des bases saines

     

    Et vous ? est-ce que vous trouvez ça utile ? n’hésitez pas à commenter.

    • 30/11/2016

    Déterminez votre dette technique à l’aide de SonarQube : 13 - Bonus configuration de l’extension SonarLint

    TL ; DR

    Vous avez la possibilité d’afficher les résultats d’analyse SonarQube en direct dans la console erreur et informations de Visual Studio avec la même base de règles configurées pour le projet d’analyse que sur le serveur.

    Installation de l’extension

    Simplement se rendre sur http://www.sonarlint.org/visualstudio/index.html et procéder à l’installation.

    Liaison de la solution Visual Studio au Projet d’analyse

    Depuis le Team Explorer cliquer sur SonarQube

    Cliquer sur connecter.

    (si vous avez une erreur de certificats, il vous faudra installer le certificat auto-signé de la machine)

    Pour gérer un token (à entrer dans la case username) allez sur Soanrqube en vous connectant avec votre compte Azure AD Negotium.

    Depuis le coin supérieur droit cliquer sur « My Account »

    Aller sur l’onglet sécurité puis générer un token.

    Entrer le token dans l’invite de connexion sonarqube

    Double cliquez ensuite sur le projet d’analyse qui vous intéresse pour le lier à la solution Visual Studio

    Les erreurs d’analyses SonarQube apparaissent maintenant dans en tant qu’avertissement dans Visual Studio ainsi que dans l’intellisense.

    Projets JavaScripts

    Si comme nous vous avez des projets JavaScript pour lesquels vous utilisez Visual Studio Code et non Visual Studio, l’analyse JavaScript se base sur eslint et tslint. Il vous suffit d’installer les extensions compatibles pour votre éditeur et de pointer le même fichier de règles. De cette manière vous bénéficierez de la même analyse côté serveur et côté client, même sans Visual Studio et SonarLint.

    • 28/11/2016

    Déterminez votre dette technique à l’aide de SonarQube : 12 - Contrôle des résultats

    TL ; DR

    Les erreurs d’analyse statique vont apparaitre comme des warnings dans la section compilation. Un badge d’état de l’analyse statique va apparaitre sur la page de rapport de la build et vous aurez des résultats visibles dans SonarQube.

    Résultats affichés avec la build

    Lorsque vous lancez une build au résultat vous trouverez un encart supplémentaire pointant vers les résultats de l’analyse statique

     

    Résultats visibles dans SonarQube

    Sur votre instance de SonarQube vous trouverez des résultats d’analyse qui indiqueront la progression ou la regression du code. A l’aide de SonarQube vous pourrez vous bâtir des tableaux de bord qui vous aideront à avoir une vision claire sur votre dette technique et comment la corriger.

    • 25/11/2016

    Déterminez votre dette technique à l’aide de SonarQube : 12 - Mise à jour de votre définition de build

    TL ; DR

    L’analyse statique va s’effectuer au moment où vous buildez votre projet. Notez que pour le moment seule une intégration avec msbuild (la tâche Visual Studio Build) existe.

    Si vous buildez des projets avec node/npm ou autres, il  est possible que la configuration requise soit différente ainsi que les outils (tâches gulp par exemple).

    Ajout des tâches à la définition

    Nous partirons du principe que vous avez déjà une build 2015 en place

    Ajoutez deux étapes SonarQube, placez la begin analysis avant le build visual studio et la end analysis après l’exécution des tests unitaires. (comme ça, si vous avez des résultats de couverture de code, ils apparaitront dans SonarQube).

    Renseignez le endpoint, nom de projet, clef du projet, version ainsi que les paramètres optionnels de l’étape de début.

    Dans mon cas j’ai mis /d:sonar.exclusions=**/*.min.js,**/*.min.css en paramètres optionnels pour exclure les fichiers minifiés de l’analyse.

    Note : ces paramètres peuvent aussi être spécifiés dans les paramètres globaux de SonarQube ou dans les paramètres de projet SonarQube.

    Note : java doit être installé sur les machines de build si vous avez vos propres machines de build

    Note : je vous conseille d’ajouter une variable « SonarQubeAnalysisTimeoutInSeconds » à la définition de build avec la valeur suivante « 600 ». Cela va étendre le délai d’expiration de l’analyse statique, des fois que votre machine ait plusieurs résultats à importer à la fois.

    • 23/11/2016

    Déterminez votre dette technique à l’aide de SonarQube : 11 - Ajout du projet SonarQube

    TL ; DR

    SonarQube a une notion de projet d’analyse. Ces projets vont regrouper les résultats d’analyse de votre code. Vous pouvez configurer un projet par dépôt de code ou même par branche pour avoir des deltas d’analyse différents. (ex ma master build tous les mois, je veux voir l’évolution au par mois et ma dev tous les jours donc je veux voir l’évolution tous les jours).

    Ajout du projet

    Pour cela rendez-vous dans « configuration » -> « Projects » -> « Management » puis « create project »

    Notez bien la clef configurée, c’est elle qui va servir lors de la mise à jour des résultats d’analyse.

    • 21/11/2016

    Déterminez votre dette technique à l’aide de SonarQube : 10 - Création d’un compte de service et référencement dans VSTS

    TL ; DR

    Pour éviter que m’importe qui puisse envoyer des résultats d’analyse sur votre serveur SonarQube, nous allons créer un compte de service et forcer l’authentification.

    Création du compte de service

    Pour cela rendez-vous dans administration, sécurité, utilisateurs et ajoutez un compte.

    Provisionnement du compte de service

    Pour le référencer dans VSTS, rendez-vous sur votre projet d’équipe, cliquez sur paramètres (la roue crantée), Services, nouveau service générique et entrez url, nom d’usager et mot de passe du compte de service.

    • 18/11/2016

    Déterminez votre dette technique à l’aide de SonarQube : 9 - Configuration d’Azure Active directory pour l’authentification

    TL ; DR

    Nous allons installer et configurer un module complémentaire pour déléguer l’authentification à Azure Active Directory. Cela permettra à nos développeurs d’utiliser le même compte entre Visual Studio Team Services et SonarQube.

    Configuration du module d’authentification

    Depuis la version 5.4 SonarQube dispose d'un plugin supplémentaire pour configurer l'authentification avec AAD en se reposant sur OAuth. Cela va vous permettre d'utiliser vos comptes d'entreprise pour authentifier les collaborateurs et leur donner des permissions.

    La mise en place de ce mécanisme est déjà très bien documentée. Plutôt que de faire cela en double je vous propose de vous y référer.

    https://github.com/baywet/azure-docker-sonarqube#step-6-configure-authentication

    • 16/11/2016

    Déterminez votre dette technique à l’aide de SonarQube : 8 - Ajout de modules

    TL ; DR

    L’analyse statique fonctionne à l’aide de règles. Ces règles sont regroupées par langages ou familles de langages dans des modules que vous pouvez installer. Outre l’apport du support de langages de développements ces modules peuvent étendre les fonctionnalités natives de SonarQube.

    La plupart sont gratuits et libres, certains sont soumis à des licences commerciales.

    Installation des modules complémentaires

    Rendez-vous dans configuration, système, et recherchez puis installez les modules qui vous intéressent.

    Une fois tous les modules installés il vous faudra redémarrer le serveur à l’aide du bouton que vous propose l’interface de SonarQube.

    • 14/11/2016

    Déterminez votre dette technique à l’aide de SonarQube : 7 - Installation de la machine

    TL ; DR

    Nous allons mettre la machine à jour, installer docker dessus, provisionner les conteneurs dont nous avons besoin.

    Installation de docker et mises à jour

    Connectez-vous en ssh sur la machine (Putty est un très bon client pour windows) et exécutez les commandes suivantes :

    https://github.com/baywet/azure-docker-sonarqube#step-4-setup-docker

    Mise en place des conteneurs, création des certifcats

    Les conteneurs sont les composants de notre installation qui vont effectuer le travail de gérer le trafic web et fournir le service de SonarQube.

    Pour sécuriser les connexions, nous allons aussi générer des certificats SSL auto-signés.

    Après avoir étudié le sujet pendant plusieurs jours, ce n’est pas chose simple à faire lorsque l’on n’a pas l’habitude de travailler dans des environnements linux. Et c’est le cas de la majorité des développeurs utilisant Visual Studio Team Services (ou TFS) car ils proviennent majoritairement du monde Windows.

    Aussi j’ai mis à disposition sur gitub des scripts pour faire la configuration à votre place. Evidemment si vous disposez de vos propres certificats, ou bien si votre environnement dispose déjà de certaines choses, vous pouvez éditer ce script.

    (voir la partie SSL du script)

    https://github.com/baywet/azure-docker-sonarqube/blob/master/step1.sh

    • 11/11/2016

    Déterminez votre dette technique à l’aide de SonarQube : 6 - Création de la base de données

    TL ; DR

    Création d’une db sql azure avec la collation SQL_Latin1_General_CP1_CS_AS.

    Détails de la création de la base

    Les étapes de création de base de données SQL Azure sont déjà bien décrites, point de détail important : utiliser la collation suivante : SQL_Latin1_General_CP1_CS_AS. (et utiliser un modèle vide)

    https://github.com/baywet/azure-docker-sonarqube#step-3-create-the-azure-sql-database

    Notez les accès à la base de données (FQDN du serveur, nom utilisateur, mot de passe, nom de la base) quelque part, nous en aurons besoin plus tard.

    Pensez bien à ouvrir le pare feu du serveur SQL pour les connexions venant d’Azure.

    • 9/11/2016

    Déterminez votre dette technique à l’aide de SonarQube : 5 - Ouverture du port de SonarQube

    TL ; DR

    Ouvrez les ports 22, 9000, 80 et 443 en entrant sur la VM.

    Détail de l’ouverture des ports

    Plutôt que de répéter ce qui est déjà documenté, je préfère vous fournir le lien directement

    https://github.com/baywet/azure-docker-sonarqube#step-2-opening-firewall-ports

    Il faut ouvrir les ports 22, 80, 443 et 9000 qui vont nous permettre respectivement de communiquer avec la machine, y accéder en http et https, et accéder à la console de gestion.

    • 7/11/2016

    Déterminez votre dette technique à l’aide de SonarQube : 4 - Provisionnement de la VM SonarQube

    TL ; DR

    Provisionnez un ubuntu server dans Azure, installez Putty et WinSCP sur votre machine locale

    Détail du provisionnement

    Voici un lien vers une documentation pour vous expliquer comment faire

    https://github.com/baywet/azure-docker-sonarqube#step-1-create-the-virtual-machine-in-azure

    Voilà ! la machine est en cours de provisionnement !

    Pendant ce temps profitez-en pour télécharger un terminal SSH si vous n’en avez pas déjà un, je vous recommande http://www.putty.org/

    • 4/11/2016

    Déterminez votre dette technique à l’aide de SonarQube : 3 - La topologie

    TL ; DR

    Planification, Sources, Build, Déploiement, Tests : VSTS. Analyse : Azure VM (SonarQube), Azure SQL.

    Détail de la topologie de notre industrie logicielle

    Curieux de l’essayer j’ai pris du temps pour le mettre en place avec Visual Studio Team Services. Etant donné que nous utilisons un maximum des services cloud chez Negotium j’ai réalisé l’installation suivante :

    -          Contrôle de code source : VSTS (git ou tfsvc ça n'a pas d'importance)

    -          Système de build : build 2015 VSTS

    -          Machine de build : fournie par VSTS en tant que service

    -          Machine SonarQube : Ubuntu Server hébergée dans Azure

    -          Données SonarQube : SQL Azure 10 DTU

    A noter que pour faciliter la gestion de l’installation de SonarQube nous allons installer Docker sur la machine ubuntu. Une fois docker installé, nous allons hydrater deux conteneurs, nginx et sonarqube.

    Pourquoi docker ? la philosophie de cet article est que les composants de traitement (sonarqube en tant que tel) sont jetables. On peut les remplacer rapidement si jamais ils venaient à cesser de fonctionner ou bien si une nouvelle version de sonarqube est disponible. Nos données vont résider dans SQL Azure.

    Estimation des coûts

    -          VSTS : gratuit car tous nos développeurs ont des comptes MSDN

    -          Machine de build : factureé à la minute (4h offertes par mois)

    -          Machine SonarQube : 60CAD par mois

    -          Base de données : 5 CAD par mois

    On peut voir donc que pour 65CAD par mois (prix publique), vous disposez d’une suite complète d’industrie logicielle avec planification du travail, contrôle de code source, intégration continue, tests automatisés, déploiements automatisés et analyse statique automatisée.

    J’ai mis environ 1h à installer et configurer le tout de bout en bout, et je n’avais pas d’article pour me guider, ça va donc assez vite.

    • 2/11/2016

    Déterminez votre dette technique à l’aide de SonarQube : 2 - Analyse Statique

    TL ; DR

    L’analyse statique ça permet de comprendre les faiblesses du code en se basant sur un ensemble de règles. On peut réaliser ça côté serveur de manière automatisée ou bien depuis l’IDE.

    Introduction à l’analyse statique

    Le principe de l’analyse statique est de se baser sur des ensembles de règles plus ou moins complexes qui vont détecter des modèles dans le code qui sont problématiques et catégoriser leur important ainsi que proposer une résolution.

    Quelques exemples :

    -          Des méthodes non statiques travaillant avec des champs statiques peuvent poser des problèmes de concurrence (thread safety).

    -          Des expressions booléennes trop complexes modifiées plusieurs fois ne veulent peut-être plus rien dire et introduisent peut-être des comportements erratiques dans le programme.

    Il existe deux grandes familles d’analyse statique celles dites centralisées ou automatisées, c’est-à-dire qu’elles vont généralement s’effectuer après que le code ait été poussé sur le contrôle de code source.

    Ces analyses sont effectuées en général lors de votre intégration continue depuis vos serveurs de build afin que les développeurs soient libres d’effectuer autre chose durant cette période et ainsi de maximiser la productivité de vos équipes.

    L’autre famille est celle que l’on appellera intégrée, c’est-à-dire qu’on aura une analyse en temps réel ou presque quand le développeur code. Par exemple resharper, les analyzers roselyn etc. Cela évite de pousser du mauvais code sur le contrôle de code source et d’avoir à le corriger ensuite.

    Note : dans certains scenarios on pourrait parfaitement mettre en place du « gated check-in » c’est-à-dire que le code ne sera pas vraiment intégré sur le contrôle de code source tant qu’il ne passera pas l’analyse statique centralisée effectuée lors de la build.

    Idéalement l’analyse statique centralisée et intégrée se basent sur un ensemble de règles communes pour donner les mêmes résultats. On verra que c’est parfaitement possible avec SonarQube et SonarLint pour les développeurs .net et SQ + tslint pour les développeurs TypeScript/JavaScript.

    • 31/10/2016

    Déterminez votre dette technique à l’aide de SonarQube : 1 - Introduction

    TL ; DR

    Cette série va vous expliquer comment mettre en place une analyse de la qualité de votre code automatique, pour presque gratuit avec Visual Studio Team Services, Docker, Azure, et SonarQube.

    Préambule

    Dans tous nos projets de développement on a tous du code de mauvaise qualité. Cela va du hack dont on est pas fier et qu’on a dû réaliser rapidement à un certain moment au code réalisé il fut un temps par un développeur qui a quitté la compagnie et dont personne n’est au courant.

    Le problème avec ce code c’est qu’il finit par s’accumuler et ralentir le rythme de livraison de nouvelles fonctionnalités. Les raisons étant variées, beaucoup de temps passé en bug fix, en refactoring, en support...

    Afin de sortir de ce cercle vicieux, il faut connaitre l’état des lieux puis refaire des analyses périodiquement pour savoir quelle est la quantité de travail à fournir pour corriger la situation, est-ce qu’on est en train d’améliorer la situation ou de l’aggraver, etc…

    J’ai récemment* eu la chance d’assister à une présentation des fonctionnalités de SonarQube, c’est donc l’outil/la plateforme que nous allons étudier durant cette série d’articles. Sachez qu’il en existe d’autres les avantages de cette dernière étant qu’elle est opensource, relativement connue des développeurs java et supportée par une communauté assez importante. Enfin lors de la build Microsoft en a rapidement parlé en keynote et travaille avec la communauté pour l’intégrer avec les outils/langages Microsoft.

    *Ayant donné beaucoup de conférences cette année l’écriture de cet article a pris énormément de retard, j’arrive enfin à le publier un an après avoir découvert et creusé le sujet.

    Entre temps Microsoft a eu le temps de publier deux articles.

    Un pour l’installation de tout la suite en local, je vais plutôt vous guider pour le faire en ligne.

    http://blogs.msdn.com/b/visualstudioalm/archive/2015/09/29/quickstart-analyzing-net-projects-with-sonarqube-msbuild-or-visual-studio-online-and-third-party-analyzers-stylecop-resharper.aspx

    Un autre pour installer ça dans une vm sur Azure (à base Windows).

    https://blogs.msdn.microsoft.com/visualstudioalmrangers/2016/10/06/easily-deploy-sonarqube-server-in-azure/

    Au moment où vous lirez cet article, ils seront déjà tous programmés à la publication, si jamais vous voulez revenir sur un article ou un autre, plutôt que de faire un article sommaire j’ai décidé d’utiliser la recherche de mon blog.

    http://microsofttouch.fr/search?q=sonarqube&group=3  

    Objectifs

    En étudiant le sujet et au fur et à mesure de la rédaction, je me suis rendu compte qu’il y avait énormément de choses à dire. Aussi je vous propose cette série dont les objectifs sont :

    -          De vous introduire à la notion de dette technique (déjà fait) et d’analyse statique automatisée

    -          De vous introduire à SonarQube

    -          De vous aider à mettre tout ça en place en quelques heures sur un premier projet et ce pour gratuit (en dehors du coup d’exploitation des machines)

    -          De vous donner quelques conseils pour finaliser la configuration sur vos divers projets

    Votre installation

    Pour réaliser votre installation vous avez deux options :

    -          Ou bien vous êtes pressés et savez déjà de quoi je parle, vous pouvez passer directement à l’installation depuis github https://github.com/baywet/azure-docker-sonarqube

    -          Ou bien vous découvrez Azure, Docker, SonarQube et vous voulez plus d’explications que simplement le step by step, dans ce cas suivez cette série de blogs

    • 27/10/2016

    Mise à jour : dot net core et intégration continue

    Il y a quelques mois j’avais publié une série d’articles sur l’intégration continue de projets dot net core.

    Bien évidemment c’était très tôt du point de vue de la maturité de ce « nouveau framework » (on était encore en beta) et depuis les outils et méthodologies ont évolué.

    La bonne nouvelle c’est que vous n’avez plus besoin de script powershell complexe et assez hasardeux dans le processus. Vous n’avez plus besoin non plus d’autres tâches que celles pour l’invite de commande et les tâches de publication azure.

    L’autre bonne nouvelle c’est que Microsoft a pris le temps de documenter le tout ici :

    https://www.visualstudio.com/en-us/docs/build/apps/aspnet/aspnetcore-to-azure

    Ces articles là sur mon blog sont toujours valables (certains demanderaient une mise à jour des commandes, je vais probablement ajouter ça dans les commentaires)

    http://microsofttouch.fr/default/b/vincent/posts/tests-unitaires-xunit-avec-visual-studio-team-services-de-projets-dnx

    http://microsofttouch.fr/default/b/vincent/posts/build-dnx-avec-agent-build-vnext-install-tfs-vsts

    http://microsofttouch.fr/default/b/vincent/posts/mise-jour-maitris-e-de-schema-sql-avec-entity-framework-code-first-dans-un-processus-de-livraison-continue

    Ceux-là n’ont plus d’intérêt

    http://microsofttouch.fr/default/b/vincent/posts/erreur-lors-de-la-publication-de-sites-web-asp-net-5-core-vers-azure

    http://microsofttouch.fr/default/b/vincent/posts/nouvelles-t-ches-de-build-release-disponibles-pour-les-projets-dotnetcore-et-vsts

    • 20/9/2016

    SharePoint Saturday Québec

    Suite au succès qu’ont rencontré les 4 éditions du SPS Montréal, j’ai le privilège de vous annoncer qu’il y aura un SPS à Québec le 1er Octobre 2016.

    (oui un peu en retard par rapport aux annonces sur twitter, mais période estivale oblige…)

    L’évènement sera en Français et si vous habitez au Québec ou que vous voulez visiter la belle ville de Québec, n’hésitez pas à venir vous joindre à nous pour une journée de conférences gratuites.

    Cette journée aura pour thématique non seulement SharePoint mais aussi Office 365 et Azure et s’adresse à des audiences de développeurs, usagers, décideurs, et administrateurs.

    Pour les inscriptions et les détails c’est par ici.

    http://www.spsevents.org/city/quebeccity/quebeccity2016

    Au plaisir de vous y croiser !

    • 15/9/2016

    SystemUpdate enfin disponible en CSOM

    C’est une bonne nouvelle pour les développeur SharePoint, la méthode SystemUpdate est enfin disponible depuis le Client Side Object Model.

    En effet Microsoft a récemment publié une mise à jour des paquets nugets et la méthode figure parmi la liste des ajouts.

    http://dev.office.com/blogs/new-sharepoint-csom-version-released-for-Office-365-august-2016-updated

    Cette méthode est importante car elle permet d’effectuer une mise à jour d’élément de liste sans changer les informations de version, d’auteur, de publication et de date de modification.

    C’est d’autant plus important que nous sommes nombreux à migrer des solution full trust qui utilisaient cette méthode vers des solutions de types add-ins et qu’on dispose parfois uniquement d’un contexte app only. Cela évitera d’avoir des documents mis à jour par « SharePoint App ».

    Cette version reste cependant uniquement utilisable pour SharePoint Online et non pour SharePoint 2013/2016.

    Bons développements.