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