Blog
KomuraSoft LLC partage des façons de penser utiles en pratique sur la création de sites web, le SEO, la gestion de Google Ads, le développement Windows, la valorisation des actifs existants et l’analyse des défauts.
Recherche IA sur tout le site
Les requêtes de recherche sont transmises à Cloudflare AI Search pour générer les résultats. Veuillez ne pas saisir de données personnelles.
-
Date, heure et fuseaux horaires dans les applications métier — des pièges de DateTime au principe de stockage en UTC et à la conception des tests
Un déplacement de serveur fait dériver les horaires de neuf heures : cet article remonte à la source des incidents de date/heure, la propriété Kind de DateTi...
-
Tests UI automatisés pour applications de bureau Windows — le fonctionnement de UI Automation et la construction de tests robustes avec FlaUI
Un guide pratique des tests UI automatisés pour applications WinForms/WPF, en partant du fonctionnement de Windows UI Automation (l'arborescence, AutomationI...
-
Le support du haut DPI dans WPF — pourquoi l'affichage reste flou et baveux malgré une application « censée résister au DPI », et comment y remédier
WPF met en page en DIP (1/96 de pouce) et est System DPI Aware dès le départ, mais déplacer une fenêtre vers un moniteur au DPI différent fait baver tout l'é...
-
Le problème d'EXCEL.EXE qui reste actif lors de la manipulation d'Excel en C# — schémas de libération des références COM et décision de remplacement
Analyse du problème du processus EXCEL.EXE qui reste actif après une automatisation COM d'Excel depuis C#, à partir du comptage de références COM et du mécan...
-
La prise en charge du haut DPI dans WinForms — pourquoi l'interface devient floue ou se casse sur les moniteurs 4K, et solutions concrètes
Cet article explique pourquoi les applications WinForms deviennent floues ou voient leur mise en page se casser sur les moniteurs 4K, à partir de la virtuali...
-
Comment choisir la communication inter-processus sous Windows ── Tableau de décision : tubes nommés / TCP / gRPC / mémoire partagée / COM
Comment choisir le moyen de faire communiquer des applications Windows entre elles ? Cet article organise les tubes nommés, le TCP local, gRPC, la mémoire pa...
-
Utiliser SQLite en C# dans une application métier — mode WAL, contrôle d'accès exclusif, prévention de la corruption, et quand choisir EF Core
Un tour d'horizon pratique de l'intégration de SQLite dans une application métier avec Microsoft.Data.Sqlite : le mode WAL, SQLITE_BUSY et la consolidation d...
-
Comment créer et exploiter un service Windows ── du choix entre Planificateur de tâches et service à la transformation d'un BackgroundService en service Windows
Faut-il transformer un traitement résident en service Windows, ou le Planificateur de tâches suffit-il ? Ce guide organise, du point de vue pratique, le trav...
-
WebView2 est-il le bon successeur du mode IE ? — La contrainte ActiveX et une conception de migration réaliste
Un tour d'horizon de l'architecture de base de WebView2, des stratégies de distribution Evergreen et Fixed Version, du piège du dossier de données utilisateu...
-
Comment choisir où une application Windows stocke ses données locales — tableau de décision pour SQLite / JSON / Registre / Access
Où et sous quelle forme une application de bureau Windows doit-elle stocker ses données ? Cet article organise le choix entre AppData et ProgramData, ainsi q...
-
Les tâches du Planificateur de tâches qui ne s'exécutent pas ou se terminent en 0x1 — isoler la cause et concevoir une exploitation fiable
Guide de conception pour mettre le Planificateur de tâches Windows en exploitation fiable : comptes d'exécution et types de connexion, causes typiques d'une ...
-
Automatiser les processus métier avec Power Automate — flux cloud, flux de bureau et gestion robuste des erreurs
La différence entre flux cloud et flux de bureau dans Power Automate, la répartition des rôles avec PowerShell et VBA, les licences, la gestion des erreurs, ...
-
La programmation générique en Ada ── Écrire des contrats par les types, réaliser une réutilisation à coût nul
Une présentation systématique de la programmation générique en Ada : sous-programmes génériques, paquets génériques, paramètres formels de sous-programme, ca...
-
Programmation de systèmes temps réel avec Ada ── Priorités, exécution périodique et contrôle du temps d'exécution en pratique
Découvrez l'Annexe D d'Ada (systèmes temps réel) à travers 8 exemples de code pratiques. L'article couvre progressivement les priorités de tâches, le protoco...
-
Fable a disparu, mais pas question d'abandonner ── Tenir bon avec OpenRouter Fusion+LLM chinois+une couche de revue
On est loin, très loin de Fable. Mais en combinant cinq LLM chinois via OpenRouter Fusion, puis en ajoutant une revue par gpt-5.5-pro ou une revue de PR par ...
-
Concurrence sécurisée avec Ada ── Guide pratique des tâches et objets protégés
Un article d'introduction aux tâches et objets protégés, la concurrence intégrée au langage Ada. Il couvre le rendez-vous (entry/accept), l'acceptation sélec...
-
Introduction à la vérification formelle avec SPARK ── Des contrats Ada à la preuve mathématique
Une introduction pratique à la vérification formelle avec SPARK, le sous-ensemble d'Ada. L'article couvre le passage des contrats (Pre/Post) à la preuve, l'u...
-
L'attrait du langage Ada ── Exprimer la conception par les types, faire fonctionner des logiciels pendant des décennies
Une introduction à l'attrait du langage Ada : le typage fort, les contraintes de plage, la séparation de la spécification et de l'implémentation via les pack...
-
Qu'est-ce que MFC sous Windows ? ── Les bases pour maintenir un actif existant
Un panorama des Microsoft Foundation Classes (MFC) : relation avec Win32, structure des applications, cartes de messages (message maps), architecture Documen...
-
Ce qu'il faut faire avant de mettre au rebut un PC Windows — Liste de contrôle pratique pour l'effacement des données, la déconnexion des comptes et les sauvegardes
Ce qu'il faut faire avant de mettre au rebut, transférer, vendre ou restituer un PC Windows en location, du point de vue des sauvegardes, de l'effacement des...
-
Qu'est-ce qu'un PDB (Program Database) ? — Comprendre les informations de débogage, les symboles et Source Link
Qu'est-ce qu'un PDB (Program Database) ? Nous expliquons de façon pratique ce qu'il contient et ne contient pas, ainsi que ses liens avec Debug / Release, le...
-
Qu'est-ce que Roslyn ? Lire, corriger et générer du code C# du point de vue du compilateur
Présentation de Roslyn (.NET Compiler Platform) : Syntax Tree, SemanticModel, Workspace, Analyzer, Source Generator, ainsi que les cas d'usage concrets et le...
-
Externalisation et développement sur mesure d'une application Windows : ce qu'il faut clarifier avant de se lancer
Avant de confier l'externalisation ou le développement sur mesure d'une application Windows, voici les points à clarifier : révision d'un logiciel existant, ...
-
Utiliser les types de données algébriques en .NET Framework / .NET — concevoir les états et les résultats avec les types
Comment utiliser les types de données algébriques — notamment les types somme et les unions discriminées — en .NET Framework et en .NET, et les bénéfices qu'...
-
Bien gérer les jetons d'emprunt d'identité Windows — emprunt des privilèges par thread et retour sécurisé au contexte d'origine
Un guide pratique des jetons d'emprunt d'identité sous Windows : jetons d'accès, jetons principaux, jetons de thread, niveaux d'emprunt d'identité, RevertToS...
-
Le malentendu selon lequel TCP renvoie les données dans les mêmes unités que Send — concevoir la réception comme un flux d'octets
Supposer que TCP restitue les données dans les mêmes unités que Send ou Write mène à des fragmentations, des fusions, des données corrompues et des protocole...
-
Distinguer l'attente du GC d'une fuite mémoire en .NET — Procédure pratique pour observer, comparer et prouver la croissance mémoire
Procédure pour déterminer si la croissance de la mémoire d'une application .NET est une simple attente du ramasse-miettes ou une véritable fuite mémoire, à l...
-
Comment exécuter PowerShell depuis C# (CSharp) et récupérer le résultat sous forme d'objets
Comment lancer PowerShell depuis C# et récupérer le résultat sous forme de PSObject plutôt que de chaînes de caractères : un tour d'horizon pratique du Power...
-
Structurer les tests PowerShell avec Pester — une méthode pratique pour rendre les scripts d'exploitation plus difficiles à casser
Un guide pratique pour tester des scripts PowerShell avec Pester v5 : gestion des dates, opérations sur les fichiers, logique de suppression, mocking et exéc...
-
Pourquoi Windows est devenu ce qu'il est aujourd'hui : l'évolution de Windows vue par un développeur
Un panorama des évolutions de Windows 95 à Windows 11, non pas comme une simple frise visuelle, mais du point de vue d'un développeur d'applications Windows ...