SQL : l'instruction MERGE

Je vais aujourd’hui vous faire partager un sujet qui est dans ma to-do list depuis plusieurs mois et dont je me sers très souvent : l’instruction MERGE en SQL. Cette instruction est apparue avec SQL Server 2008 et permet de combiner plusieurs opérations DML (Data Modification Language -> INSERT, UPDATE, DELETE) en une seule instruction. Elle est très pratique pour synchroniser 2 tables entre elles. Voici les principaux éléments à mettre en place, que je vais appliquer à un exemple :

Continuer

Les design patterns - Creational (2/4)

Suite à l’article d’introduction, les premiers types de patterns que je vais aborder sont les creational patterns ou patrons de création. Il en existe 5 et ils permettent de définir la manière de faire l’instanciation et la configuration des classes ou des objets de manière souple tout en minimisant le couplage et en maximisant la réutilisation du code. Singleton C’est probablement le design pattern le plus connu et le plus utilisé.

Continuer

Je souhaite revenir aujourd’hui sur un sujet qui, à mes yeux, est très important mais malheureusement assez méconnu des développeurs : les design patterns. Lors des quelques entretiens que j’ai pu faire passer, je me suis rendu compte que cette notion est soit mal maitrisée (quelques mots-clés/buzzword cités ça et là mais sans réelle explication derrière) soit carrément inconnue ! Je trouve ça dommage car c’est quelque chose de très utile dans son travail quotidien et nous allons voir pourquoi dans cet article.

Continuer

CSS Grid Layout

Je vais aujourd’hui vous parler d’une nouvelle méthode de disposition CSS que j’ai eu l’occasion d’utiliser dans un récent projet : CSS Grid Layout ! Qu’est-ce que CSS Grid Layout ? Cette propriété CSS a été dévoilée officiellement en mars 2017 et son support dans la majorité des navigateurs fut relativement rapide (environ 70% en quelques mois, ce qui est assez important pour être souligné !). Je vous invite à consulter le site CanIUse pour le vérifier.

Continuer

SSIS Tips : utilisation et manipulation des VARCHAR(MAX)

J’ai récemment eu besoin de manipuler des données SQL du type VARCHAR(MAX) via SSIS. Dans SQL Server, ce type permet de stocker des données de type chaîne de caractères d’une taille jusqu’à 2 Go. Voilà le scénario que je souhaitais réaliser : Une procédure stockée me retourne une donnée de type VARCHAR(MAX) représentant un contenu XML J’appelle cette procédure dans une tâche de type “Script Task” et je stock le résultat dans une variable J’utilise cette variable en tant que paramètre entrant dans une OleDB Source d’un DataFlow Je récupère le résultat via une OleDB Destination A 1ère vue, ce scénario ne pose pas de soucis particulier, mais nous allons voir que SSIS a une gestion très partielle du type de données VARCHAR(MAX).

Continuer

J’ai été récemment confronté à un problème avec l’utilisation de SSIS et je souhaite vous faire partager l’astuce qui m’a permis de m’en sortir ;) Le projet sur lequel je travaille utilise de nombreux traitements SSIS pour importer de la donnée et la manipuler (traitements, calculs…). Ces traitements utilisent le plus souvent un Data Flow composé d’une source OleDB et d’une procédure stockée. Le problème est le suivant : certaines de mes procédures stockées utilisent des tables temporaires et dans ce cas, SSIS n’est pas capable de générer le mapping entre les colonnes sources et les colonnes cibles !

Continuer

C# : Bonnes pratiques

Suite à la rédaction d’un “Guide du développeur” pour ma boite, j’ai eu l’idée de rédiger un article référençant les bonnes pratiques en C#/.NET. L’idée n’est pas de faire une énième liste comme il en existe des dizaines sur le net, mais d’essayer d’apporter des astuces pertinentes et argumentées par rapport à mon expérience. Et surtout, ce que je souhaiterais, c’est d’avoir des retours sur VOS astuces, VOUS lecteurs de mon blog, basées sur VOS expériences.

Continuer

WebAPI et ses utilisations (2) - Construction de notre API

Après avoir présenté .NET Core dans la 1ère partie de cet ensemble d’articles, nous allons désormais rentrer dans le vif du sujet en commençant la construction de notre API web. Qu’est-ce qu’une API ? Si l’on veut faire une analogie, l’API est au développeur ce que l’UI (User Interface) est à l’utilisateur. C’est donc la partie visible et accessible de notre programme, permettant au monde extérieur de saisir des données et de récupérer le résultat des traitements.

Continuer

Débugger facilement un service Windows

En .NET, il arrive encore régulièrement d’avoir à développer des services Windows pour réaliser des traitements. Du coup, se pose rapidement la question du débogage et de ses problèmes… Il est en effet nécessaire de régulièrement démarrer/arrêter le service, ainsi que de l’installer/désinstaller, et ces opérations demandent de passer par différents outils en ligne de commande (installutil, net start…). Cela devient très vide rébarbatif et est chronophage, mais heureusement, il existe quelques astuces très simples pour résoudre ces soucis !

Continuer

Présentation sur le développement à Polytech Tours

Je voulais profiter de cet article pour faire un rapide retour d’expérience sur une conférence que j’ai donné dans le cadre de mon travail, avec mon collègue Florian Rousselet. Cette conférence a eu lieu à l’école d’ingénieur Polytech Tours devant un parterre d’une quarantaine d’étudiants en informatique. Pour rendre la conférence plus interactive, nous avons utilisés l’outil Klaxoon (https://klaxoon.com/fr/) qui permet, à partir d’un site web/smartphone, d’envoyer en direct des messages, de répondre à des votes ou encore de participer à des séances de brainstorming.

Continuer

Photo de l'auteur

Matthieu Anceret

Blog d’un développeur Tourangeau passionné

Software Architect @C2SBouygues

France, Tours