Artículos con la etiqueta «Desarrollo en Windows»
52 artículos con la etiqueta «Desarrollo en Windows», del más reciente al más antiguo.
-
Cómo funcionan el portapapeles y arrastrar y soltar — Gestionar correctamente la transferencia de datos OLE en aplicaciones empresariales
Una tabla de Excel se deforma al pegarla y deja de poder pegarse si cierra el origen: es el portapapeles colocando el mismo contenido en varios formatos. Exp...
-
WPR/WPA en la práctica — Introducción al análisis de rendimiento del sistema para «todo el PC va lento»
Problemas como «todo el PC va lento» o «el arranque es lento», que el Administrador de tareas no explica, se investigan con WPR/WPA leyendo una traza ETW de ...
-
El apagado de Windows visto desde la aplicación ── cómo sobrevivir correctamente a la notificación de cierre, el reinicio y el corte de energía
Un reinicio nocturno de Windows Update corrompió datos de medición: ese accidente se evita con buen diseño. Explicamos, con fuentes oficiales, cómo recibir l...
-
Cómo funciona la compatibilidad de aplicaciones en Windows ── el modo de compatibilidad, los shims y Compatibility Administrator para prolongar la vida de aplicaciones antiguas
Por qué funciona el modo de compatibilidad: el mecanismo de los shims (hooks de API), sus funciones típicas, el despliegue con Compatibility Administrator y ...
-
Cómo interpretar los códigos de error de Windows — la estructura de tres capas de Win32, HRESULT y NTSTATUS
Antes de buscar 0x80004005, descompóngalo. Explicamos la estructura de tres capas Win32/HRESULT/NTSTATUS, el patrón 0x8007xxxx y cómo investigar con err.exe ...
-
¿Qué representa realmente el «uso de memoria» de Windows? — Cómo interpretar correctamente Working Set, Private Bytes, Commit y el archivo de paginación
La memoria de Task Manager, Working Set, Private Bytes y Commit no son el mismo valor. Explica la memoria virtual y física de Windows y qué indicador usar an...
-
Usar WMI/CIM desde C# y PowerShell ── Guía práctica de obtención de información de hardware, monitorización de procesos y consultas remotas
WMI/CIM es la solución estándar para leer el número de serie, monitorizar el disco y detectar procesos. Cmdlets CIM, migración desde Get-WmiObject, C# y tram...
-
Cómo gestionar dispositivos USB en aplicaciones de Windows — cómo elegir entre COM virtual, HID, WinUSB y SDK propietario
Comparamos cuatro formas de controlar equipos y dispositivos USB desde una aplicación de Windows —puerto COM virtual, HID, WinUSB y SDK del fabricante— y rep...
-
Diseño de códigos en sistemas empresariales ── Cómo definir códigos de producto y cliente, y el dígito de control
Guía práctica para diseñar códigos de producto y cliente en sistemas empresariales: código significativo frente a secuencial, fórmulas de dígito de control (...
-
El manejo de incidentes no termina con la recuperación ── el modelo de postmortem (prevención de recurrencia) para equipos de desarrollo pequeños
Si un incidente se cierra con «arreglarlo y disculparse», se repite. Adaptamos el postmortem blameless a equipos pequeños: plantilla de una hora, tabla de fu...
-
Cómo versionar el esquema de la base de datos de una aplicación empresarial — Migraciones que evitan que «cada cliente tenga una base de datos distinta»
Guía práctica para versionar el esquema de bases de datos de aplicaciones empresariales dispersas entre clientes: PRAGMA user_version, migraciones progresiva...
-
Suspensión, hibernación y Modern Standby: evitar con diseño que las apps de larga duración "se detengan de noche"
Analiza por qué las apps Windows de larga duración se detienen de noche, según las diferencias entre S3, hibernación y Modern Standby. Explica temporizadores...
-
MAX_PATH y las trampas de rutas y nombres de archivo en Windows — el límite de 260 caracteres, nombres reservados, el punto final y las mayúsculas y minúsculas
Analizamos las limitaciones de rutas y nombres de archivo, causa habitual de «archivo no encontrado»: el desglose de MAX_PATH=260, la activación de rutas lar...
-
Trampas de las unidades de red y las rutas UNC — la gestión práctica de servidores de archivos (carpetas compartidas) en aplicaciones empresariales
Analizamos los problemas típicos al escribir en carpetas compartidas o monitorizarlas desde una app empresarial: la letra de unidad (Z:), los permisos según ...
-
Prolongar la vida útil o migrar aplicaciones VB6 / Access — Tabla de decisión: mantener, envolver o reemplazar
Cómo decidir si mantener, prolongar la vida útil o reemplazar aplicaciones VB6 y Access: el runtime, los bits de ACE, riesgos de carpetas compartidas y el pa...
-
Prevención de la ejecución múltiple en aplicaciones de Windows — Mutex con nombre y activación en el segundo inicio
Analizamos cómo implementar la prevención de la ejecución múltiple en apps Windows mediante un Mutex con nombre. Cubrimos Global\ y Local\, AbandonedMutexExc...
-
Cómo llamar a la API de Win32 desde C# de forma segura — Guía práctica de P/Invoke (DllImport / LibraryImport / CsWin32)
Repasamos los puntos prácticos de P/Invoke en C# para llamar a la API de Win32: DllImport frente a LibraryImport, generación automática con CsWin32, trampas ...
-
Por qué aparece «Windows protegió su PC» en Windows
Analiza por qué aparece SmartScreen al distribuir apps de Windows: firma de código, certificados EV/OV, Azure Artifact Signing, MSIX, Store, ClickOnce y dist...
-
Trampas de registro y bitness en el desarrollo COM/OCX/ActiveX
Un repaso práctico de los problemas más comunes en COM, OCX y ActiveX: bitness de 32/64 bits, Visual Studio 2022, regsvr32/Regasm, permisos de administrador,...
-
Cómo acelerar la validación de aplicaciones con Windows Sandbox
Cómo usar Windows Sandbox para aislar problemas de permisos de administrador, reproducir entornos limpios y simular falta de permisos o de recursos, con .wsb...
-
Requisitos mínimos de un logger propio y checklist de pruebas de integración
Para que el log de diagnóstico de una aplicación propia sea confiable, organizamos UTF-8 JSON Lines, los campos obligatorios, flush, rotación, comportamiento...
-
Cómo trazar el límite entre pruebas unitarias y pruebas de integración
Analizamos el límite entre pruebas unitarias y de integración: lógica pura, formato, cableado, entorno y tiempo, en una tabla de decisión práctica.
-
Cómo funciona la resolución de nombres de DLL en Windows - Orden de búsqueda y SxS
Resolución de nombres de DLL en Windows: orden de búsqueda, Known DLLs, loaded-module list, API set, manifest SxS y las funciones LoadLibrary.
-
¿Qué es VBA? - Límites, futuro, cuándo reemplazarlo y un patrón realista de migración
Repasamos los fundamentos de VBA, sus límites, su futuro, cuándo reemplazarlo y cómo migrar macros de Excel de forma gradual y realista.
-
Puntos débiles de las aplicaciones de comunicación serie - hasta el diseño de la reconexión y los registros
Puntos débiles habituales de las aplicaciones de comunicación serie en la integración con equipos e instrumentos de medición: framing, timeouts, RTS/CTS, DTR...
-
Diseño para conservar registros y volcados de memoria cuando falla una aplicación de Windows
Explica cómo combinar el registro habitual, el marcador final de fallo, WER LocalDumps y un proceso de vigilancia para no perder pistas de la causa cuando un...
-
Diseño de UX para apps de Windows: prioridades según el entorno de uso
Organizamos en una tabla de decisión qué priorizar en el diseño de UX de apps de Windows, según ToC/ToB, el método de entrada, el entorno de uso y el costo d...
-
Cómo elegir entre WinForms, WPF y WinUI: tabla de decisión práctica
Analizamos qué elegir entre WinForms, WPF y WinUI según el desarrollo nuevo, los activos existentes, la distribución, la expresividad de la UI y la estructur...
-
Trampas de la memoria compartida y buenas prácticas para producción
Analizamos las trampas de usar memoria compartida en producción y el diseño que reduce la tasa de incidentes: sincronización, visibilidad, ciclo de vida, ABI...
-
Guía de perfiles de usuario de Windows - AppData y NTUSER.DAT
Explicamos el perfil de usuario de Windows, el uso de AppData, los perfiles local, móvil, obligatorio y temporal, Folder Redirection, FSLogix y cómo diagnost...
-
¿Qué es Reg-Free COM? - El mecanismo para usar COM sin registro
Explicamos los fundamentos de Reg-Free COM, el papel del contexto de activación y los manifiestos, sus ventajas, límites y criterios de decisión para la prác...
-
Cómo grabar imágenes y texto en los fotogramas de un MP4 con Media Foundation
Con Media Foundation, cómo grabar imágenes y texto en cada fotograma de un MP4 repartiendo el trabajo entre Source Reader, el dibujado, la conversión de colo...
-
Introducción a la recolección de volcados de memoria de fallos en Windows - WER/ProcDump/WinDbg
Para depurar fallos difíciles de reproducir en apps Windows, se explica cuándo usar WER LocalDumps, ProcDump, MiniDumpWriteDump y WinDbg, y sus precauciones ...
-
Por qué priorizar la espera por eventos sobre Sleep(1) en Windows
En Windows, la precisión de una espera corta con timeout depende de la granularidad del reloj del sistema y de la planificación. Este artículo explica por qu...
-
Tabla de decisión: terminar o continuar ante una excepción inesperada
Analiza si una aplicación debe terminar o continuar tras una excepción inesperada, según el daño al estado, los efectos externos, los hilos y los límites nat...
-
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.
-
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 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...
-
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...
-
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...
-
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...
-
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.