The attached white paper disucsses the following topics in terms of best practices in .NET and C#.
1.       Managed Heap and Garbage Collection Overview            
a.       Memory Allocation         
b.      De-allocation of Memory             
c.       Object Finalization           
d.      Generations in GC           
2.       Minimize Boxing and Unboxing 
3.       Finalize() Method Implementation          
4.       Implement the Standard Dispose Pattern             
5.       Utilize using and TRy/finally for Resource Cleanup            
6.       Always Use Properties Instead of Accessible Data Members       
7.       Prefer readonly to const               
8.       Prefer the is or as Operators to Casts      
9.       Always Provide ToString()            
10.   Ensure that 0 is a valid State for Value Types       
11.   Consider overriding the Equals() method for value types              
12.   Understand the Relationships Among ReferenceEquals(), static Equals(), instance Equals(), and operator==        
13.   Avoid pre-allocating memory     
14.   Prefer Variable Initializers to Assignment Statements     
15.   Initialize Static Class Members with Static Constructors  
16.   Utilize Constructor Chaining        
17.   Prefer Small, Simple Functions   
18.   Avoid inefficient string operations           
19.   Prefer Single Large Assemblies Rather Than Multiple Smaller Assemblies              
20.   Locking and Synchronization guidelines 
21.   Minimize Thread Creation            
22.   Do not set local variables to null.               
23.   Miscellaneous   
a.       Multithreading  
b.      erialization          
c.       Remoting            
d.      Security