.NET Conf 2023

Comme tous les ans, l’édition de la .NET Conf s’est tenue du 14 au 16 novembre 2023 (oui je sais, je suis en retard…). Cette année a été un bon cru côté annonces et nouveautés. De mon point de vue, la plus grosse annonce de Microsoft a probablement été .NET Aspire. Etant donné qu’il y a pas mal de choses à dire à son sujet, je lui ai réservé un article dédié qui sortira bientôt…

Continuer

Le .NET "moderne"

Comme vous le savez peut-être déjà, je suis actuellement architecte logiciel chez C2S Bouygues depuis bientôt 10 ans. Ma boite est très orientée Microsoft, et j’ai donc, sur ces 10 années, pu observer et expérimenter l’évolution du framework .NET. Pourquoi j’écris cet article ? En 1er lieu, parce que j’apprécie cette stack technique, que j’utilise quotidiennement, et que je souhaite partager cette passion. Ensuite, parce que je rencontre beaucoup de personnes qui sont restés bloqué au “vieux” .

Continuer

Entity Framework - Chiffrement personnalisé

Aujourd’hui, je souhaite vous faire un feedback sur la mise en place d’une solution de chiffrement manuelle des données avec Entity Framework et une base de données. Un peu de contexte Le système sur lequel j’interviens nécessite la mise en place d’un mécanisme de chiffrement des données. Il permet de chiffrer des colonnes spécifiques (celles contenant des données sensibles) tout en conservant la clé côté client et non côté serveur (pour éviter, par exemple, à un DBA d’accéder aux données).

Continuer

Entity Framework - Stratégies d'héritage

Entity Framework Core 7 est déjà sorti il y a quelque temps maintenant (le 8 Novembre 2022 si vous n’avez pas cliqué sur le lien…), mais je souhaitais revenir sur l’arrivée de la stratégie TPC (Table Per Concrete), et au passage, en profiter pour présenter les différentes possibilités pour gérer l’héritage avec EF. Entity Framework Core Entity Framework Core est un ORM (aka. object-relational mapping) dédié au monde .NET. Il succède à Entity Framework, et vient lui apporter légèreté et extensibilité ainsi que le support du multiplateforme et la diffusion du code en open source.

Continuer

CQRS : Command Query Responsability Segregation

Dans mon article sur la scalabilité et la haute disponibilité, j’avais rapidement abordé le sujet du pattern CQRS. Aujourd’hui, nous allons voir un peu plus en détail les concepts et le fonctionnement de ce pattern. CQRS, qu’est-ce que c’est ? CQRS, pour Command Query Responsibility Segregation, est un pattern reposant sur le principe de la séparation des opérations de lecture (Query) et d’écriture (Command) Ce pattern est né du constat que les besoins, fonctionnels ou techniques, d’une application sont souvent très différents selon que l’on cherche à lire ou à modifier une donnée.

Continuer

Polly

Dans la continuité de l’article sur les architectures microservices, j’aimerais aujourd’hui vous parler d’une bibliothèque .NET permettant d’aider au développement d’une application résiliente. J’ai nommé… Polly ! Il existe déjà des patterns pour résoudre certains problèmes “classiques”, comme le pattern retry ou encore le pattern disjoncteur. Le souci est qu’ils sont souvent assez complexes à implémenter et à intégrer dans un code neuf ou existant. C’est là qu’intervient Polly, en fournissant un ensemble de stratégie prêt à l’usage et ne nécessitant que quelques lignes de code pour être opérationnelles.

Continuer

Le refactoring

Vaste sujet ! Dans cet article, nous allons parler clean code, dette technique, refactoring et anti-patterns. Il fait suite à la série sur les designs patterns que vous pouvez retrouver ici : Les design patterns et les principes SOLID en développement logiciel Les patterns creationals Les patterns structurals Les patterns behaviorals Tout logiciel est constitué de code, et c’est la qualité de ce code qui va faire d’une application une application de qualité.

Continuer

Les design patterns - Behavioral (4/4)

Troisième et dernière catégorie de pattern que je vais aborder, les behavioral patterns ou patrons de comportement. Il en existe 11 et ils permettent de définir comment organiser nos objets pour que ceux-ci collaborent. Si jamais vous les avez ratés, je vous invite à (re)lire les parties précédentes : L’introduction sur les design patterns Les patterns creationals Les patterns structurals Table des matières Chain of responsibility Pipeline Command Interpreter Iterator Mediator Memento Observer State Strategy Template Visitor Chain of responsibility Ce pattern permet de séparer les objets émetteurs de requêtes et les objets chargés de recevoir et traiter les requêtes.

Continuer

Authentification Azure AD avec ReactJS

J’ai récemment eu besoin de mettre en place une authentification via Azure AD dans une application web ReactJS. Globalement, la procédure est assez simple, mais il y a tout de même quelques subtilités sur lesquelles j’ai perdu pas mal de temps et que je souhaiterais partager ;) Côté client, c’est la librairie ADAL.js (Active Directory Authentication Library for Javascript) qui va nous aider. Microsoft supporte de nombreuses plateformes différentes en fonction des environnements client ou serveur visés (plus d’informations sur ce lien).

Continuer

Les design patterns - Structural (3/4)

Après les patterns creationals (que vous pouvez retrouver ici), je vais maintenant aborder les structural patterns ou patrons de structure. Il en existe 7 et ils permettent de définir comment organiser nos objets. Si vous le souhaitez, vous pouvez retrouver l’introduction sur les design patterns ici. Table des matières Adapter Bridge Composite Decorator Façade Flyweight Proxy Adapter L’objectif du pattern Adapter est de faire passer quelque chose pour autre chose sans perturber le reste de l’application.

Continuer

Photo de l'auteur

Matthieu Anceret

Blog d’un développeur Tourangeau passionné

Software Architect @C2SBouygues

France, Tours