<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://dotnetcampania.org/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it"><title type="html">Cronache di DotNet</title><subtitle type="html">Quando ci rivolgiamo l&amp;#39;uno all&amp;#39;altro per chiedere consiglio, riduciamo il numero dei nostri nemici</subtitle><id>http://dotnetcampania.org/blogs/nezumi/atom.aspx</id><link rel="alternate" type="text/html" href="http://dotnetcampania.org/blogs/nezumi/default.aspx" /><link rel="self" type="application/atom+xml" href="http://dotnetcampania.org/blogs/nezumi/atom.aspx" /><generator uri="http://communityserver.org" version="4.1.40407.4157">Community Server</generator><updated>2009-10-07T22:36:08Z</updated><entry><title>DataContractSerializer Vs XmlSerializer</title><link rel="alternate" type="text/html" href="/blogs/nezumi/archive/2010/07/06/datacontractserializer-vs-xmlserializer.aspx" /><id>/blogs/nezumi/archive/2010/07/06/datacontractserializer-vs-xmlserializer.aspx</id><published>2010-07-06T11:22:07Z</published><updated>2010-07-06T11:22:07Z</updated><content type="html">Serializzatore…quale scegliere e perchè? Diciamo, innanzitutto, che dal framework 3.0 abbiamo la possibilità di scegliere come serializzare un grafo di oggetti (che bello ora abbiamo l’imbarazzo della scelta T_T), ma in base a cosa scelgo? beh… ho fatto un pò di test ed ho evidenziato quelli che, dal mio punto di vista, potrebbero essere pregi e difetti dell’uno e dell’altro.Iniziamo rispettando i più anziani: XmlSerializer: Serializza tutte le property , tranne quelle che gli viene detto di ignorare...(&lt;a href="http://dotnetcampania.org/blogs/nezumi/archive/2010/07/06/datacontractserializer-vs-xmlserializer.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=956" width="1" height="1"&gt;</content><author><name>Nezumi</name><uri>http://dotnetcampania.org/members/Nezumi/default.aspx</uri></author><category term=".Net Framework" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/.Net+Framework/default.aspx" /><category term="Serialization" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Serialization/default.aspx" /></entry><entry><title>Google…cosa tireranno fuori domani</title><link rel="alternate" type="text/html" href="/blogs/nezumi/archive/2010/05/26/google-cosa-tireranno-fuori-domani.aspx" /><id>/blogs/nezumi/archive/2010/05/26/google-cosa-tireranno-fuori-domani.aspx</id><published>2010-05-26T12:32:20Z</published><updated>2010-05-26T12:32:20Z</updated><content type="html">Non so nei vostri uffici o abitazioni se è accaduto lo stesso…ma quando qui da me hanno scoperto il logo di google interattivo dell’altro giorno si è bloccato tutto l’openspace per una ventina di minuti…per chi se lo fosse perso http://macek.github.com/google_pacman/ di tanto in tanto fa bene staccare la spina...(&lt;a href="http://dotnetcampania.org/blogs/nezumi/archive/2010/05/26/google-cosa-tireranno-fuori-domani.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=776" width="1" height="1"&gt;</content><author><name>Nezumi</name><uri>http://dotnetcampania.org/members/Nezumi/default.aspx</uri></author><category term="Google" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Google/default.aspx" /><category term="Games" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Games/default.aspx" /></entry><entry><title>Enterprise Library 5!!</title><link rel="alternate" type="text/html" href="/blogs/nezumi/archive/2010/05/18/enterprise-library-5.aspx" /><id>/blogs/nezumi/archive/2010/05/18/enterprise-library-5.aspx</id><published>2010-05-18T12:02:10Z</published><updated>2010-05-18T12:02:10Z</updated><content type="html">Available to this address the newest version of the Enterprise Library. Among the updates, the most interesting (imm&amp;amp;ho): Asynchronous data access support Optimized cache scavenging Support for the .NET 4.0 Framework and integration with Microsoft Visual Studio 2010 Integration with Windows Presentation Foundation (WPF) validation mechanisms Major architectural refactoring that provides improved testability and maintainability through full support of the dependency injection style of development...(&lt;a href="http://dotnetcampania.org/blogs/nezumi/archive/2010/05/18/enterprise-library-5.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=749" width="1" height="1"&gt;</content><author><name>Nezumi</name><uri>http://dotnetcampania.org/members/Nezumi/default.aspx</uri></author><category term="Tips and Tricks" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Tips+and+Tricks/default.aspx" /><category term=".Net Framework" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/.Net+Framework/default.aspx" /><category term="Release" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Release/default.aspx" /><category term="Enterprise Library" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Enterprise+Library/default.aspx" /></entry><entry><title>Voglio un EventSource tutto per me!!!</title><link rel="alternate" type="text/html" href="/blogs/nezumi/archive/2010/05/12/voglio-un-eventsource-tutto-per-me.aspx" /><id>/blogs/nezumi/archive/2010/05/12/voglio-un-eventsource-tutto-per-me.aspx</id><published>2010-05-12T16:56:00Z</published><updated>2010-05-12T16:56:00Z</updated><content type="html">Scenario: sono stanco di farmi filtri sul registro degli eventi per avere i messaggi (d’errore, di warning, di info…… a seconda del trace level) che riguardano la mia applicazione, oggi faccio i capricci come i bambini, e voglio un EventSource tutto per me Semplice da realizzare, e forse non è nemmeno da considerare un capriccio,perchè effettivamente scrivere nell’eventlog in un’area riservata solo a me mi da la possibilità di distinguere facilmente poi eventuali errori in maniera più efficiente...(&lt;a href="http://dotnetcampania.org/blogs/nezumi/archive/2010/05/12/voglio-un-eventsource-tutto-per-me.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=724" width="1" height="1"&gt;</content><author><name>Nezumi</name><uri>http://dotnetcampania.org/members/Nezumi/default.aspx</uri></author><category term="Tips and Tricks" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Tips+and+Tricks/default.aspx" /><category term=".Net Framework" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/.Net+Framework/default.aspx" /><category term="EventLog" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/EventLog/default.aspx" /></entry><entry><title>Un pc con (fino a) 25 mouse</title><link rel="alternate" type="text/html" href="/blogs/nezumi/archive/2010/05/11/un-pc-con-fino-a-25-mouse.aspx" /><id>/blogs/nezumi/archive/2010/05/11/un-pc-con-fino-a-25-mouse.aspx</id><published>2010-05-11T18:22:00Z</published><updated>2010-05-11T18:22:00Z</updated><content type="html">Microsoft ha rilasciato il &amp;ldquo;Windows MultiPoint Mouse Software Development Kit (SDK)&amp;rdquo;, che in parole povere permette l&amp;rsquo;interazione di una vostra applicazione con pi&amp;ugrave; mouse contemporaneamente Questo &amp;egrave; il link per il download Mentre a questo indirizzo trovate gli esempi di utilizzo di questa tecnologia (tra cui microsoft mouse mischief di cui ha parlato Antonio qualche giorno fa sul suo blog) Sul sito si parla di un utilizzo in ambito didattico, che a pensarci bene &amp;egrave;...(&lt;a href="http://dotnetcampania.org/blogs/nezumi/archive/2010/05/11/un-pc-con-fino-a-25-mouse.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=722" width="1" height="1"&gt;</content><author><name>Nezumi</name><uri>http://dotnetcampania.org/members/Nezumi/default.aspx</uri></author><category term="Release" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Release/default.aspx" /><category term="SDK" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/SDK/default.aspx" /><category term="MultiPoint Mouse" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/MultiPoint+Mouse/default.aspx" /></entry><entry><title>.NET Performance Testing and Optimization – The Complete Guide</title><link rel="alternate" type="text/html" href="/blogs/nezumi/archive/2010/04/27/net-performance-testing-and-optimization-the-complete-guide.aspx" /><id>/blogs/nezumi/archive/2010/04/27/net-performance-testing-and-optimization-the-complete-guide.aspx</id><published>2010-04-27T16:00:00Z</published><updated>2010-04-27T16:00:00Z</updated><content type="html">All&amp;rsquo;indirizzo http://downloads.red-gate.com/ebooks/DotNet/NET_Perf_and_Test_eBook.zip potrete trovare un ebook (gratuito) questi i capitoli presenti: Chapter 01: Introduction - The What and the Why Chapter 02: Understanding Performance Targets Chapter 03: Performance and Load Test Metrics Chapter 04: Implementing your Test Rig Chapter 05: Creating Performance Tests Chapter 06: Next Steps - Profiling Chapter 07: Performance Profiling Chapter 08: Memory Profiling Chapter 09: The Performance Testing...(&lt;a href="http://dotnetcampania.org/blogs/nezumi/archive/2010/04/27/net-performance-testing-and-optimization-the-complete-guide.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=690" width="1" height="1"&gt;</content><author><name>Nezumi</name><uri>http://dotnetcampania.org/members/Nezumi/default.aspx</uri></author><category term="Optimization" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Optimization/default.aspx" /><category term="E-Book" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/E-Book/default.aspx" /><category term="Testing" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Testing/default.aspx" /></entry><entry><title>Aggiungere sezioni ai file .config</title><link rel="alternate" type="text/html" href="/blogs/nezumi/archive/2010/04/15/aggiungere-sezioni-ai-file-config.aspx" /><id>/blogs/nezumi/archive/2010/04/15/aggiungere-sezioni-ai-file-config.aspx</id><published>2010-04-15T15:29:00Z</published><updated>2010-04-15T15:29:00Z</updated><content type="html">&lt;p&gt;Che dire, l&amp;rsquo;argomento &amp;egrave; tutt&amp;rsquo;altro che ostico, anzi appena mi &amp;egrave; balenata l&amp;rsquo;idea di postare su questo argomento, mi sono subito risposto &amp;lt;&amp;lt;ma a che pro? lo sanno anche i sassi&amp;gt;&amp;gt; e poi ho pensato :&amp;lt;&amp;lt;Beh per&amp;ograve; quando hai iniziato a fare applicazioni .Net nemmeno tu lo sapevi, su posta per chi ha appena iniziato&amp;gt;&amp;gt; e quindi eccomi qui :)&lt;/p&gt;
&lt;p&gt;Dopo questa interessantissima prefazione passiamo ai fatti&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Scenario
&lt;ul&gt;
&lt;li&gt;Mi trovo a voler aggiungere sezioni di configurazione personalizzate al file di configurazione che mi sia possibile recuperare a runtime&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Soluzione
&lt;ul&gt;
&lt;li&gt;Aggiungo al file di configurazione (se non &amp;egrave; gi&amp;agrave; presente) la sezione (scusate il gioco di parole) 
&lt;ul&gt;
&lt;li&gt;&amp;lt;configSections&amp;gt;         &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;lt;/configSections&amp;gt;&lt;/li&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Ci creo dentro un gruppo di sezioni
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;
&lt;ul&gt;
&lt;li&gt;&amp;lt;sectionGroup name=&amp;quot;OpenSourceFactory.MyApplication&amp;quot;&amp;gt;&lt;/li&gt;
&lt;p&gt; &amp;lt;/sectionGroup&amp;gt;&lt;/p&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;A questo punto dentro sectionGroup dobbiamo metterci qualcosa e cosa?
&lt;ul&gt;
&lt;li&gt;&amp;lt;section name=&amp;rdquo;ConfigFiles&amp;rdquo; type=&amp;rdquo;System.Configuration.NameValueSectionHandler&amp;rdquo;/&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;
&lt;ul&gt;
&lt;li&gt;Ora la section &amp;egrave; stata aggiunta al file di configurazione, di conseguenza il parser non mi dar&amp;agrave; nessun errore se scrivo questo
&lt;ul&gt;
&lt;li&gt;&amp;nbsp; &amp;lt;OpenSourceFactory.MyApplication&amp;gt;         &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ConfigFiles&amp;gt;          &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add key=&amp;quot;DefaultConfigPath&amp;quot; value=&amp;quot;C:\MyApplication\config\default.xml&amp;quot; /&amp;gt;          &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ConfigFiles&amp;gt;&amp;nbsp; &lt;br /&gt;&amp;lt;/OpenSourceFactory.MyApplication&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;
&lt;ul&gt;
&lt;li&gt;ed ora i passi per accedere al file di configurazione
&lt;ul&gt;
&lt;li&gt;prima di tutto aggiungete al vostro progetto un riferimento a &amp;ldquo;System.Configuration&amp;rdquo;&lt;/li&gt;
&lt;li&gt;NameValueCollection colSet = ConfigurationManager.GetSection(&amp;quot;OpenSourceFactory.MyApplication/ConfigFiles&amp;quot;) as NameValueCollection;&lt;/li&gt;
&lt;li&gt;risolvete ConfigurationManager se non lo avete gi&amp;agrave; fatto&lt;/li&gt;
&lt;li&gt;string path = colSet[&amp;quot;DefaultConfigPath&amp;quot;];&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Sperando di essere stato utile a qualcuno, vi saluto fino al prossimo post.&lt;/p&gt;
&lt;p&gt;E.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=674" width="1" height="1"&gt;</content><author><name>Nezumi</name><uri>http://dotnetcampania.org/members/Nezumi/default.aspx</uri></author><category term="App.Config" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/App_2E00_Config/default.aspx" /><category term="Web.Config" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Web_2E00_Config/default.aspx" /><category term="Config" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Config/default.aspx" /></entry><entry><title>Che dire…</title><link rel="alternate" type="text/html" href="/blogs/nezumi/archive/2010/04/14/che-dire.aspx" /><id>/blogs/nezumi/archive/2010/04/14/che-dire.aspx</id><published>2010-04-14T15:23:55Z</published><updated>2010-04-14T15:23:55Z</updated><content type="html">&lt;p&gt;Oggi stavo personalizzando un pò la configurazione del mio nuovo portatile quando entro nelle impostazioni del touchpad e sotto scopro questo button:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nezumi.metablogapi/8688.macosadice_5F00_5719AE5C.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="ma cosa dice" border="0" alt="ma cosa dice" src="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nezumi.metablogapi/1832.macosadice_5F00_thumb_5F00_0838E8FD.png" width="130" height="44" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;ma che farà?&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;E.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=671" width="1" height="1"&gt;</content><author><name>Nezumi</name><uri>http://dotnetcampania.org/members/Nezumi/default.aspx</uri></author></entry><entry><title>WPF Toolkit the new Release is here</title><link rel="alternate" type="text/html" href="/blogs/nezumi/archive/2010/02/24/wpf-toolkit-the-new-release-is-here.aspx" /><id>/blogs/nezumi/archive/2010/02/24/wpf-toolkit-the-new-release-is-here.aspx</id><published>2010-02-24T11:34:00Z</published><updated>2010-02-24T11:34:00Z</updated><content type="html">&lt;p&gt;The new Release of WPF toolkit (dated Feb 22 2010) contains, over various bugfix, 3 new controls&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AutoCompleteBox 
&lt;ul&gt;
&lt;li&gt;=&amp;gt; Represents a control that provides a text box for user input and a drop-down that contains possible matches based on the input in the textbox.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Accordion 
&lt;ul&gt;
&lt;li&gt;=&amp;gt; Represents a collection of collapsed and expanded AccordionItem controls&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Rating
&lt;ul&gt;
&lt;li&gt;=&amp;gt; The rating control used for user feedback (or something else)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;E.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=615" width="1" height="1"&gt;</content><author><name>Nezumi</name><uri>http://dotnetcampania.org/members/Nezumi/default.aspx</uri></author><category term="WPF" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/WPF/default.aspx" /><category term="Wpf Toolkit" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Wpf+Toolkit/default.aspx" /><category term="Release" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Release/default.aspx" /></entry><entry><title>Il problema dei form di registrazione</title><link rel="alternate" type="text/html" href="/blogs/nezumi/archive/2010/01/04/il-problema-dei-form-di-registrazione.aspx" /><id>/blogs/nezumi/archive/2010/01/04/il-problema-dei-form-di-registrazione.aspx</id><published>2010-01-04T15:00:56Z</published><updated>2010-01-04T15:00:56Z</updated><content type="html">&lt;p&gt;Ormai sono anni che mi registro un pò ovunque, su internet, ed ogni volta noto sempre la stessa cosa, mi si chiede il CAP e poi mi si chiede Comune e Provincia&lt;/p&gt;  &lt;p&gt;Ma è così difficile ragionare sull’inutilità di questi dati?o meglio sulla loro ridondanza??&lt;/p&gt;  &lt;p&gt;Il CAP di suo si porta dietro informazioni su Comune e Provincia e in alcuni casi anche sul quartiere&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Pensateci gente…pensateci!!!&lt;/p&gt;  &lt;p&gt;Emanuele&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=545" width="1" height="1"&gt;</content><author><name>Nezumi</name><uri>http://dotnetcampania.org/members/Nezumi/default.aspx</uri></author><category term="Database" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Database/default.aspx" /><category term="Optimization" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Optimization/default.aspx" /></entry><entry><title>Singleton in C# Thread-Safe</title><link rel="alternate" type="text/html" href="/blogs/nezumi/archive/2009/11/02/singleton-in-c-thread-safe.aspx" /><id>/blogs/nezumi/archive/2009/11/02/singleton-in-c-thread-safe.aspx</id><published>2009-11-02T14:47:01Z</published><updated>2009-11-02T14:47:01Z</updated><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nezumi.metablogapi/7444.singleton_5F00_78195B3B.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="singleton" border="0" alt="singleton" src="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nezumi.metablogapi/1581.singleton_5F00_thumb_5F00_59CEA445.jpg" width="167" height="169" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;everyone knows the implementation of singleton pattern, nothing new under the sun:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;private instance &lt;/li&gt;    &lt;li&gt;private constructor &lt;/li&gt;    &lt;li&gt;public method that controls if the instance is null (in this case initialize it),and returns the instance &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;the code will be similar to this&lt;/p&gt;  &lt;p&gt;public Singleton&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;private Singleton instance = null;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;private Singleton() { } &lt;/p&gt;    &lt;p&gt;public Singleton GetIstance()&lt;/p&gt;    &lt;p&gt;{&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (instance == null)&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; instance = new Singleton();&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return instance;&lt;/p&gt;    &lt;p&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;Well I learned,with my regret, that this kind of approach is not thread-safe,ie: in multi-threaded environment, two threads simultaneously ask an instance, and the operating system runs the context-switch, just after the if, and so before you make a new, then I’ll have two instances, of which only one is valid (the second)&lt;/p&gt;  &lt;p&gt;The first solution that everyone uses is:&lt;/p&gt;  &lt;p&gt;public sealed class Singleton    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; private static volatile Singleton _instance = null;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; private Singleton() { } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public static Singleton GetIstance()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (_instance == null)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lock(typeof(Singleton))     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (_instance == null)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; _instance = new Singleton();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return _instance;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;Essentially,in the worst case of context-switch before the new, (in this case possible only before the lock), we check by the second &lt;strong&gt;if&lt;/strong&gt; that the first thread receives the instance created by the second thread.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Beautiful…... but unwatchable!!! I have to check in two consecutive times, the same condition. Operation that will not be optimized at compile time, because of the little word &amp;quot;volatile&amp;quot; ( topic of other posts if it is the case) in declaration of the static instance .    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Can appear that this is the right direction to follow, for the concept &amp;quot;I want something robust, so it will be increasingly difficult&amp;quot; ,but the easiest solution is this:&lt;/p&gt;  &lt;p&gt;public sealed class Singleton&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;public static readonly Singleton = new Singleton();&lt;/p&gt;    &lt;p&gt;private Singleton() { }&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;Because the initialization of static members are thread-safe in .Net Framework&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;See you soon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=432" width="1" height="1"&gt;</content><author><name>Nezumi</name><uri>http://dotnetcampania.org/members/Nezumi/default.aspx</uri></author><category term="Patterns" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Patterns/default.aspx" /></entry><entry><title>What’s happens inside .Net Framework??</title><link rel="alternate" type="text/html" href="/blogs/nezumi/archive/2009/10/23/what-s-happens-inside-net-framework.aspx" /><id>/blogs/nezumi/archive/2009/10/23/what-s-happens-inside-net-framework.aspx</id><published>2009-10-23T15:42:24Z</published><updated>2009-10-23T15:42:24Z</updated><content type="html">&lt;p&gt;As i don’t like a car that i can’t open to look at the engine compartment, so i don’t like to develop without seeing what’s happening behind the code.&lt;/p&gt;  &lt;p&gt;While I’m looking for a good documentation about .net Framework, i found &lt;a href="http://reflector.red-gate.com/Download.aspx" target="_blank"&gt;this&lt;/a&gt; software from &lt;a href="http://www.red-gate.com/" target="_blank"&gt;Red-Gate&lt;/a&gt; (needs registration before download)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nezumi.metablogapi/3034.reflector_5F00_27304600.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="reflector" border="0" alt="reflector" src="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nezumi.metablogapi/2860.reflector_5F00_thumb_5F00_3CB0160C.jpg" width="244" height="188" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;as you can see this is the code inside List&amp;lt;T&amp;gt;.Sort method.&lt;/p&gt;  &lt;p&gt;I hope that this post helps someone to improve the study of .Net Framework&lt;/p&gt;  &lt;p&gt;see you soon&lt;/p&gt;  &lt;p&gt;E.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=413" width="1" height="1"&gt;</content><author><name>Nezumi</name><uri>http://dotnetcampania.org/members/Nezumi/default.aspx</uri></author><category term=".Net Framework" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/.Net+Framework/default.aspx" /><category term="Reflector" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Reflector/default.aspx" /></entry><entry><title>Switch case using Crystal Report</title><link rel="alternate" type="text/html" href="/blogs/nezumi/archive/2009/10/22/switch-case-using-crystal-report.aspx" /><id>/blogs/nezumi/archive/2009/10/22/switch-case-using-crystal-report.aspx</id><published>2009-10-22T10:27:00Z</published><updated>2009-10-22T10:27:00Z</updated><content type="html">&lt;p&gt;Sometimes may occur that you need to use the construct SWITCH-CASE in a Formula Field.&lt;/p&gt;
&lt;p&gt;Well, the syntax is really simple:&lt;/p&gt;
&lt;p&gt;Switch( condition, what_output, condition, what_output&amp;hellip;.)&lt;/p&gt;
&lt;p&gt;for example&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Switch ([customer.sex] = &amp;ldquo;Male&amp;rdquo;, &amp;ldquo;You are Welcome&amp;rdquo;, [customer.sex] = &amp;ldquo;Female&amp;rdquo;, &amp;ldquo;You are VERY Welcome&amp;rdquo;)&lt;/b&gt; &lt;i&gt;:) &lt;br /&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;nothing more,nothing less&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;E.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=403" width="1" height="1"&gt;</content><author><name>Nezumi</name><uri>http://dotnetcampania.org/members/Nezumi/default.aspx</uri></author><category term="Crystal Report" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Crystal+Report/default.aspx" /></entry><entry><title>Except with Linq</title><link rel="alternate" type="text/html" href="/blogs/nezumi/archive/2009/10/09/except-with-linq.aspx" /><id>/blogs/nezumi/archive/2009/10/09/except-with-linq.aspx</id><published>2009-10-09T19:10:26Z</published><updated>2009-10-09T19:10:26Z</updated><content type="html">&lt;p&gt;Alcune volte può capitare che abbiate bisogno di vedere quali elementi di una collezione non siano inclusi in un’altra collezione.&amp;#160; (NOT IN)&lt;/p&gt;  &lt;p&gt;Per esempio: Il classico libretto universitario&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;ho una lista di esami da sostenere per quanto riguarda il mio corso di laurea &lt;/li&gt;    &lt;li&gt;ho una lista di esami che ho già sostenuto &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;voglio la lista degli esami da sostenere &lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;il risultato in codice &lt;/p&gt;  &lt;p&gt;IList&amp;lt;Esame&amp;gt; esami = InQualcheModoRecuperoTuttiGliEsamiDelMioCorsoDiLaurea(); :-)&lt;/p&gt;  &lt;p&gt;IList&amp;lt;Esame&amp;gt; esamiSostenuti = InQualcheModoRecuperoTuttiGliEsamiSostenuti();&lt;/p&gt;  &lt;p&gt;var esamiDaSostenere = &lt;strong&gt;from r in esami      &lt;br /&gt;where esamiSostenuti.All(m =&amp;gt; m.Id != r.Id)       &lt;br /&gt;select r;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;et voilà! :-) ho escluso dalla lista, di tutti gli esami, quelli che ho sostenuto    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;ps: Ovviamente nel mio caso ho previsto che gli esami fossero identificati da un id &lt;/p&gt;  &lt;p&gt;pps: Mi scuso per l’indentazione &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=360" width="1" height="1"&gt;</content><author><name>Nezumi</name><uri>http://dotnetcampania.org/members/Nezumi/default.aspx</uri></author><category term="Linq" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Linq/default.aspx" /></entry><entry><title>Tip su Visual Studio e i File XAML</title><link rel="alternate" type="text/html" href="/blogs/nezumi/archive/2009/10/07/tip-su-visual-studio-e-i-file-xaml.aspx" /><id>/blogs/nezumi/archive/2009/10/07/tip-su-visual-studio-e-i-file-xaml.aspx</id><published>2009-10-07T20:36:08Z</published><updated>2009-10-07T20:36:08Z</updated><content type="html">&lt;p&gt;Da quando lavoro con WPF ho riscontrato notevoli problemi nell’utilizzo tool per la grafica di Visual Studio, in particolar modo, ho notato quanto sia lento questo strumento rispetto all’utilizzo di Blend. &lt;/p&gt;  &lt;p&gt;Poi dopo aver creato una certa quantità di “form”, con WPF, si inizia a voler avere maggior controllo sul comportamento di ogni singolo componente, e si iniziano a scrivere tag “a manina” col &lt;strong&gt;&lt;em&gt;solo&lt;/em&gt;&lt;/strong&gt; ausilio dell’intellisense, e a questo punto, se la parte grafica la gestisco con Blend, ho iniziato a scrivere tag da solo, e allora che senso ha continuare ad avere quegli inutili rallentamenti in VS quando cerco di caricare uno xaml?&lt;/p&gt;  &lt;p&gt;Proprio per questo vi propongo un tip molto interessante,e a quanto pare anche molto diffuso tra chi usa WPF (o xaml in generale), la disabilitazione dell’editor grafico di VS, che si ottiene mediante i seguenti passi:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;menù Strumenti –&amp;gt; Opzioni –&amp;gt; Editor di Testo –&amp;gt; XAML –&amp;gt; Varie –&amp;gt; checkare “Apri sempre documento in visualizzazione XAML completa” &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;per la versione inglese&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Tools –&amp;gt; Options –&amp;gt; Text Editor –&amp;gt; XAML –&amp;gt; Miscellaneous –&amp;gt; check “Always open documents in full XAML View&lt;em&gt;&lt;strong&gt;”&lt;/strong&gt;&lt;/em&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;sperando di esservi stato utile   &lt;br /&gt;Vi saluto&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Emanuele&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=344" width="1" height="1"&gt;</content><author><name>Nezumi</name><uri>http://dotnetcampania.org/members/Nezumi/default.aspx</uri></author><category term="Tips and Tricks" scheme="http://dotnetcampania.org/blogs/nezumi/archive/tags/Tips+and+Tricks/default.aspx" /></entry></feed>