Blog
Artículos prácticos de KomuraSoft LLC sobre desarrollo web, SEO, Google Ads, desarrollo para Windows, aprovechamiento de sistemas existentes e investigación de fallos.
Búsqueda con IA en todo el sitio
Las consultas de búsqueda se envían a Cloudflare AI Search para generar los resultados. No introduzcas datos personales.
-
Cómo comparar correctamente la velocidad de versiones de un programa en Windows
Al comparar versiones de un programa en Windows, se explica un procedimiento reproducible que cubre power mode, power plan, calor, ruido de fondo, métricas y...
-
Windows: cómo separar en el código «solo los procesos que necesitan permisos de administrador»
Diseño para mantener la UI de una app de Windows en asInvoker y aislar en un helper EXE los procesos que exigen permisos de administrador, con UAC, runas, pi...
-
Almacenamiento de información confidencial en aplicaciones Windows - Cómo evitar la configuración en texto plano con DPAPI
Para no guardar en texto plano las cadenas de conexión ni los tokens de API en aplicaciones Windows, se repasan DPAPI / ProtectedData, la diferencia entre Cu...
-
Lista de verificación previa a la migración de .NET Framework a .NET
Checklist práctico para revisar el tipo de proyecto, tecnologías no compatibles, dependencias NuGet, formato SDK, WPF/WinForms, CI/CD y operación antes de mi...
-
Cómo convertir YUV a RGB en Media Foundation
Cómo convertir fotogramas YUV a RGB en Media Foundation: conversión automática con Source Reader, conversión manual de NV12/YUY2, stride y espacio de color.
-
Guía de configuración avanzada de NIC en Windows — RSS/LSO/EEE/Wake on LAN
Organizamos con enfoque práctico la configuración avanzada de NIC en Windows: Jumbo Packet, Speed & Duplex, RSS, RSC, LSO, Flow Control, EEE, Wake on LAN, y ...
-
Cómo extraer una imagen fija de un MP4 en un instante específico con Media Foundation
Extraemos con Source Reader el fotograma más cercano a un instante de un MP4, ajustamos el stride y el alpha de RGB32, y lo guardamos como PNG.
-
Lista de verificación mínima de seguridad para el desarrollo de aplicaciones de Windows
Lista de verificación para aplicaciones empresariales WPF, WinForms, WinUI, C++ y C#: permisos, firma, actualizaciones, secretos, HTTPS, validación de entrad...
-
¿Qué es .NET Generic Host? - La base de DI, configuración y registro
Analiza el papel de Generic Host —DI, configuración, registro, IHostedService y BackgroundService— y resume, con criterio práctico, dónde conviene usarlo y d...
-
¿Qué es .NET Native AOT? Diferencias con JIT y trimming
Explicamos qué es Native AOT diferenciándolo de JIT, ReadyToRun, self-contained, single-file, trimming y source generator, y resumimos desde una perspectiva ...
-
Qué son COM, ActiveX y OCX - Diferencias y relación explicadas
Explicamos qué son COM, ActiveX y OCX: diferencias, relación, vínculo con OLE, dónde se usan y cómo abordarlos hoy desde una perspectiva práctica.
-
Cómo elegir entre los 3 temporizadores de .NET - PeriodicTimer/Timer/DispatcherTimer
Diferencias entre PeriodicTimer, System.Threading.Timer y DispatcherTimer, y cómo elegirlos para el procesamiento async, los callbacks de ThreadPool y las ac...
-
Cómo invocar una DLL nativa de C# Native AOT desde C/C++
Publicar una biblioteca de C# como DLL nativa con Native AOT e invocar sus puntos UnmanagedCallersOnly desde C/C++: casos de uso, patrones y precauciones.
-
Por qué usar .NET Generic Host y BackgroundService en una aplicación de escritorio
Resumimos cómo usar Generic Host y BackgroundService en herramientas y apps residentes de Windows para organizar el inicio, el procesamiento periódico, el ci...
-
ActiveX / OCX: cómo tratarlos hoy — tabla de decisión para mantener, envolver o reemplazar
Al encontrar un ActiveX / OCX, cómo decidir entre mantenerlo, envolverlo o reemplazarlo, considerando 32 bits / 64 bits, registro, dependencia del navegador ...
-
WPF/WinForms: async y el hilo de UI, resumidos en una hoja
Repasamos, en WPF / WinForms, a dónde vuelve await, Dispatcher / Invoke, ConfigureAwait(false) y dónde se atascan .Result / .Wait().
-
Base de pruebas de casos anómalos en Windows con Application Verifier
Qué es Application Verifier y cómo usarlo, junto con Handles, Heaps, Low Resource Simulation y !htrace, para crear una base de pruebas de casos anómalos en W...
-
Investigación de un crash en una cámara industrial tras un largo funcionamiento - Edición fuga de handles
Cómo abordar el crash repentino de una aplicación Windows tras un funcionamiento prolongado, usando el caso real de una aplicación de control de cámara indus...
-
Retransmisión TCP: por qué se detiene la comunicación con la cámara industrial y cómo diagnosticarla
Cómo diagnosticar cortes de varios segundos en la comunicación con una cámara industrial por retransmisiones TCP: pérdida de paquetes, RTO, timestamps RFC132...
-
Guía práctica de FileSystemWatcher - Cómo evitar pérdidas de eventos y duplicados
Analizamos el uso de FileSystemWatcher: pérdida de eventos, notificaciones duplicadas, trampas de finalización, reescaneo, claim atómico e idempotency.
-
Introducción a Media Foundation - Cómo entender la API desde la perspectiva de COM
Explicamos qué es Media Foundation junto con los términos básicos de su API multimedia en Windows —COM, HRESULT, IMFSourceReader, MFT— en el orden adecuado p...
-
Tabla práctica de decisión de C# async/await - Task.Run y ConfigureAwait
Organizamos las mejores prácticas de C# async/await con una tabla de decisión para espera de E/S, cálculo de CPU, Task.Run, ConfigureAwait(false) y fire-and-...
-
Guía práctica para lograr el máximo de soft real-time posible en un Windows convencional
Cómo estabilizar procesos periódicos y de baja latencia en Windows convencional: precisión del temporizador, prioridad, energía y monitoreo.
-
Conocimientos básicos del control de exclusión en la integración de archivos — Mejores prácticas de bloqueo de archivos y claim atómico
Organizamos el control de exclusión en la integración de archivos: bloqueo de archivos, claim atómico, temp -> rename e idempotency, para diseñar una integra...
-
Llamar DLL nativas desde C#: envoltorio C++/CLI frente a P/Invoke
Al usar DLL nativas desde C#, distinguimos cuándo basta P/Invoke y cuándo conviene un envoltorio C++/CLI, según propiedad, excepciones, tipos C++ y callbacks...
-
Introducción a HCP Chart y MakingHCPChartSkill
Explicamos qué es un HCP Chart y resumimos, con MakingHCPChartSkill, el flujo para convertir HCP-DSL en SVG determinista, su lectura y su uso.
-
Conocimientos básicos de STA/MTA en COM - El modelo de subprocesos y cómo evitar los bloqueos
Explicamos los fundamentos de STA/MTA en COM: el Apartment Model, el subproceso de UI, el bucle de mensajes, la marshalling y cómo evitar bloqueos.
-
Caso práctico de puente COM: cómo llamar a una DLL de 64 bits desde una app de 32 bits
Cuando una app de 32 bits no puede llamar directamente a una DLL de 64 bits, explicamos cómo unirlas con un puente COM, con las restricciones de Windows y el...
-
Qué es COM — por qué el diseño de Windows COM sigue siendo hermoso hoy
Explica qué es COM: el diseño de interfaces de Windows COM, IUnknown, GUID y la compatibilidad binaria, y por qué sigue vigente hoy.
-
Aviso de apertura del blog técnico - Hemos iniciado un blog de desarrollo Windows / C# / COM
Aviso de apertura del blog técnico de KomuraSoft LLC, con conocimientos sobre desarrollo Windows, C# / .NET, COM, diseño y herramientas de desarrollo.