The application I'm working on is a C4I, GIS based application, originally written in framework 1.1. Recently we did several tests to prove the improvements derived from upgrading to framework 2.0 (or 3.0) without doing major changes in the base code. The performance improvement focus was on switching to Generics for collections containing value types. Possible pitfalls - mostly the usage of Hashtable and other 1.1 collections, which tend to return NULL when the key is not found. Unlike them...
The Singleton pattern is very well known to .Net developers, especially the static implementation. Lately I have encountered several versions of the generic Singleton , among them the one described in Arnon's post . However, there is one possible pitfall to this approach, as it makes this code possible: Singleton<MyClass> obj = Singleton<MyClass>.Instance; MyClass obj2 = new MyClass(); While I personally like the idea of having the freedom to use the same class in two different ways...