Articoli con il tag «Sviluppo Windows»
56 articoli con il tag «Sviluppo Windows», dal più recente al più vecchio.
-
L'API thread pool Win32 — Concorrenza senza creare thread, tramite CreateThreadpoolWork
State spargendo chiamate CreateThread per tutto il codice nativo? Questo articolo spiega l'API thread pool Win32 ridisegnata in Vista — i quattro oggetti wor...
-
Named pipe in pratica — L'IPC standard di Windows, dalla progettazione alla sicurezza
Guida pratica alle named pipe, il meccanismo standard di comunicazione tra processi su Windows. L'articolo organizza, a partire dalle fonti primarie, la scel...
-
App che si rompono alla ripresa dalla sospensione — Come funzionano gli eventi di alimentazione di Windows e come costruire app aziendali che li sopravvivono
Aprite il portatile e le connessioni dell'app aziendale sono morte — la causa è un progetto che non ha mai tenuto conto della sospensione. L'articolo tratta ...
-
DllMain e il loader lock — Il vero motivo per cui vi dicono di «non fare niente nell'inizializzazione della DLL»
Perché non dovete chiamare LoadLibrary o sincronizzarvi con altri thread da DllMain. A partire dalle fonti primarie, l'articolo spiega come il loader lock se...
-
Che cos'è davvero «Non risponde» — Come Windows decide che un'app è bloccata, e come progettare app che non lo sono
Il «Non risponde» di Windows è un meccanismo in cui il sistema operativo giudica che una finestra non ha prelevato un messaggio per 5 secondi e la sostituisc...
-
Come funzionano gli Appunti e il trascinamento della selezione — Gestire correttamente il trasferimento dati OLE nelle app aziendali
Incollate una tabella Excel e la formattazione si sfascia; chiudete l'app di origine e non potete più incollare — entrambi vengono dal fatto che gli Appunti ...
-
WPR/WPA in pratica — Introduzione all'indagine delle prestazioni a livello di sistema per «tutto il PC è lento»
I problemi di prestazioni come «tutto il PC è lento» o «l'avvio è lento» che il Task Manager non riesce a seguire si indagano catturando e leggendo una tracc...
-
Lo spegnimento di Windows visto dalla tua app — Sopravvivere correttamente a notifiche di uscita, riavvii e interruzioni di corrente
Un riavvio notturno di Windows Update ha corrotto i dati di misura — quel tipo di incidente si può prevenire per progetto. L'articolo tratta, dalle fonti pri...
-
Come funziona la compatibilità delle applicazioni Windows — modalità di compatibilità, shim e Compatibility Administrator
Perché la modalità di compatibilità fa ripartire un'app vecchia. L'articolo spiega gli shim (hook API), gli shim rappresentativi, il rollout con Compatibilit...
-
L'integrazione con la shell di Windows oggi ── menu contestuali, associazioni di file e cosa è cambiato in Windows 11
Perché il menu contestuale di Windows 11 nasconde le voci dietro «Mostra altre opzioni»: dalle basi estensione → ProgID → verb alle cautele delle estensioni ...
-
Leggere i codici di errore Windows — la struttura a tre strati di Win32, HRESULT e NTSTATUS
Quando compare 0x80004005, scomponetelo prima di cercare. Questo articolo spiega la struttura a tre strati di errori Win32, HRESULT e NTSTATUS, il motivo 0x8...
-
Che cosa significa davvero l'«utilizzo della memoria» di Windows — Leggere correttamente Working Set, Private Bytes, Commit e il file di paging
La Memoria di Gestione attività, Working Set, Private Bytes e Commit non sono la stessa cifra. L'articolo spiega il rapporto tra memoria virtuale e fisica di...
-
Usare WMI/CIM da C# e PowerShell — Guida pratica a lettura hardware, monitoraggio processi e interrogazioni remote
Il modo classico per leggere il numero di serie del PC, monitorare lo spazio disco e rilevare l'avvio dei processi è WMI/CIM. L'articolo spiega i cmdlet CIM ...
-
Icone nella system tray e notifiche toast nelle app Windows — le insidie di NotifyIcon e come scegliere l'AppNotification giusta
Una guida pratica per mantenere un'applicazione Windows aziendale residente nella system tray (area di notifica) e avvisare l'utente tramite notifiche toast....
-
Fino a quando funzioneranno le applicazioni VB6? — Lo stato del supporto al runtime e un percorso pratico verso la migrazione a .NET
Fino a quando continueranno a funzionare le applicazioni VB6? Questo articolo chiarisce l'asimmetria tra la politica di supporto del runtime VB6 (ancora supp...
-
Era giapponese, festività e date di chiusura nelle applicazioni aziendali — progettazione resiliente ai cambi di era, JapaneseCalendar e calcolo dei giorni lavorativi nella pratica
Mostrare «Reiwa 8» su un documento, calcolare i giorni lavorativi escludendo le festività, pagare entro la fine del mese successivo dopo una chiusura il gior...
-
Guida pratica a Process Monitor (ProcMon) — Individuare in 10 minuti "la configurazione non viene letta" e "ACCESS DENIED"
"Ho modificato il file di configurazione ma le modifiche non vengono applicate", "funzionava fino a ieri, ma oggi non si avvia più" — prima di mettere mano a...
-
Quando non conviene portare un'app Windows sul Web: tabella decisionale e la soluzione realistica della "divisione"
Le richieste di trasformare in Web le applicazioni Windows aziendali sono in aumento, ma per le app che gestiscono integrazione con dispositivi, elaborazione...
-
Internazionalizzazione delle app WinForms/WPF — la pratica di resx, satellite assembly e cambio cultura
Analizziamo dal punto di vista pratico l'internazionalizzazione delle applicazioni desktop Windows: la differenza tra CurrentCulture e CurrentUICulture, il m...
-
Il CSV non è "solo testo" ── La gestione pratica dei file CSV nelle applicazioni aziendali C# (codifica dei caratteri, compatibilità con Excel, protezione dalle injection)
Analizziamo, dal punto di vista pratico, i tipici errori negli scambi CSV delle applicazioni aziendali──il parsing fatto in casa con Split(','), la corruzion...
-
Non racchiudere HttpClient in un using ── guida pratica alla comunicazione HTTP nelle app aziendali C# (pattern di creazione, timeout, retry)
Creare un nuovo HttpClient con using a ogni richiesta esaurisce i socket, mentre renderlo static non segue i cambi di DNS: analizziamo il meccanismo di quest...
-
Individuare con PerfView e dotnet-trace la causa di un rallentamento — introduzione pratica all'analisi delle prestazioni .NET
Quando un'app aziendale è lenta, satura la CPU o si blocca, quale strumento usare e cosa osservare? Questa guida spiega la divisione dei ruoli fra PerfView e...
-
Introduzione al registro eventi di Windows e a ETW — usare per le app aziendali i meccanismi standard del sistema operativo
La vostra app aziendale Windows usa soltanto file di log? Registro eventi ed ETW sono registrazioni visibili a un livello diverso, per il personale operativo...
-
Oltre appsettings.json — Guida pratica alla gestione della configurazione nelle applicazioni aziendali Windows (impostazioni per ambiente, segreti e percorsi di scrittura)
Uno sguardo pratico alla gestione della configurazione nelle applicazioni aziendali Windows: stratificazione di appsettings.json, scelta tra IConfiguration e...
-
Stampa e output PDF nelle applicazioni aziendali Windows — come scegliere tra System.Drawing.Printing, WPF e librerie di report
Organizza in una tabella decisionale la stampa WinForms con PrintDocument, la stampa WPF con FlowDocument/FixedDocument e le alternative di output PDF. Spieg...
-
Outsourcing e sviluppo su commissione di app Windows: cosa chiarire prima di affidare l'incarico
Prima di affidare in outsourcing o su commissione lo sviluppo di un'app Windows, ecco i punti da chiarire: revisione del software esistente, integrazione con...
-
Il curioso amore di uno sviluppatore, ovvero: come ho imparato a non preoccuparmi e ad amare Windows
Windows è complicato. Ma questa complicazione è anche quella di un sistema operativo che da decenni porta sulle spalle il lavoro reale.
-
Requisiti minimi per un logger personalizzato, con checklist per i test di integrazione
Per rendere i log diagnostici di un'applicazione personalizzata affidabili, illustriamo UTF-8 JSON Lines, i campi richiesti, flush, rotazione e comportamento...
-
Dove tracciare il confine tra unit test e integration test
Organizziamo il confine tra unit test e integration test lungo gli assi logica pura, formati, cablaggio, differenze ambiente e dipendenza dal tempo, condensa...
-
Pitfall delle app di comunicazione seriale - Riconnessione e progettazione dei log
I pitfall delle app di comunicazione seriale da evitare nell'integrazione dispositivi e nel controllo strumenti, organizzati da una prospettiva pratica: fram...
-
Cos'è Reg-Free COM - Utilizzo di COM senza registrazione
Una panoramica delle basi di Reg-Free COM, i ruoli dei contesti di attivazione e dei manifest, i vantaggi, le limitazioni e come decidere quando utilizzarlo ...
-
Come costruire l'output di report Excel - COM / Open XML / Template
La progettazione dell'output di report Excel cambia considerevolmente a seconda che si automatizzi Excel stesso, si generino file xlsx direttamente o si mant...
-
Introduzione alla raccolta di crash dump Windows - WER/ProcDump/WinDbg
Per inseguire crash di applicazioni Windows difficili da riprodurre, illustreremo quando usare WER LocalDumps, ProcDump, MiniDumpWriteDump e WinDbg, insieme ...
-
Perché preferire l'attesa su evento a Sleep(1) su Windows
Su Windows, la precisione delle attese temporizzate brevi è limitata dalla granularità del clock di sistema e dallo scheduling. Se si sta aspettando l'arrivo...
-
Come isolare concretamente "solo le operazioni che necessitano dei privilegi di amministratore" in un'app Windows
Una procedura dettagliata concreta per mantenere l'UI dell'app Windows su asInvoker isolando solo le operazioni con privilegi di amministratore in un helper ...
-
Memorizzazione di segreti nelle app Windows: evitare la configurazione in testo normale con DPAPI
Per evitare di archiviare credenziali di connessione e token API in file di configurazione di testo normale nelle app Windows, esamineremo DPAPI / ProtectedD...
-
Elenco di controllo pre-migrazione per il passaggio da .NET Framework a .NET
Un pratico elenco di controllo di cosa verificare prima della migrazione da .NET Framework a .NET: tipi di progetto, tecnologie non supportate, dipendenze Nu...
-
Come convertire YUV in RGB con Media Foundation
Due modi per ottenere RGB da YUV in Media Foundation: lasciare che Source Reader emetta RGB32 o convertire NV12 / YUY2 con il passo e la matrice dei colori g...
-
Una guida alle impostazioni avanzate della NIC Windows - RSS / LSO / EEE / Attiva LAN
Una guida pratica alle impostazioni avanzate della NIC Windows. Cosa cambia effettivamente quando modifichi Jumbo Packet, Speed & Duplex, RSS, RSC, LSO, Fl...
-
Estrazione di un'immagine fissa da un MP4 in un momento specifico con Media Foundation
Come acquisire il fotogramma più vicino a un determinato tempo in un MP4 con Source Reader, correggere il passo e il RGB32 byte alfa e salvarlo come PNG.
-
Una lista di controllo minima sulla sicurezza per lo sviluppo di app Windows
Una guida in stile elenco di controllo alle nozioni di base sulla sicurezza per le app aziendali WPF / WinForms / WinUI / C++ / C#: privilegi, firma, aggiorn...
-
COM, ActiveX e OCX — Distinzioni pratiche per chi eredita sistemi Windows
COM è la tecnologia di base, ActiveX è il contesto in cui si usano i componenti COM embedded, OCX è un'estensione di file per le ActiveX controls. Organizzia...
-
Chiamando un C# Native AOT DLL da C / C++
Esporta i punti di ingresso C da C# con Native AOT e UnmanagedCallersOnly e chiamali da C / C++: impostazione del progetto, gestione delle stringhe e un esem...
-
Perché utilizzare .NET Generic Host e BackgroundService nelle app desktop
Come utilizzare Generic Host e BackgroundService per organizzare l'avvio, l'elaborazione periodica, l'arresto, la registrazione, la configurazione e DI negli...
-
Come gestire ActiveX / OCX oggi - Una tabella decisionale Mantieni / Avvolgi / Sostituisci
Quando trovi ActiveX / OCX, come scegliere tra mantenerlo, racchiuderlo e sostituirlo, coprendo 32-bit / 64-bit, registrazione, dipendenze del browser e supp...
-
Costruire una base di test del percorso di fallimento Windows con Application Verifier
Cos'è Application Verifier, organizzato insieme a come costruire una base di test del percorso di fallimento Windows utilizzando Handles, Heaps, Low Resource...
-
Indagine sugli arresti anomali a lungo termine di un'app per fotocamere industriali: la perdita dell'handle (parte 1)
Come esaminare un'app Windows che si arresta improvvisamente in modo anomalo dopo un funzionamento prolungato, utilizzando un caso di studio di un'app di con...
-
Perché le ritrasmissioni TCP bloccano la comunicazione con telecamere industriali, e come isolarle
Come isolare la causa quando la comunicazione con telecamere industriali si blocca per diversi secondi a causa di ritrasmissioni TCP, coprendo packet loss, R...
-
Una guida pratica a FileSystemWatcher: gestire gli eventi persi e duplicati
Organizziamo come utilizzare FileSystemWatcher e le sue insidie: eventi persi, notifiche duplicate, trappole di rilevamento del completamento, nuove scansion...
-
Un'introduzione a Media Foundation: comprendere l'API attraverso una lente COM
Spieghiamo cos'è Media Foundation, insieme al vocabolario di base di Windows media API - COM, HRESULT, IMFSourceReader, MFTs - nell'ordine in cui dovresti im...
-
Una guida pratica per avvicinarsi il più possibile a Soft Real-Time su Windows ordinario
Organizziamo come stabilizzare l'elaborazione periodica e a bassa latenza su Windows ordinario, coprendo la risoluzione del timer, le priorità, le impostazio...
-
Fondamenti di mutua esclusione per integrazione basata su file - Best practice per lock file e claim atomici
Organizziamo la mutua esclusione per integrazione basata su file attorno a lock file, claim atomici, temp -> rename e idempotenza, e tracciamo design che pre...
-
Chiamare DLL native da C#: wrapper C++/CLI vs P/Invoke
Quando P/Invoke basta e quando un wrapper C++/CLI ripaga per chiamare DLL native da C#: classi C++, ownership, eccezioni, callback — con codice di esempio.
-
Fondamenti STA/MTA di COM - Modelli di threading e come evitare blocchi
Perché i thread UI sono STA, come funziona il marshaling tra apartment e perché le chiamate COM si bloccano senza message pumping - con diagrammi e esempio d...
-
Esempio pratico di un ponte COM per chiamare una DLL a 64 bit da un'applicazione a 32 bit
Quando un'applicazione a 32 bit non può chiamare direttamente una DLL a 64 bit, un ponte COM può collegarle. Illustrativo approccio, inclusi vincoli di Windo...
-
Cos'è COM? - Perché il design di Windows COM è ancora bello oggi
Spieghiamo cos'è COM dal punto di vista del design delle interfacce Windows COM, IUnknown, GUID e compatibilità binaria, e perché regge ancora oggi.