C# Strengths & Weaknesses