ReaderWriterLockSlim – Ottimizzare le performance delle applicazioni multi-thread.

Carissimi lettori ben trovati. Quest’oggi parleremo delle performance delle nostre applicazioni multithread, soffermandoci sull’utilizzo di una nuova classe: ReaderWriterLockSlim introdotta con la .NET Framework 3.5. Tale classe nasce con il presupposto di ottimizzare l’utilizzo dei lock in applicazioni multi-thread. Capita spesso infatti che più thread cerchino d’accedere contemporaneamente ad una risorsa condivisa, la quale per…

0

Problemi di deserializzazione con serialization assembly pregenerati (sgen.exe)

Supponiamo che la vostra applicazione si connetta a diversi web service di cui ha generato i proxy tramite la funzionalità di Visual Studio “Add web reference” o “Add service reference”. Come molti di voi sapranno, la comunicazione con i web service avviene utilizzando lo standard SOAP: in sostanza vengono scambiati dei messaggi XML che trasportano…

0

NET Framework 4.0: Introduzione alla Parallel Extensions for the .NET Framework – PFx

Carissimi ben trovati. Oggi faremo un’introduzione in merito la nuova feature introdotta nella.NET Framework 4.0, conosciuta come “Parallel Extensions for the .NET Framework”. Prima di entrare nel merito della PFx, lasciatemi fare una premessa riguardo le attuali performance delle CPU dei nostri calcolatori. Risulta noto a tutti noi, che l’obbiettivo dei produttori di microprocessori è…

0

Il “Boxing”, questo sconosciuto…

Salve a tutti! Oggi volevo parlare di una feature che ha fatto la sua comparsa in Vista e che in Windows 7 è già stata disabilitata per default.. diciamo che ha avuto vita breve. Intensa, ma breve.. Tutti vi ricordate com’era noioso attendere l’avvio del Computer. Tutte le volte che si avviava Windows, si faceva…

0

Troubleshooting di una RemotingException

Questo post analizza un errore a runtime di .NET Remoting. WCF sta rapidamente diventando l’infrastruttura di comunicazione preferita per le applicazioni .NET, ma .NET Remoting è ancora utile in alcuni casi. Specificamente, quando l’interoperabilità non è richiesta ed è necessario passare gli oggetti per riferimento invece che per valore. Il problema A runtime, un client…

0

Web Application Out Of Memory: blocco nel Finalizer thread

In uno dei miei post precedenti, Sempre chiamare il metodo Dispose!, avevo trattato un di un crash che avveniva per una exception generata all’interno del metodo Dispose. Siccome il codice non chiamava esplicitamente la Dispose, questa era chiamata dal Garbage Collector in fase di Finalizzazione. Avvenendo dunque l’eccezione al di fuori del contesto di una…

0

Le CAPICOM e Windows 7

Ogni nuova release di Sistema Operativo porta con sè diverse novità, tra tecnologie vecchie che scompaiono di scena, e nuove entrate. CAPICOM, la libreria wrapper COM per le Crypto API, esce di scena e non è più supportata a partire da Windows 7. Il link uffciale su MSDN, http://msdn.microsoft.com/en-us/library/aa375754(VS.85).aspx, indica i sistemi operativi su cui…

1

Come determinare se un oggetto .Net è già stato finalizzato

Introduzione Eccoci al mio secondo post. Vediamo insieme una parte di un problema che sto analizzando in questi giorni. Il problema è piuttosto complesso, ma in questo post ci concentriamo su una sottoparte. Ho un dump relativo ad un crash di un processo e il problema, come al solito in questi casi, è quello di…

0

Workflow Foundation: Migrazione da WF3 a WF4 – Note e Riferimenti

La versione 4.0 della .NET Framework definisce un nuovo object model per Workflow Foundation (WF). Questo nuovo object model, chiamato WF4, si aggiungerà all’object model iniziale di WF, introdotto nella .NET Framework 3.0 ed ampliato nella .NET Framework 3.5, chiamato in breve WF3. L’object model di WF3 usa i namespace System.Workflow.*, mentre l’object model di…

3

Sempre chiamare il metodo Dispose!

Un caso che ho gestito recentemente mi dà lo spunto per trattare questo argomento che di certo può interessare molti. Tante volte per pigrizia o fretta si cerca di abbreviare la stesura del codice tralasciando alcuni aspetti che si reputano di importanza secondaria. Spesso una delle prime cose che si tende a dimenticare o tralasciare…

0