Visual C# component-based development