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.
-
Comment comparer correctement la vitesse de différentes versions d'un programme sous Windows
Une procédure reproductible pour comparer des versions de programme sous Windows, couvrant le mode d'alimentation, le plan d'alimentation, la chaleur, le bru...
-
Comment isoler concrètement, dans une application Windows, « uniquement les opérations nécessitant des privilèges administrateur »
Comment concevoir une application Windows qui garde son UI en asInvoker tout en isolant dans un helper EXE les seuls traitements nécessitant des privilèges a...
-
Stocker les secrets des applications Windows - Éviter les configurations en clair avec DPAPI
Pour éviter de stocker en clair, dans un fichier de configuration, les informations de connexion et les jetons API d'une application Windows, cet article pré...
-
Liste de vérification avant de migrer de .NET Framework vers .NET
Liste de vérification pratique à passer en revue avant de migrer de .NET Framework vers .NET : type de projet, technologies non prises en charge, dépendances...
-
Comment convertir du YUV en RGB avec Media Foundation
Comment convertir des trames YUV en RGB avec Media Foundation : la conversion automatique du Source Reader vers RGB32, ou la conversion manuelle de NV12/YUY2...
-
Guide des paramètres avancés de la carte réseau (NIC) sous Windows - RSS/LSO/EEE/Wake on LAN
Un guide pratique des paramètres avancés de la carte réseau (NIC) sous Windows. Nous expliquons ce qui change réellement lorsque l'on modifie Jumbo Packet, S...
-
Extraire une image fixe d'un MP4 à un instant précis avec Media Foundation
Comment récupérer, avec le Source Reader, la frame la plus proche d'un instant donné dans un MP4, corriger le stride et l'octet alpha du RGB32, puis l'enregi...
-
Liste de contrôle minimale de sécurité pour le développement d'applications Windows
Pour les applications métier WPF / WinForms / WinUI / C++ / C#, cet article organise sous forme de liste de contrôle les bases concernant les privilèges, la ...
-
Qu'est-ce que le .NET Generic Host ? - Le socle de la DI, de la configuration et des logs
Cet article clarifie le rôle du Generic Host à travers ses liens avec la DI, la configuration, les logs, IHostedService et BackgroundService, et résume, d'un...
-
Qu'est-ce que .NET Native AOT ? - Les différences avec JIT et le trimming
Ce qu'est Native AOT en .NET, expliqué à travers ses différences avec JIT, ReadyToRun, self-contained, single-file, trimming et les source generators, avec l...
-
Qu'est-ce que COM / ActiveX / OCX ? - Différences et relations expliquées ensemble
Un guide pratique sur ce qu'est COM, ce qu'est ActiveX et ce qu'est OCX - leurs différences et relations, le lien avec OLE, où on les rencontre, et comment l...
-
Bien choisir entre les 3 minuteurs .NET - PeriodicTimer/Timer/DispatcherTimer
Cet article explique les différences entre PeriodicTimer, System.Threading.Timer et DispatcherTimer, et comment bien les choisir selon qu'il s'agit de traite...
-
Appeler une DLL C# Native AOT depuis C/C++
Nous faisons le point sur la publication d'une bibliothèque de classes C# en DLL native avec Native AOT, et sur l'appel depuis C/C++ des points d'entrée marq...
-
Pourquoi utiliser le Generic Host .NET et BackgroundService dans une application de bureau
Comment utiliser le Generic Host et BackgroundService pour organiser le démarrage, le traitement périodique, l'arrêt, la journalisation, la configuration et ...
-
Comment traiter ActiveX / OCX aujourd'hui - Tableau de décision conserver / envelopper / remplacer
Lorsque vous rencontrez ActiveX / OCX, comment choisir entre conserver, envelopper et remplacer, en couvrant le 32 bits / 64 bits, l'enregistrement, les dépe...
-
WPF/WinForms : async et le thread UI récapitulés en une fiche
Après un await dans WPF ou WinForms, sur quel thread votre code reprend-il ? Nous couvrons Dispatcher / Invoke, ConfigureAwait(false), et pourquoi .Result et...
-
Construire un socle de test des cas anormaux Windows avec Application Verifier
Ce qu'est Application Verifier, expliqué avec la construction d'un socle de test des cas anormaux Windows à l'aide de Handles, Heaps, Low Resource Simulation...
-
Enquête sur les plantages après un fonctionnement de longue durée d'une caméra industrielle - La fuite de handles (partie 1)
Comment analyser un plantage soudain d'une application Windows après un fonctionnement de longue durée : à travers le cas d'une application de pilotage de ca...
-
Pourquoi les retransmissions TCP bloquent la communication d'une caméra industrielle, et comment isoler la cause
Comment isoler la cause quand la communication d'une caméra industrielle se bloque pendant plusieurs secondes à cause de retransmissions TCP : paquets perdus...
-
Guide pratique de FileSystemWatcher - Gérer les événements manqués et les doublons
Nous faisons le point sur l'utilisation de FileSystemWatcher et ses pièges : événements manqués, notifications en double, pièges de la détection d'achèvement...
-
Introduction à Media Foundation - Comprendre l'API à travers le prisme COM
Nous expliquons ce qu'est Media Foundation, ainsi que le vocabulaire de base des API multimédias Windows - COM, HRESULT, IMFSourceReader, MFT - dans l'ordre ...
-
Tableau de décision pratique pour C# async/await - Task.Run et ConfigureAwait
Nous organisons les bonnes pratiques de C# async/await - attentes d'E/S, calcul CPU, Task.Run, ConfigureAwait(false) et fire-and-forget - avec un tableau de ...
-
Guide pratique pour se rapprocher autant que possible du temps réel souple sur un Windows ordinaire
Nous organisons la façon de stabiliser le traitement périodique et à faible latence sur un Windows ordinaire, en abordant la résolution des minuteurs, les pr...
-
Les bases du contrôle d'exclusion pour l'intégration par fichiers - bonnes pratiques de verrouillage de fichiers et de claim atomique
Nous faisons le point sur le contrôle d'exclusion pour l'intégration par fichiers sous l'angle du verrouillage de fichiers, du claim atomique, du couple temp...
-
Appeler une DLL native depuis C# : wrapper C++/CLI vs P/Invoke
Lorsqu'on utilise une DLL native depuis C#, cet article distingue les cas où P/Invoke suffit de ceux où un wrapper C++/CLI est pertinent, selon des critères ...
-
Introduction aux diagrammes HCP et à MakingHCPChartSkill
Nous expliquons ce qu'est un diagramme HCP et présentons comment MakingHCPChartSkill convertit le HCP-DSL en SVG déterministe, comment lire le résultat et co...
-
Les fondamentaux STA/MTA de COM - modèles de threads et comment éviter les blocages
Pourquoi les threads UI sont en STA, comment fonctionne le marshaling entre Apartments, et pourquoi les appels COM se bloquent sans boucle de messages - avec...
-
Un exemple concret de pont COM pour appeler une DLL 64 bits depuis une application 32 bits
Lorsqu'une application 32 bits ne peut pas appeler directement une DLL 64 bits, un pont COM permet de relier les deux. Nous détaillons la démarche, avec les ...
-
Qu'est-ce que COM ? - Pourquoi la conception de COM sous Windows est encore magnifique
Nous expliquons ce qu'est COM du point de vue de la conception des interfaces de Windows COM, d'IUnknown, des GUID et de la compatibilité binaire, et pourquo...
-
Lancement de notre blog technique - Un blog de développement Windows / C# / COM
Annonce du lancement du blog technique de KomuraSoft LLC. Nous y partagerons nos connaissances sur le développement Windows, le C# / .NET, COM, la conception...