Auteur : Pierre-Henri Gache

Premiers pas avec IntelliTest

Les ayatollahs du TDD vont, sans doute, crier au scandale mais soyons objectifs : si l’on pouvait générer automatiquement des tests unitaires à partir du code que l’on vient d’écrire, qui ne voudrait pas s’en servir ? Avec IntelliTest, c’est bien ce que propose Visual Studio 2015 en version Enterprise. En analysant et en instrumentant votre code, cet outil est capable de déterminer un ensemble de tests unitaires qui sont pertinents tout en assurant une couverture de code maximale. Voyons plus en détail ce que cela donne. Exemple de code à tester Pour les besoins de cet article, voici...

Read More

Build 2015 : mon retour

La Build version 2015 est terminée, il est donc temps de faire un petit retour sur les différentes annonces de Microsoft. Il y a bien sûr toutes celles autour de Windows 10 et d’Azure qui sont incontournables. De mon côté, je souhaite mettre le focus sur trois nouveautés qu’il ne fallait pas manquer à mon avis. SonarQube Depuis de nombreuses années, avec TFS et Visual Studio, nous avons à disposition tous les outils nécessaires pour gérer le cycle de vie d’une application. Cela va du recueil des besoins jusqu’au déploiement en continu, en passant par les étapes de build...

Read More

Assembly binding & Debug dans Visual Studio

De temps en temps, lors de l’utilisation du débogeur avec, par exemple, une application Web, Visual Studio nous indique, via une icône spécifique, que le point d’arrêt posé ne pourra pas être utilisé. En regardant en détail le message, on apprend souvent qu’il y a un décalage entre le fichier source et le binaire qui est exécuté. S’agissant dans mon exemple d’une application utilisant IIS, il y a de fortes chances pour que ce dernier ait verrouillé le fichier en question ce qui a empêché sa mise à jour lors du build. Un nettoyage des fichiers temporaires et un...

Read More

Tests de charge & Anti Forgery Tokens

Introduction Lorsque l’on effectue des tests de charges, nombre de paramètres sont à prendre en compte et notamment l’utilisation d’anti forgery tokens. En effet, dans ce cas précis, si aucun traitement spécifique n’est prévu, le test échouera systématiquement et la campagne de mesure ne pourra pas avoir lieu. Je vais donc vous montrer comment détecter l’utilisation de ces tokens et comment les gérer avec l’aide de Visual Studio. Qu’est-ce qu’un anti forgery token et à quoi ça sert ? Ces tokens sont utilisés pour contrer les attaques de type « cross-site request forgery » (CSRF). Ce type d’attaque consiste à envoyer à la victime un lien vers un site qui sera exécuté avec ses droits d’accès. En effet, nombre de sites utilisent une authentification via celle intégrée à Windows ou encore via les cookies. Dans ce cas, si la victime reçoit par mail un lien alors qu’elle est authentifiée, ce dernier pourra être exécuté avec ses permissions. Pour éviter ce problème, il est possible de mettre en place un token de type « anti forgery ». Concrètement, la méthode effectuant l’action de modification attend un token qui sera généré par la page donnant accès au formulaire de modification. Si le token attendu n’est pas le même que celui généré, la requête échouera. Avec ce mécanisme, il n’est donc plus possible de transmettre un lien à une tierce personne car...

Read More

Besoin d’un Service Windows : Optez pour TopShelf

Les services Windows sont souvent délaissés car l’on imagine toujours à quel point le déploiement risque d’être compliqué. Et pourtant, ce type de composant peut se révéler extrêmement efficace pour traiter nombre d’opérations en arrière-plan. Nous allons voir, dans cet article, comment simplifier de manière significative la phase d’installation mais également celle d’implémentation en utilisant une librairie : TopShelf. Setup du projet La première étape consiste à créer un projet console à l’aide de Visual Studio. Ensuite, il faut ajouter la liste des dépendances externes via NuGet. Pour cet exemple, j’ai choisi d’ajouter le support de log4net et de SimpleInjector. Création du service Passons maintenant à la création du service en lui-même. Je vous laisse découvrir le code ci-dessous permettant d’atteindre cet objectif : static void Main(string[] args) { // Configure container var container = new Container(); container.Register<IClock, Clock>(); // Top shelf setup HostFactory.Run( config => { config.UseSimpleInjector(container); config.UseLog4Net("log4net.xml"); config.Service<Clock>( s => { s.ConstructUsingSimpleInjector(); s.WhenStarted(tc => tc.Start()); s.WhenStopped(tc => tc.Stop()); }); config.SetDescription("TopShelf Demo service"); config.SetDisplayName("TopShelf Demo"); config.SetServiceName("TopShelfDemo"); }); } Comme vous pouvez le constater, le code est relativement simple et concis. Dans un premier temps, il faut instancier le conteneur SimpleInjector et le donner à TopShelf. La configuration de log4net est, elle aussi, très simple puisqu’elle se résume à une ligne. Ensuite, il faut déclarer quelle classe contiendra le traitement, dans notre cas : Clock. Cette dernière possède deux...

Read More

NOS DERNIERES RESSOURCES

Téléchargement Livre blanc Architectures topologies modernes réseau Azure

Derniers tweets

S’abonner

Au blog
RSS Flux RSS