DarioSantarelli.Blog("UgiDotNet");

<sharing mode=”On” users=”*” />
posts - 176, comments - 105, trackbacks - 3

My Links

News


This is my personal blog. These postings are provided "AS IS" with no warranties, and confer no rights.




Tag Cloud

Archives

Post Categories

My English Blog

.NET

Reactive Extensions (Rx) e Weak events

Come molti sanno, il classico uso degli eventi in C# ha un effetto collaterale: se non viene gestita correttamente la strong reference che si forma tra l’oggetto che espone l’evento (EventSource) e gli oggetti che registrano gli event handlers (EventListeners), si rischia di generare dei memory leak. Infatti, se l’ EventSource ha un ciclo di vita più lungo rispetto agli EventListeners, questi ultimi, se non si deregistrano correttamente dall’evento, vengono tenuti in vita in memoria anche quando non ci sono più riferimenti attivi verso di essi e quindi non vengono reclamati dalla garbage collection fintantoché l’EventSource è attivo. ...

posted @ domenica 25 marzo 2012 17:15 | Feedback (0) | Filed Under [ .NET ]

Spring.NET REST Client

Sono sempre stato un appassionato di soluzioni REST-ful e la nuova versione di Spring.NET REST Client costituisce a mio avviso un ottimo strumento per implementare il client di un qualunque servizio REST in maniera molto semplice e potente, non solo su framework 2.0/3.5/4.0, ma anche su Silverlight 3 e 4, Compact Framework 2.0/3.5 e Windows Phone 7. Queste API client fanno capo ad una classe di riferimento chiamata RestTemplate. Si tratta a tutti gli effetti di un helper che astrae in maniera molto semplice ognuno dei sei principali metodi HTTP che possono essere supportati da un...

posted @ sabato 10 dicembre 2011 23:29 | Feedback (0) | Filed Under [ .NET ]

[AOP] UI e dintorni con PostSharp

L’AOP ormai sta diventando un paradigma di programmazione sempre più diffuso specialmente nel mondo .NET dove strumenti come PostSharp, DotSpect (Compile-time static injection) e Spring.NET, Castle Windsor, Enterprise Library Policy Injection Application Block (Dynamic Proxy) rendono sempre più semplice la gestione dei “cross-cutting concerns” che provengono dal mondo Object-Oriented. Personalmente sono stato sempre un entusiasta di PostSharp e in questo post vorrei citare un paio di aspect che ho sempre valutato positivamente nella gestione di codice “vicino” alla UI, specialmente nel mondo Windows Forms e WPF. Il primo aspect ha a che vedere con il DataBinding. Sappiamo tutti come implementare l’interfaccia INotifyPropertyChanged...

posted @ domenica 16 ottobre 2011 21:29 | Feedback (0) | Filed Under [ .NET WPF ]

[WPF] Drag and Drop con Rx

Le Reactive Extensions (Rx) del framework .NET sono un set di API dedicate a ciò che nella letteratura prende il nome di “reactive programming”. Rx nasce dalla distinzione di due scenari: pull: un programma agisce estraendo dati dall’ambiente in modo interattivo (es. un’iterazione su una sequenza di dati prelevati dall’ambiente). push: un programma reagisce ai dati che l’ambiente “spinge” verso di esso (es. un event-handler è un esempio di reazione in uno scenario push) Data questa distinzione, Rx si basa sulla dualità tra il pattern Iterator e il pattern Observer. In breve, il pattern Observer...

posted @ giovedì 25 agosto 2011 17:27 | Feedback (2) | Filed Under [ .NET WPF ]

System.Collections.Concurrent: via tutti i lock!

Per garantire la thread-safety nell’accesso a collezioni di oggetti in contesti multi-thread, fino ad oggi siamo stati abituati ad utilizzare i più svariati meccanismi di lock, magari prevedendo diversi livelli di granularità. In questo ambito il framework 4.0 fornisce il namespace System.Collections.Concurrent che offre un set di classi thread-safe che si possono usare al posto di quelle di System.Collections e System.Collections.Generic. Anzitutto, salutiamo con una certa soddisfazione la classe ConcurrentDictionary<TKey, TValue>, versione thread-safe della classe Dictionary. Vengono forniti poi tre oggetti che implementano IProducerConsumerCollection<T>, un’interfaccia che definisce due metodi TryAdd e TryTake per scenari...

posted @ domenica 3 luglio 2011 15:31 | Feedback (0) | Filed Under [ .NET ]

Validare documenti XHTML con XmlPreloadedResolver

Una classe molto interessante che ci fornisce il Framework 4.0 è XmlPreloadedResolver. Come si intuisce dal nome, il suo scopo è quello di risolvere risorse pre-caricate che possono essere referenziate da un’istanza XML. Questa funzionalità è veramente comoda quando non è desiderabile creare chiamate di rete per reperire risorse esterne (es. un DTD) o quando si lavora offline, ricevendo evidenti benefici anche sulle performance.     Il plus risiede nel fatto che nell’assembly System.Xml.Utils sono già “embeddati” i DTD relativi allo standard XHTML 1.0 Transitional, Strict e Frameset (incluse le entities speciali), nonché allo standard RSS 0.91... Continua >> 

posted @ mercoledì 20 aprile 2011 21:56 | Filed Under [ .NET ]

Validare documenti XHTML con XmlPreloadedResolver

Una classe molto interessante che ci fornisce il Framework 4.0 è XmlPreloadedResolver. Come si intuisce dal nome, il suo scopo è quello di risolvere risorse pre-caricate che possono essere referenziate da un’istanza XML. Questa funzionalità è veramente comoda quando non è desiderabile creare chiamate di rete per reperire risorse esterne (es. un DTD) o quando si lavora offline, con...

posted @ mercoledì 20 aprile 2011 21:23 | Feedback (1) | Filed Under [ .NET ]

Dictionary persistenti

In questo post ho cercato di riportare la mia esperienza nella modellizzazione di dictionary persistenti in un progetto reale. In particolare, viene descritta una soluzione in cui è stato ritenuto necessario definire un livello di astrazione che permettesse di derivare implementazioni concrete di dictionary persistenti su file system. Leggi il post

posted @ sabato 23 ottobre 2010 01:14 | Filed Under [ .NET ]

Dictionary persistenti

In un mio progetto avevo bisogno di rendere persistenti dei Dictionary al fine di recuperarne lo stato al riavvio dell’applicazione. Poiché avevo bisogno di gestire un livello di astrazione rispetto allo storage utilizzato, ho anzitutto definito una classe astratta PersistentDictionary<TKey,TValue> derivando Dictionary<TKey,TValue> nel seguente modo: public abstract class PersistentDictionary<TKey, TValue> : Dictionary<TKey, TValue> ...

posted @ sabato 23 ottobre 2010 00:37 | Feedback (0) | Filed Under [ .NET ]

LINQ to CSV

Veramente utile!!! :D http://www.codeproject.com/KB/linq/LINQtoCSV.aspx Technorati Tag: LINQ,CSV

posted @ lunedì 27 aprile 2009 17:35 | Feedback (1) | Filed Under [ .NET ]

Full .NET Archive

Powered by:
Powered By Subtext Powered By ASP.NET